during my Snap work for OpenPrinting I ran into the problem that a certain Snap can some day not be useful any more and should fisappear from the Snap Store and in many such cases there will be another Snap being a replacement for it.
I have already such a case. Some years ago I started to snap CUPS and as the Snap also contained cups-filters and Ghostscript I called it “printing-stack-snap” and not simply “cups”. Later on I grabbed the name “cups” and published my CUPS Snap under this name.
This means that “printing-stack-snap” is obsolete and the replacement is “cups”.
Another case will come in a few weeks: I am shortly before completing a library to retro-fit classic CUPS drivers into Printer Application Snaps (the new format of printer drivers, we have already the PostScript Printer Application, “ps-printer-app”). Unmaintained, old drivers will simply get retro-fitted by me and put into the Snap Store, no problem, but there are also some actively maintained printer drivers, especially HPLIP and Gutenprint. As it will take time until these driver developers will actually create native (no retro-fit of PPD files and CUPS filters) Printer Applications I will put up retro-fits of these drivers in the Snap Store for the time being, using a name which differs from the project name, like “hplip-printer-app”. Then, when the original project publishes their native Printer Application, they call it “hplip”, deprecating my “hplip-printer-app”.
So my question is now, how to handle project termination, deprecation, and replacement in the Snap Store?
What I like to see is that one could mark the deprecated Snap somehow as deprecated and register which other Snap replaces it and then the automatic updates of the Snap Store would replace the deprecated Snap by the new one.
For now I have simply hidden “printing-stack-snap” by marking it private. This way it is still registered but users do not find it in the Snap Store, so that they find only “cups” and so install the right one.
I did not actually delete it because I hoped for the future to get a method of auto-updating all the remaining users of it to “cups”.
Or is there a similar method as in Debian transitional packages, to replace the actual “printing-stack-snap” by some empty Snap which force-installs “cups” (and ideally de-installs itself after that).
Or perhaps simply a “killer update”, an empty Snap which simply removes “printing-stack-snap” and afterwards commits suicide (uninstalls itself).