Deal with nonskippable recipe updates #812
Open
opened 2026-03-31 16:02:20 +00:00 by p4u1
·
3 comments
No Branch/Tag Specified
main
local-integration-testing
renovate/golang-1.26
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/492
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
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.
Blocks
#811 abra app upgrade stability
toolshed/abra
Reference: toolshed/abra#812
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.
Thanks Tobias Featherbutt for starting the discussion and for the great problem and solution statements
Problem:
A recipes has 3 releases:
1.0.0+1.0.0
1.1.0+1.1.0
2.0.0+2.0.0
The upgrade to 2.0.0 is only guaranteed to be stable when upgrading from 1.1.0
An app is deployed at 1.0.0+1.0.0
abra app upgrade and the select 2.0.0 (because of course I want the latest version)
The app is broken because I skipped the 1.1.0+1.1.0 release
Solution:
Interpret recipe release notes as markdown
Check if an upgrade has
nonskippableset to true in frontmatter:abra app upgrade will not skip this upgrade instead it will do the nonskippable upgrade first and then do the actual upgrade.
I like the idea of automatic updates step by step updates until the desired version is reached.
How about tagging specific releases as
nonskipable? In this case1.1.0+1.1.0would be thenonskipablerelease.This way I could directly update from
1.0.0+1.0.0to version2.0.0+2.0.0and abra would handle all necessary intermedate updates tagged withnonskipable.This is somewhat behavior 2.) but instead of performing upgrades of all intermediate versions, only the
nonskipablewill be executed. Sometimes we do an update skipping 10 versions. If abra would do an step by step update for each intermediated version it would take very long and the risks for some failures would increase.Nice I like your idea! How about we treat release notes as markdown? Then we can add frontmatter like this:
This would also allow the posibility to add more metadata like
brokento a release. And this allows an easy way to edit previous releasesintroduce ABRA_SKIP_UPGRADES=falseto Deal with nonskippable recipe updatesI like the release note markdown proposal. However, we some times have bugs in that notes logic with
abra#807 😬 We will fix / close this regression down with unit/integration tests eventually but I would look for a less fragile way to enforcenonskippable. Could this be done in the tag name?