@jdstrand vetting done, +1.
@sftpclient Apologies for the delay here. There is a small fly in the ointment which @Wimpress alluded to, let me explain.
When a user installs a snap, they have an expectation of automatic updates when the developer publishes new releases. If the user installs a strictly confined snap, they can get updates delivered which are also strictly confined. If the user installs a classic
snap however, they must indicate they understand the risk, but appending --classic
on the snap install
line. They too will receive automatic updates.
The issue is when a snap moves from being strict
to being classic
confined. There’s a gap in our functionality here. Users who installed the strictly confined snap will never have seen the warnings related to classic
confinement and as such will never receive the new revision of the application which has migrated to classic
.
There are workarounds forward here.
Before we update the store to mark your snap as classic
and before you build and publish a classic
confined snap, you publish a strict
version which incorporates some kind of warning to users that the next update will be classic, and they will have to do the following:
snap remove sftpclient
then
snap install sftpclient --classic --candidate
The popup could be done as a zenity dialog, outside the actual code base of your application, which informs the users who launch your strict
application. Here is an example. This would need to be done, as I said, before you publish the classic
build in stable. So publish the classic build in the candidate channel.
Alternatively, you could just update your documentation, and those people who are affected by the strict confinement limitations can just be told the manual steps to do. This is the low-impact way forward.
What you’ll end up with is some users wedged on the old strictly-confined revision however. Those will be users who haven’t read the documentation, or users who haven’t launched the application for a while, and as such haven’t seen the popup (assuming you build that into it).