Software Updates

Designs for the software update experience.

Goals

  • Update the full range of software - firmware, operating system, applications, add-ons.
  • Require as little interaction from the user as possible.
  • Don't consume bandwidth when it is potentially limited or costly.
    • Where possible automatically detect when bandwidth is limited/costly.
  • Prioritise important updates, particularly security updates.
  • Show details about updates prior to installing them. This is most important for OS upgrades.

Constraints

  • Checking for package-based updates is bandwidth intensive.
  • It's not always possible to automatically detect when on a metered/mobile connection.
  • Updates don't always have descriptions. When they do have them they're often not very good, and they're typically not translated.
  • Various things relating to update logic:
    • Reboot is required to install package-based updates, OS upgrades and firmware updates for the computer.
    • Peripherals can't be used while their firmware is updated.
    • Flatpaks need to be restarted after an update, in order to use the new version.
    • If a Flatpak runtime is updated, running apps need to be restarted to start using the new version.

Relevant Art

GNOME 3.26

  • Package-based and firmware updates: are automatically downloaded in the background. They can then be manually installed (requires a restart).
  • OS upgrades: are automatically checked for; then manually downloaded and installed.
  • Application updates: automatically checked for; manually installed.
  • Has a hidden "download-updates" settings key. When this is false: FIXME.

Android 8.0

  • Apps are auto-updated by default. When auto-update is on apps are automatically downloaded and installed (installation happens in chunks; app updates that are yet to be installed are shown in the Play Store app and can be manually installed).
  • When auto-update is off, a banner is shown which encourages you to turn it on. Updates are automatically checked for and the user is prompted to download and install them.
  • OS updates require manual download and a separate manual install step.
  • Provides three settings for auto-update:
    1. "Do not auto-update apps"
    2. "Auto-update at apps at any time. Data charges may apply."
    3. "Auto-update apps over Wi-Fi only" (default)

There's also a separate "data-saver" feature, but that only seems to affect mobile data.

Discussion

  • How to handle a case where an update makes an application less sandboxed than it was previously?
  • When automatically updating software, it can be good to show what's been updated recently. However, in the Flatpak case we require that the app is restarted, which negates the need for this.

Tentative Design

Automatic update behaviour

Automatic update is used by default. It can be manually disabled from a setting and is automatically disabled for metered and mobile connections.

TODO: should there be a way to force automatic updates on mobile/metered connections?

Update type

Check for updates

Download updates

Install updates

Auto-update on

OS¹

Automatic

Manual

Manual

Integrated firmware²

Automatic

Automatic

Manual

Packages

Automatic

Automatic

Manual

Applications/runtimes

Automatic

Automatic

Automatic

Extensions

Automatic

Automatic

Automatic?

Device firmware³

Automatic

Automatic

Manual

Auto-update off

OS¹

Automatic

Manual

Manual

Integrated firmware²

Automatic

Manual

Manual

Packages

Manual

Manual

Manual

Applications/runtimes

Automatic

Manual

Automatic

Extensions

Automatic

Manual

Automatic

Device firmware³

Automatic

Manual

Manual

¹ Includes OS upgrades for package-based systems as well as updates for image-based OSs.

² Firmware for the computer itself - BIOS and so on.

³ Firmware for peripherals.

Updates View

https://raw.githubusercontent.com/gnome-design-team/gnome-mockups-software/master/wireframes/updates-auto-on.png

https://raw.githubusercontent.com/gnome-design-team/gnome-mockups-software/master/wireframes/updates-auto-off.png

There are also various empty states for the updates view.

OS Upgrades

Mockups for the banners that are shown when OS upgrades.

App Details

It might be nice to indicate if an app has updates available from its details page.

Comments

See Also

Design/Apps/Software/Updates (last edited 2017-09-28 15:34:09 by AllanDay)