Don't change recipe checkout on abra app deploy if there are unnamed changes
#751
Open
opened 2026-01-14 16:08:59 +00:00 by iexos
·
9 comments
No Branch/Tag Specified
main
fix/492
renovate/golang-1.26
local-integration-testing
renovate/github.com-charmbracelet-lipgloss-2.x
renovate/otel-weaver-0.x
renovate/codespell-2.x
renovate/github.com-charmbracelet-bubbletea-2.x
renovate/tonistiigi-xx-1.x
renovate/alpine-3.x
renovate/github.com-charmbracelet-log-2.x
chore-deps
fix/deps
fix/613
0.13.0-beta
0.13.0-rc2-beta
0.13.0-rc1-beta
0.12.0-beta
0.11.0-beta
0.10.1-beta
0.10.0-beta
0.10.0-rc2-beta
0.10.0-rc1-beta
0.9.0-beta
0.8.1-beta
0.8.0-beta
0.8.0-rc2-beta
0.8.0-rc1-beta
0.7.0-beta
0.7.0-rc3-beta
0.7.0-rc2-beta
0.6.0-beta
0.5.1-beta
0.5.0-alpha
0.4.1-alpha
0.4.0-alpha
0.4.0-alpha-rc8
0.4.0-alpha-rc7
0.4.0-alpha-rc6
0.4.0-alpha-rc5
0.4.0-alpha-rc4
0.4.0-alpha-rc3
0.4.0-alpha-rc2
0.4.0-alpha-rc1
0.3.1-alpha-rc2
0.3.1-alpha-rc1
0.3.1-rc1
0.3.0-alpha
0.2.2-alpha
0.2.1-alpha
0.2.0-alpha
0.1.8-alpha
0.1.7-alpha
0.1.6-alpha
0.1.5-alpha
0.1.4-alpha
0.1.3-alpha
0.1.2-alpha
0.1.1-alpha
0.1.0-alpha
10.0.5
10.0.3
10.0.2
10.0.1
10.0.0
9.0.0
8.0.1
8.0.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
checkout
0.6.0
0.5.0
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
Labels
Clear labels
bug
build
ci/cd
critical fix
design
documentation
duplicate
easy-first-issue
enhancement
help wanted
i10n
i18n
installer
invalid
question
release
release-candidate
security
tech-debt
test
wontfix
Something is not working
go build related issues
Building things with CI/CD
https://docs.coopcloud.tech/federation/resolutions/passed/010/
UI/UX
Documenting all the things
This issue or pull request already exists
Something for new people to get stuck into. We hope it's easy!
New feature
Need some help
Everything to do with localisation
Everything to do with internationalisation
Everything to do with the install script.
Something is wrong
More information is needed
Release management
Related to the new release candidate
Security related
Unit/integration testing
This won't be fixed
No labels
enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Abra "next"
Prioritised
Assignees
3wordchant
aadil (Aadil Ayub)
abra-bot (Abra Bot)
ammaratef45
amras (Sarma)
Apfelwurm
BornDeleuze
Brooke
carla
cas (Cassowary)
coopcloud
cyrnel
decentral1se (d1)
dede
devydave
fauno (fauno)
iexos
jade (Jade Ambrose)
jjsfunhouse
jmakdah2 (Jackie Makdah)
joe-irving (Joe Irving)
kawaiipunk (KawaiiPunk)
knoflook
kolaente
lambdabundesverband
linnealovespie (April)
moosemower
moritz
notplants
oxaliq (sorrel)
p4u1
pharaohgraphy (Andrew 🐦🔥❤️🔥✴️)
renovate-bot (Comrade Renovate Bot)
ripclap
simon
sixsmith (Sixsmith)
stevensting
trav (Trav Fryer)
val (val (he/him))
yksflip
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: toolshed/abra#751
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
As there were reports about seemingly lost changes during recipe dev, I suggest that
abrashould only change the checkout of a recipe if it is currently on a named tag or branch.If I am mindful (and knowledgable) enough I know that I should not do dev in a detached HEAD, though it happens so fast...
Repro:
--chaos--chaos(cancel deployment)Expected outcome:
Actual outcome:
git reflogif you realize what happenedI also stumbled on this lately. I wrote some notes on it. Would it make sense to add those to the docs?
Thank you, that would be a great addition to the docs!
I think I also stumbled into this haha https://matrix.to/#/!DfXPgKLoYCvjHithgS:autonomic.zone/$ElSMkpD1hzrRKRBwetZWAaDdGHvetXOtu5pikfne7vs?via=autonomic.zone&via=matrix.org&via=pub.solar
as an alternative/additional solution, I could imagine having env config for abra in addition to cli?
ABRA_ENSURE_CHAOS (lol at this name)
and when true, then abra just never does the checkout thing
then when you are doing recipe dev work you can set this environment variable and you are safe from confusion
How about this: when warning the user about the modifications and hinting --chaos, could Abra just ask if the user wants to switch to hack mode? And in hack mode, the recipes head will be attached to a selectable branch or create a new one based on main.
And to make sure people are aware when using Abra, they need to pass --hack to every Abra command to wor k in hack mode.
Another idea, following the initial report in #751 (comment):
Why doesn't
abrastore where the checkout is before it does something and always return to it at the end of the operation? This would mean that if you're onmainand then do anabra app deploy, it will always return tomainonce it is finished.If there are unstaged changes it should always bail unless the command does not touch the git repository.
I like "always return to where you were before end of operation" idea, but fwiw having an environmental variable that ensures chaos mode maybe also provides one additional safeguard in addition to "sending you back where you were":
it also prevents you from accidentally running
abra cmdorabra secretusing different code than you intended (which could happen in the "always return" model)I like it to, the ideal outcome would be to never have the repo in detached HEAD unless doing that manually. The main problem is that we are not used to this state and wouldn't choose it consciously. So we should make sure it just doesn't happen.
Related: #742