Friday 9 February 2018

Re: RFC: Ubuntu Seeded Snaps

Hi Colin,

On Fri, Feb 09, 2018 at 10:00:28AM +0000, Colin Watson wrote:
> On Fri, Feb 09, 2018 at 09:37:17AM +0000, Robie Basak wrote:
> > On Thu, Feb 08, 2018 at 03:10:08PM -0800, Steve Langasek wrote:
> > > Snaps included in images will be installed referencing a per-Ubuntu-series
> > > branch. This ensures forwards-compatibility by allowing publishing to this
> > > branch if the mainline of a snap becomes incompatible with a given Ubuntu
> > > release, without requiring up-front maintenance of multiple snap channels.

> > I don't follow this. Are you suggesting that the seed list a snap
> > version number? Or a specific code branch in Launchpad from which the
> > snap ending up in the images will get built? If the former, wouldn't the
> > install base become "stuck"?

> Store channel names are formed as [track/]risk[/branch]; it's this kind
> of branch that Steve is referring to. (The spec should probably just
> say "channel", though.)

> I'm not sure how this can avoid requiring up-front maintenance of
> multiple snap channels. If the proposal is that we install snaps in a
> way that will cause refreshes to pull from a pre-configured per-series
> channel, then unless that channel actually exists then "snap refresh" is
> surely going to be returning errors, which doesn't seem like a good
> stock configuration.

My understanding was that if the branch does not exist, pulling by that
branch name would fall back to the stable channel. It seems that may not be
the case:

$ snap refresh canonical-livepatch --channel stable/foo
error: snap "canonical-livepatch" not found (at least in channel "stable/foo")
$

Would this need further development in either the snap client or the snap
store in order to support such usage?

The intended behavior is that the publisher does not have to maintain these
channels when the content should be identical to the stable channel, but
that if a snap revision *is* published to the Ubuntu-specifc channel at any
point, all relevant Ubuntu clients will pick that version instead of stable.

> This raises another point; when upgrading to versions beyond 18.04,
> users' systems will need to be modified to follow the appropriate
> per-series channel for each of these preinstalled snaps. Somebody will
> need to teach the upgrader to do this, and it will also need to be
> documented for people who don't use update-manager/do-release-upgrade.

Yes; I've captured the software requirement here:

https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1748581

For documentation, do you have a sense of where that could be put that would
be read by those who don't use ubuntu-release-upgrader? The release notes
upgrade instructions already point to u-r-u.

Thanks,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
slangasek@ubuntu.com vorlon@debian.org