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 :))