Skip to content
This repository has been archived by the owner on May 9, 2022. It is now read-only.

Latest commit

 

History

History
91 lines (75 loc) · 3.12 KB

TODO.asciidoc

File metadata and controls

91 lines (75 loc) · 3.12 KB

TODO

(ordered by priority, roughly)

Safety checks
  • If /etc/yum/vars/releasever exists, complain to user (#908017)

Docs
  • document boot args

  • man pages for services/targets?

Migration
  • Add preboot scriptlet hook

    • Not technically a dracut hook, since it’ll be run by fedup

    • Example uses:

      • Bug #881624: Migrate KEYTABLE=... to KEYMAP=...

      • Bug #881670: Add x-systemd.device-timeout=0 for mounts that need it

    • See also kernel-install and *.install

Disk space handling
  • Pad RPM diskspace check to require more disk

  • Add --packagedir and --cachedir flags

  • Remove old/unneeded/expired files before downloading newer versions

ISO/Device/"Offline" upgrades
  • This is related to disk space handling (lots of mount juggling)

  • Handle ISO-on-USB-stick case

  • Handle mount chains deeper than ISO-on-USB

Crash handling
  • Log state to a file

  • Display error message, wait for keypress, then reboot:

    • "The upgrade failed. Your system has not been harmed. Press <Enter> to restart your system."

    • Allow reboot-on-failure (e.g. for remote systems)

Downloading
  • Do async/multithreaded downloads

    • See #8

      • Need to fix the console output, though…​

  • Use yum’s console output for downloads (see bug #981819)

    • Or at least show download speed / ETA

Logging
  • Log the disk layout (lvs, pvs, blkid, fstab, mounts) in debug log

Commandline behavior
  • Write sys.argv into config file

    • use fedup --continue to repeat last run

    • use fedup --abort to delete stored args and remove bootloader config

  • Don’t mess with bootloader unless specifically requested

  • At end of upgrade: “Run fedup --reboot to begin upgrade”

    • and/or fedup --start

distro-sync mode
  • Add --distro-sync flag (or similar)

  • Download packages from new repos, even if they’re older

    • How does yum implement this?

  • Need to pass along a flag (in upgrade.conf?) to the upgrade tool

update-groups mode
  • Add --update-groups flag (or similar)

  • Reinstall each group that yum lists as installed (see yum.igroups)

    • Extra argument for mandatory vs. default

Testing
  • Unit testing

    • blerg, yum/rpm do not lend themselves well to this

  • Functional testing

    • need lots of tools

      • install a VM with a given Fedora version

      • apply updates and/or install fedup

      • generate updates/instrepos with packages with certain properties

      • run fedup and check logs/results

Upstreaming
Updates
  • Scheme for associating updates images with upgrade.img vintages

    • Read /etc/system-upgrade-release from initrd to get version

GUI
  • Wire up the UI bits

  • Wire up progress callbacks

    • yum in a subprocess

      • use multiprocessing.Queue to send back progress data?