Showing snaps with non-latest track in /store

User story:

As a publisher, I do not want latest/stable to be displayed as the default version to install through the store.

Issues:

This issue will be partially solved with the channel map which will display releases for all channels.

But…

  • what happens when there are no revisions released to latest and only to alternative tracks?
  • how will the publisher/store decide which track should be displayed by default?

@evan may be interested in this topic too

The canonical example is Node.js:

channels:                                           
  stable:      –                                         
  candidate:   –                                         
  beta:        –                                         
  edge:        10.0.0-nightly201803278eca6b8d (345) 15MB classic
  6/stable:    6.13.1                         (317) 12MB classic
  6/candidate: ↑                                         
  6/beta:      ↑                                         
  6/edge:      ↑                                         
  8/stable:    8.10.0                         (312) 15MB classic
  8/candidate: ↑                                         
  8/beta:      ↑                                         
  8/edge:      ↑                                         
  9/stable:    9.9.0                          (329) 15MB classic
  9/candidate: ↑                                         
  9/beta:      ↑                                         
  9/edge:      ↑        

I’m afraid I don’t understand. What’s the wanted behaviour, and/or how does the current behaviour detract from the wanted one?

Node don’t want to push a specific version to the latest/stable channel, because if they do, then when they bump from version N to N+1, it could cause unexpected behaviour for developers who expected to be on N. So they have tracks for N, N-1 and N-2, the supported releases, and N+1 in the latest/edge channel for adventurous users.

However the result of this is that the snap is somewhat undiscoverable and unpromotable. It doesn’t show up in https://snapcraft.io/node or https://snapcraft.io/search?q=node and we’d like it to.

This may be partially solved when we:

The logic that we are planning to enforce for showing non-stable releases will mean that latest/<risk> versions will be displayed over versions in any different tracks.


**The question is:**

Do we want Node, and other publishers, to decide what track is displayed the store as a default if they do not want to use latest?