Is snapd forward compatible with new app interfaces?

Is it safe to add recently implemented snapd interfaces to my app? Say, a new interface was implemented a month ago in snapd and I want to use it in my app. Will it be able to install & run on old Linux distributions with old-version snapd? What if added interface is not auto-connected?

Thank you.

1 Like

As I mentioned before under another topic if old snapd distribution compatibility is required then it is not safe to add interface introduced in recent version of snapd, the snap will simply unable to be installed (not sure for snap refresh though).

There is a little known feature that allows to indicate that a given snap requires at least certain version of snapd

The feature is assumes: [snapd2.38] where the version is any snapd version you want. Using that will do the right thing, ensuring that the snap is only refreshed to when snapd is of the correct version.

3 Likes

This is a useful feature, but I don’t see it documented in the snap format at https://docs.snapcraft.io/the-snap-format, although it is documented in the snapcraft.yaml reference here: https://docs.snapcraft.io/snapcraft-top-level-metadata. Could someone with access such as @degville add a snippet to the snap format page about assumes?

4 Likes