Improve the Upgrade Experience

Registered by Jeremy Bicha on 2011-10-31

On release day, users are offered to upgrade their computer to the latest release. However, there are a number of ways in which upgrades don't complete successfully. What can we do to make upgrades safer, more reliable and more pleasant?

See bug http://pad.lv/876146

Blueprint information

Status:
Complete
Approver:
Martin Pitt
Priority:
Medium
Drafter:
Michael Vogt
Direction:
Approved
Assignee:
Michael Vogt
Definition:
Approved
Series goal:
Accepted for precise
Implementation:
Implemented
Milestone target:
None
Started by
Martin Pitt on 2012-03-28
Completed by
Martin Pitt on 2012-05-15

Whiteboard

Work items:
[mpt] Specify how unity and other critical packages shouldn't be removed by an update <https://wiki.ubuntu.com/SoftwareUpdates#uninstallable>: DONE
[mvo] Add code to ensure that unity and other critical packages aren't removed by an update: DONE
[mvo] Stagger upgrades over 14 days (SRU): DONE
[mpt] Redesign how the upgrade prompt appears, to be less in-your-face <https://wiki.ubuntu.com/SoftwareUpdates#upgrades>: DONE
[mvo] Check to see when the "your OS is no longer supported" feature was added and evaluate whether it should be backported to ancient releases (popup added in natty, dialog as part of update-manager works since hardy, SRU uploaded for hardy bugfix #364583): DONE
[mvo] If the OS is no longer supported, "Don't Upgrade" does the same thing as "Ask Me Later" so it pops up weekly (?):
[mpt] Tweak the upgrade design so that "Don't Upgrade" and "Ask Me Later" aren't both present doing the same thing: DONE
[mvo] Investigate whether it's already easy to disable/delay the upgrade message
[mpt] Design how to invite people to back up during upgrades <https://wiki.ubuntu.com/ReleaseUpgrades#recovery>: POSTPONED
[jbicha] document the installer-based upgrade option in system help
Investigate performance of AUFS on Lucid for copy-on-write upgrades, or overlayfs (but won't work from Lucid)
[mpt] Invite people to port release-upgrader to aptdaemon <https://lists.ubuntu.com/archives/ubuntu-devel/2012-January/034680.html>: DONE
[mpt] Ensure that success percentage of upgrades is on the list of metrics we're collecting: DONE
[mpt] Design "Continue my failed upgrade" in the installer using the /var/log/apt-clone <http://ur1.ca/7d50h>: DONE
[ev] Implement "Continue my failed upgrade" in the installer using the /var/log/apt-clone: POSTPONED

= Session notes =

Ideas for discussion:
* Should update-manager even offer partial upgrades during the development cycle? Or can this be improved so that users don't unexpectedly have important parts of their system (like Unity) removed because they happened to upgrade at the wrong time of day?
 - staging transitions (part of the "keep trunk working all the time" effort)
 - mark certain packages as essential (e.g. unity, *-desktop), i.e. removing it means something is wrong
  - but ubuntu-desktop only Recommends unity (for example) ( the new version of ubuntu-desktop if u-d itself is being updated)
   - so ensure that Recommends aren't removed by an update either
 -
[mvo] Add code to ensure that unity and other critical packages aren't removed by an update
* Why do we offer system upgrades to every user on release day? Why don't we stagger these notifications and require the release manager to flip a switch to increase the pool from say 10% to 33% to 100%?
 - mirrors are overloaded
 - OS upgrade is already staggered over 7 days
[mvo] Stagger upgrades over 14 days (SRU)
[mpt] Redesign how the upgrade prompt appears, to be less in-your-face
 - If someone implements <https://wiki.ubuntu.com/SoftwareCenter#updates>, we could present OS upgrades in Ubuntu Software Center, rather than Update Manager
* There are quite a few users running old, no longer supported versions of Ubuntu. We should have a warning notification that we push to these users. I expect many aren't even aware that they are no longer receiving security updates.
- Already exists
[mvo] Check to see when this feature was added and evaluate whether it should be backported to ancient releases
- If the OS is no longer supported, "Don't Upgrade" does the same thing as "Ask Me Later" so it pops up weekly (?)
[mpt] Tweak the upgrade design so that "Don't Upgrade" and "Ask Me Later" aren't both present doing the same thing
Corporate environments want to:
- disable/delay the upgrade message
 (does only show for admin users though...)
[mvo] Investigate whether it's already easy to disable/delay the upgrade message
* Integrate backup into the upgrade process
[mpt] Design how to invite people to back up (linking to Deja Dup?)
* Create a snapshot of the current running system in case the new version doesn't work and allow users to revert to the working version. For instance, graphics drivers may be broken in the latest stable upgrade.
* Provide a button for users to optionally first test-drive the new release (like booting from the ISO) without having to commit to upgrading.
* Gather statistics about install/upgrade success rate, perhaps allowing users to choose/enter an optional reason why the installation process failed.
apt-clone backs up sources.list and list of packages
and live CD detects the /var/log/distupgrade/ aptclone file and re-install/upgrade
upgrade option in ubiquity already does this, but isn't well known
- "Upgrade Ubuntu to x.y"
https://docs.google.com/a/canonical.com/Doc?docid=0AU5sFuLRpCpBZGZra2pqY2pfMTAxZ25rcnBnNXY&hl=en_US#_Installation_type_15909626294_07927152489527989
[jbicha] document this upgrade option in system help
Too much work for this version?
 - Invite people to make a live CD/USB so they can use this option?
[ChrisCoulson] Investigate performance of AUFS on Lucid for copy-on-write upgrades
- or overlayfs (but won't work from Lucid)
[mpt] Invite people to port release-upgrader to aptdaemon
[mpt] Ensure that success percentage of upgrades is on the list of metrics we're collecting
[mpt] Design "Continue my failed upgrade" in the installer using the /var/log/apt-clone
[ev] Implement "Continue my failed upgrade" in the installer using the /var/log/apt-clone

(?)

Work Items