I’ve written a piece of open source command line software which I’d like to make available as a Snap, since that seems the easiest way to allow users to install it across multiple Linux distributions and permit a rapid release cycle.
One problem I can foresee though is that Snaps are updated automatically to the latest version without any interaction from, or even a notification to, the user. I’ve changed the command line arguments for the software multiple times in ways that are not backwards-compatible, and whilst I always bump the major version number (e.g. 2.0.1 becomes 3.0.0), my understanding is that this doesn’t have any particular meaning to snapd
. If users have a script which runs my software, it would suddenly fail when they are automatically upgraded to 3.0.0, which is a poor user experience and not something I want to do.
I have looked at Snap epochs but they seem to be aimed at configuration file changes, whereas I am changing the interface of the software. Can Snap epochs be used for my use case as well, or is there another way to handle this smoothly?