What is the appropriate way to show pending updates in a GUI environment?


#1

What is the appropriate way to show pending updates in a GUI environment?

Background

snapd by default automatically updates snaps behind the scenes, however some people like to gatekeep their updates by using snap set system refresh.timer=<timestring> [0]. This allows users to delay snap updates for, I believe, up to 2 months [1]. This works well as it prevents users from having non-updated systems but allows flexiblity if they want to control the speed of the updates.

When one has manually set the refresh timer users can use the command snap refresh --list to display which updates are available and then use snap refresh <snap-name> to update a specific snap.

However this requires the user to use the command line to both check and update their snaps manually, why not show these pending updates within the GUI to further encourage users to update their snaps ?

Proposal

My proposal is when the user has set a refresh timer manually, to then show any pending updates within the relevant GUI of the desktop environment (for example in GNOME this would be in GNOME Software and in KDE with Discover etc).

This would also then fit with how other updates that occur when the user has disabled automatic updates for other distribution systems, such as how Debian and Fedora show packagekit, fwupd, and flatpak updates within GNOME Software.

Notes

  • If you are OK with the above proposal then I am happy to help attempt to contribute the GNOME Software plugin code changes :slight_smile: (but also understand if you don’t want this).

  • I understand that Ubuntu doesn’t currently show packagekit updates in GNOME Software and instead uses update-manager, so for the Ubuntu case the updates could be shown in update-manager instead ? But I hope that long term Ubuntu will use GNOME Software for it’s packagekit and system updates anyway.

  • When automatic updates are enabled for snapd I don’t believe there is any time between the update being noticed by snapd and it being applied ? So I don’t think there is any value in showing updates in the GUI when automatic updates are enabled ?

  • This topic should not be used to debate automatic updates vs refresh timers vs manual updates - just whether when the user is using refresh timers and has pending updates if they should be shown in GUIs.

When speaking to @robert.ancell about this he said to cc @mvo and @pedronis (snapd) and @mpt (design) :slight_smile:

Refs

  1. https://docs.snapcraft.io/system-options
  2. Disabling automatic refresh for snap from store

#2

I don’t see a reason not to reflect what snap refresh --list can present in the GUI environment. OTOH I’m not sure checking whether refresh.timer is set or not, is enough of a criteria to detect if they are “blocked”/significantly postponed. I suppose one could look at the underlying info of snap refresh --time --abs-time and consider how far the next update would be.