Channel support in GNOME Software

I’ve just implemented channel support in GNOME Software and would like some feedback on the UI.

I ran through the following ways of implementing this:

  • Modifying the install button to have a dropdown for which channel to install from.
    • Good at making it easy to install from a channel.
    • Install button doesn’t exist once snap is installed - need additional method to switch channels once installed.
  • Placing a button beside the install button for switching channels.
    • Makes the buttons more cluttered.
    • Isn’t clear how the channel button relates to install button.
  • Prompting the user with a dialog when install clicked.
    • Asks the user a question they might not know the answer to (users tend to ignore dialogs).
    • Hard to implement in a generic way suitable for GNOME Software.
  • Putting a new details field beside the version information (chosen solution shown below).
    • A bit harder to find, but given this is probably a power user feature shouldn’t be too hard to find.

Browsing for a snap will show the channel and the available version from that channel (see “stable” channel button in details):

Clicking on the channel button shows the available channels and versions. Switching channels changes the button label and is the channel that will be used if the snap is installed (i.e. the equivalent to running snap install --channel foo).

Once installed you can switch channel (equivalent to running snap switch). This will then cause the “Update” button to show to allow you to update to the version on that channel (equivalent to running snap refresh). I did consider doing the refresh when you change the channel, but I don’t think it’s expected by the user that a large download might occur after switching. This way seems to match the command line behaviour using snap switch.

4 Likes

:heart:

One minor UI suggestion, the channel pop-up is non-obviously there. Could it just be a button next to the “Channel: EDGE” label?

Do you mean it’s not obvious that “edge” is a button? I did consider a “change” button beside it but went for a button (like the license “free” button). It’s possible we could improve the CSS to make it clearer.

Yes exactly. I would not expect LICENSE to be a button either and it looks exactly the same as channel there.