Hola!

To publish stable snaps of different versions at the same time, like Go 1.6 and 
1.7, we now have ‘channel tracks’ in beta.

Each track has its own set of risk-based channels: stable, candidate, beta, 
edge. So for example, you can choose Go
1.7/stable and 1.7/edge. People who switch to a beta channel of 1.7 will get 
new beta revisions as long as that is open,
otherwise they will drop to 1.7/candidate, or 1.7/stable if that’s the only 
release in the 1.7 track.

The implicit track for everybody is ‘latest’. So what we currently call 
‘stable’ is now implicitly ‘latest/stable’.
Installing a snap --stable is the same as installing --channel=latest/stable 
and the various tools will be updated to
reflect that nomenclature in upcoming releases.

On the ‘latest’ track, the major version will change when the publisher 
switches to the new major version. So if you are
on latest/stable for Go then you will get 1.7.x when the publisher chooses to 
release it into latest/stable, and then
1.8.x when that comes around. You are tracking the latest and greatest stable 
release.

If you switch to a track like 1.7, then the publisher should never change major 
version underneath you unexpectedly. You
can expect to get point releases that fit the ‘1.7’ designation, and you will 
stop getting updates when the publisher
stops releasing new revisions in that older track.

Since each track gets stable, candidate, beta and edge revisions, you can run 
daily builds of your stable branches into
the relevant track/edge channel. So something like 1.8/edge should contain a 
smoke-tested daily automated build of the
1.8.x stable branch. This maintains the ability to release CI builds to edge 
for each major version. Similarly, you have
beta and candidate to push releases to a wider audience before they go to the 
stable channel.

This feature is now available in beta. In addition to the Go snap there is an 
etcd snap available with tracks for 2.3
and 3.0, and tracks for the MySQL snap are in the works.

Please contact us on the #snappy IRC channel on FreeNode or 
[email protected] or
https://rocket.ubuntu.com/channel/snapcraft if you'd like to create a track for 
your snap.

To ensure that users don’t get stuck on unmaintained software we will only open 
tracks for upstream stable releases that
are actively maintained in stable branches.

We are still making some adjustments to the snap and snapcraft command 
interactions to fully support tracks, but here's
the current CLI user experience to release a revision into a track:

    snapcraft release <snap> <revision> [<track>/]stability

For example:

snapcraft release foo 14 2.0/stable
snapcraft release foo 15 2.1/edge

The track is ‘latest’ unless provided explicitly. So this will update the 
release in latest/stable:

    snapcraft release foo 13 stable

To install a snap from a particular track:

    snap install foo --channel=2.1/candidate

`snap info` will in future tell you about the tracks for a particular snap. For 
now, tell your audience through your
blog or mailing lists if you have stable tracks to offer.

Hope you enjoy this feature. Feedback welcome and if you have questions, please 
ask!

Regards,

- Facundo, on behalf of the Snap Store team
.
Canonical - Online Services

-- 
Snapcraft mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/snapcraft

Reply via email to