Deal with nonskippable recipe updates #812
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
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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 updates