InstallUpdatesWhenInstallingUbuntu

Differences between revisions 8 and 9
Revision 8 as of 2009-06-15 17:37:42
Size: 7720
Editor: 82-69-40-219
Comment:
Revision 9 as of 2009-06-16 11:14:46
Size: 5938
Editor: cpc3-slam5-2-0-cust447
Comment: change the specification to reflect comments by cjwatson
Deletions are marked like this. Additions are marked like this.
Line 29: Line 29:
 * As this functionality requires a good mirror selection, this specification depends on the GEOIP timezone selection work.
  * ''While I know that the Geo``IP work will be useful here, I don't think this specification strictly depends on it. After all, if this specification weren't implemented, the user would be downloading updates later on from whatever mirror is automatically selected anyway, so this clearly doesn't make it any worse. Perhaps a useful bit of mitigation would be for the checkbox label to say which server will be used for the download. --ColinWatson''
 * We do not care about fragementation of the filesystem, as we already do lots of writes at the same time.
Line 34: Line 33:
If the "download updates" box is checked, ubiquity will wait 20 seconds, and then tell apt to update the package index files, then start downloading any available updates. If the box is unchecked at any point, ubiquity will stop apt. If the "download updates" box is checked, ubiquity will wait 20 seconds or until copying begins, whichever is longer, and then tell apt to update the package index files, then start downloading any available updates. If the box is unchecked at any point, ubiquity will stop apt.
Line 42: Line 41:
| [X] Download available updates now. | | [X] Download available updates now   |
| from au.archive.ubuntu.com
.     |
Line 47: Line 47:
 * The mirror will be explicitly listed to guard against the mirror detection code selecting a non-local mirror, causing the user to have a high bandwidth cost. Geo``IP timezone selection will mitigate the potential for this to an extent, however as the use of it is not a dependency of this specification, we will guard against the problem with this explicit mentioning of the mirror address.
Line 55: Line 56:
 * The download will not start until 20 seconds have passed, to allow sufficient time to uncheck the box if this is not desired.
  * ''20 seconds after what? My memory of the UDS session is that we said either 20 seconds after the start of the install progress bar (which starts with partitioning) or once copying files has started, whichever is the later. --ColinWatson''
 * The download will not start until 20 seconds have passed or until copying begins, whichever is longer, to allow sufficient time to uncheck the box if this is not desired.
Line 58: Line 58:
 * When we are done downloading, ubiquity will send SIGTERM to apt.  * The download will continue until it completes or the user quits ubiquity (either by selecting "continue using the live CD" or "reboot now", or if the installation crashes).
 * When ubiquity quits, it will send SIGTERM to apt.
Line 60: Line 61:
 * If the download finishes before we are done installing, the download updates checkbox will be grayed out. This behavior will be run past the design team for a quick usability review.
Line 64: Line 66:
 * We will also announce the feature with the milestone it is released for, to provide the community with adequate time to make suggestions for changes before the final release.
Line 66: Line 69:

''This section needs to be gone before the specification can be approved. --ColinWatson''

 * Should the download continue until they press either the "continue using the live CD" or "reboot now" button?
  * ''I can't think of a good reason not to. Can you? --ColinWatson''
 * If the updates finish downloading, should the checkbox option remain, disappear, or be replaced with an "updates are ready to be installed upon first boot" message?
  * ''There seems no justification for leaving it there unmodified. My gut feel is that simply making it disappear would be confusing, but I suppose that would be best run by some usability people. --ColinWatson''
Line 79: Line 75:
Preseedable option for Dell.
Move the language pack download in this, moved earlier than 80%.
Actual language pack installing still happens later.
We don't want a progress meter because we don't want to make the user think they have to wait for the updates to finish downloading.
Put as a checkbox on the summary page or the advanced page instead of having a cancel button?
 - AU problem.
GEOIP would let us select a good timezone point and a good local mirror, somewhat limiting the AU problem, though we'd still want to let them disable this download somehow.
Offer a checkbox that's checked by default and says "Download updates while installing" that sits just below the install progress.
You would have to act quickly if you wanted to uncheck the box.
 - We can wait a few seconds, or after partitioning to start.
We may want to explicitly not offer this option at all when on 3G.
 - PackageKit as an example.
 - Default the checkbox as off in this case?
 - Colin to talk to Michael
Fragmentation a problem?
 - "Let the filesystem sort it out"
 - We do lots of things at the same time, this is not an issue.
Measure how often people are using this?
 - Change user-agent.
Announce during milestone, doing this, what do you think?
Line 100: Line 76:
We disable update-notifier on the live cd.
Not start the download until we're at copying files.
Disable the checkbox if NM reports no network connection.
Use subprocess and send SIGTERM to it when done.

Summary

ubiquity will grow the ability to download updates while it copies files to the installation target.

Release Note

Updates will now be downloaded while you install Ubuntu, making them immediately available to install upon first login. This will not occur on 3G connections, and users wishing to avoid this feature can disable it when the installation begins.

Rationale

There may be a number of important updates available after installation. However, these could amount to a rather large download, and since we're mostly IO bound during the installation it would make sense to try to start this download then, letting the user finish downloading or start installing the updates once they've rebooted into the new system.

User stories

  • Mark installs Ubuntu 9.10 in March of 2010. As roughly five months have passed since the release, there are nearly 100MB of updates to download.
  • Bob installs Ubuntu 9.10 on a laptop with a 3G modem that he has configured in the live environment. As he pays per megabyte on his data plan, he does not want to download anything until he returns to an unrestricted connection.
  • Luke lives in Australia. As using a non-local mirror would cost him a fortune, he needs to be certain that the installer chooses an appropriate one.

Assumptions

  • If the user has chosen to set up a 3G connection, they have done so using NetworkManager.

  • We do not care about fragementation of the filesystem, as we already do lots of writes at the same time.

Design

If the "download updates" box is checked, ubiquity will wait 20 seconds or until copying begins, whichever is longer, and then tell apt to update the package index files, then start downloading any available updates. If the box is unchecked at any point, ubiquity will stop apt.

+---------------------------------------+
|  Installing system                    |
|  [///////         15%              ]  |
|  Detecting file systems...            |
|                                       |
|  [X] Download available updates now   |
|      from au.archive.ubuntu.com.      |
+---------------------------------------+
  • We will not indicate progress, as this might lead the user to believe that they have to wait for the download to finish before they can reboot the computer.
  • The mirror will be explicitly listed to guard against the mirror detection code selecting a non-local mirror, causing the user to have a high bandwidth cost. GeoIP timezone selection will mitigate the potential for this to an extent, however as the use of it is not a dependency of this specification, we will guard against the problem with this explicit mentioning of the mirror address.

Implementation

  • This will need to be preseedable, to allow OEMs like Dell who want to keep the installer from attempting to access the Internet.
  • The language pack download functionality that already exists will be merged into this feature, but the language pack installation will be a separate piece that occurs during installation.
    • This reminds me of a subtlety. We probably don't want to have background downloads running at the same time as apt is installing language packs or any of the other things we install using apt. As such, we must arrange to stop and start downloads around any such possible event. I'm not sure whether this would be better done just by bracketing the top-level steps involved with stops and starts, or whether our apt-install wrapper and any cases where we install packages directly using python-apt should take care of it; assuming that stopping and starting downloads is reasonably efficient, then the latter will probably result in a more complete download, but see what works I suppose. --ColinWatson

  • If NetworkManager is present and a 3G connection is active or no network connection is present, the download updates option will be unchecked and greyed out.

    • AlexanderSack suggests using nm-tool for this. D-Bus interfaces are also available if we want to use them, but they're rather more complex.

  • The download will not start until 20 seconds have passed or until copying begins, whichever is longer, to allow sufficient time to uncheck the box if this is not desired.
  • The download will write package files to /target/var/cache/apt directly, rather than using an intermediary and then copying the files in at the end.
  • The download will continue until it completes or the user quits ubiquity (either by selecting "continue using the live CD" or "reboot now", or if the installation crashes).
  • When ubiquity quits, it will send SIGTERM to apt.
    • If you're having to stop and start several times around critical sections, then you'll probably also need to wait for apt to exit and then synchronise with the main thread here. --ColinWatson

  • If the download finishes before we are done installing, the download updates checkbox will be grayed out. This behavior will be run past the design team for a quick usability review.

Test/Demo Plan

  • During development, the user agent will be changed so that we can track whether a large number of people are making use of this feature.
  • We will also announce the feature with the milestone it is released for, to provide the community with adequate time to make suggestions for changes before the final release.

Unresolved issues

BoF agenda and discussion

Has this section been entirely folded into the rest of the specification? If so, it should be removed. --ColinWatson

Colin thinks it will need more than a preseed.


CategorySpec

InstallUpdatesWhenInstallingUbuntu (last edited 2010-06-01 17:17:20 by eth0)