From Fedora Project Wiki

Preupgrade Assistant


The PreUgrade assistant is a tool to help people upgrade from one release to another and be sure to track important manual configuration changes they performed.


Current status

  • Targeted release: Fedora 20
  • Last updated: 2013-01-25
  • Percentage of completion: 0%

Detailed Description

The idea behind the The PreUpgrade assistant came from the notion that even during the rather short release cycles in Fedora occasionally there are changes that are incompatible between releases and which are either hard or nearly impossible to cover during a standard package upgrade. Examples would be major version upgrades of applications or services that change configuration file syntax or on-disk date format changes.

The assistant works by analyzing the source system and will generate a report which will offer information and configuration files for typically changed settings and services. It offers a plugin architecture where component or functional area owners can contribute and write their on plugins in python that can generate additional information for the report.

Benefit to Fedora

The PreUpgrade assistant is basically in addition to FedUp and offers additional help for upgrading systems from one release to a future one.


The PreUpgrade assistant is a standalone tool that doesn't affect any other component in the system. The scope for Fedora 19 is to provide the basic framework and initial plugins for general use. Additional component or functional area plugins rely on component owners to actively help working on them.

How To Test

  1. Install the tool via 'yum install preugrade-assistant'
  2. Run the analysis stage via 'preupgrade-assistant --collect /var/tmp/preupgrade-data-dir/'
  3. Run the report stage via 'preupgrade-assistant --report /var/tmp/preupgrade-data-dir/'
  4. Verify that the information in the report is accurate and consistent with the actual configuration of the system

User Experience

The PreUpgrade assistant should provide some additional help to upgrading systems via FedUp. While FedUp can do the 'mechanical' part of an update really well there can be scenarios that need interaction and/or descisions from the admin prior or after the actual upgrade which is where the report from the PreUpgrade assistant can come in to give some guidance on what needs to be done.


Except python and some basic python bindings for rpm and a few other tools there are none at the moment. Depending on the anaconda storage lib we might want to require that at some point as well but it's unsure if that is in the scope for Fedora 19.

Contingency Plan

As this tool is fully independant the contingency plan is to move it to Fedora 20 should we not be satisfied with the readiness of it by the time of Feature Freeze for Fedora 19. As it should be fully self-contained, it could even be introduced at a later point in the Fedora 19 life-cycle.

Additionally we currently investigate if we shouldn't add this functionality into fedup in cases where fedup probes for an upgrade and detects it can't do it due to dependency issues or any other problems where we could then create that report instead and let the admin know what he'd have to do in order to replicate his current system and settings on a fresh install of the latest release.


  • To Be written:
    • Overall documentation
    • How to run
    • How to write plugins

Release Notes

  • The PreUpgrade Assistant is a new tool to help prior to upgrading a system with FedUp to get a report of the current state of the system and help the admin after the upgrade has completed to ensure all reported configurations are still correct.

Comments and Discussion