Features/PreUpgrade

Summary
Allow users to easily download all the files needed to upgrade their distro, and then reboot into the installer without burning media.

Owner

 * Name: SethVidal, JeremyKatz, WillWoods

Current status

 * Targeted release:  Fedora 9
 * Last updated: April 16, 2008
 * Percentage of completion: 100%

Detailed Description
Provide an application a user can run from their existing fedora system which will depsolve all the pkgs they need to update to the next fedora release, download the pkgs, download the initrd and kernel, download a stage2 image, put them in place in the user's grub.conf and allow them to reboot into them to complete their update using anaconda.

Benefit to Fedora
It means that the boring and tedious part of an anaconda-based upgrade is done while the user is doing other things and while their computer is still useful to them. Then the update can go quickly and without pain while also allowing us to do proper upgrades using anaconda.

We get all the advantages of an anaconda update w/o the user having to wait or download and burn a cd or muck about with grub etc.

Test Plan
1. Install Fedora 8 1. Install preupgrade 1. Run preupgrade GUI (preupgrade-gtk.py) 1. Confirm that Fedora 9 appears in list of available versions 1. Choose 'Apply' 1. Confirm that packages are downloaded 1. Process should complete with no traceback 1. Reboot system and choose 'upgrade fedora' from boot menu 1. System should start installer - configure network, keyboard, etc. 1. Choose 'upgrade' 1. Check anaconda log to confirm that packages are being pulled from on-disk cache 1. Reboot into installed system 1. Install Fedora 7 1. Install preupgrade 1. Continue as above 1. Install Fedora 8 1. Install all available updates and reboot 1. Install preupgrade 1. Continue as above 1. Start basic test 1. After downloading half of the packages, quit preupgrade 1. Restart basic test 1. Confirm that packages in cache are not downloaded again
 * Basic test: Upgrade from latest stable
 * May require a commandline flag to show non-final releases to test with Beta
 * Network is still required for installation!
 * Upgrade from old stable
 * Upgrade from updated stable release
 * Resume interrupted run

User Experience

 * !JoAnne wants to upgrade her machine from Fedora 8 to Fedora 9. She runs the Fedora Online Upgrade Tool, which analyzes her system and begins downloading all the files and packages necessary for the upgrade. She can still use her system while it downloads all the packages. When it finishes, it offers to reboot the system to begin the upgrade.

Dependencies

 * Anaconda changes - Completed in F8
 * .treeinfo file contains data about the location of the stage2 images
 * anaconda will look for packages in /var/cache/yum/anaconda-upgrade/packages during upgrades
 * preupgrade source:
 * https://fedorahosted.org/preupgrade
 * Need a location to store the files which point to 'the next version' somewhere out on the web.
 * JesseKeating suggested
 * rel-eng has agreed to take care of updating the file when new releases go live.
 * Need 'stage2=XXX' support in anaconda - Landed in rawhide March 5, final bugs believed fixed
 * Needs to be packaged / reviewed / built in koji - Package review complete, packages built in koji 
 * Needs to be packaged / reviewed / built in koji - Package review complete, packages built in koji 

Contingency Plan

 * None needed. If the tool doesn't exist, we lose nothing.

Documentation

 * none

Release Notes
TODO.

mizmo mockups

 * Here is more information in the GNOME HIG about the progress widgets used in the mocks:


 * Here is the GNOME HIG section on assistants:


 * Another idea - let folks minimize this to the tray...

Download SVG Source]



Actual screenshots
This is a run of the preupgrade gtk GUI (bzr rev. 66) upgrading from Fedora 8 to Rawhide.



Comments
See also the interview here:

Current preupgrade version is 0.9.3-3, which is available in the F7 and F8 repos. Please see bug 444497 if you have /boot on RAID1, or bug 446826  if you have /boot on your root partition.