Are progressive releases still experimental?

Are progressive releases still an experimental feature? It looks like PRs like this (and others) removed the need for and the acceptance of the --experimental-progressive-releases flag to do progressive releases and this was shipped in snapcraft 7.0, but I haven’t seen any documentation updates about this.

What’s the status of progressive releases? Regardless of whether or not it’s still “experimental” any information on how stable and widely tested this feature is would be much appreciated. I’m considering using it on a snap with ~700k users am trying to avoid any unexpected hiccups.

Thanks in advance for any help or info :heart:

Hi there,

Progressive releases can be used by anyone at this point; just set the --progressive percentage when you release:

snapcraft release your-snap the-revision --progressive 10

Then 10% of your users will get that revision, while the remaining 90% will stay on the current one.

The subset of users that get the new revision stays constant; a given device will always be consistently on one “side” of the progressive release.

To release to a larger percentage, “re-release” the same revision with a larger number:

snapcraft release your-snap the-revision --progressive 20

Once you hit 100%, remember to do a full release (this is because of some complexities which mean that even at 100% some devices will stay on the previous revision until a “full” release is done):

snapcraft release your-snap the-revision --progressive 100

wait a few hours maybe

snapcraft release your-snap the-revision # This is a non-progressive full release

You can use snapcraft status (I believe) to check how far along your release is; that is, out of the 10% of devices on the new release, how many have actually received it.

To your other points: This feature is battle-tested, we use it for some of the base system snaps (snapd, core) and some other Canonical snaps and it’s worked solidly for us. There are a couple of remaining rough edges, not the least of which is a certain lack of documentation, which we want to address before we announce the feature more widely. But you’re of course welcome to use it and we would appreciate any feedback on how it works for you.

Please let me know if you have any other questions and I’ll do my best to answer them. (also helps me see what the common questions are, so we can include them in the documentation :))