Anaconda Work List
The work list is a list of the main work we have in progress for anaconda and is targeted for a specified release deadline. The list is organized by high level topic with an associated owner, target release, description, and other information.
This list is not guaranteed to be up to date, but we periodically review it when we begin a new phase of major changes for the installer.
Last Updated: 04-Oct-2012
|Exception reporting||03-Oct-2012||clumens||F-18 Beta||While most everything has been moved into report, there's still a little bit of UI code under our control left for exception handling. This is either in python-meh or in pyanaconda/exception.py and pyanaconda/gui.py. The first thing to think about here is an API that will be common among both the TUI and GUI. Then, the existing exception handling code needs to be adapted to that API. Right now it just fails so we have no effective error reporting. Any anaconda work can be done right on the newui branch, but python-meh currently has no branch.
03-Oct-2012: Code to support reporting errors to Bugzilla is present and should be working now.
|Update filter UI||24-Jan-2012||F-19||The existing filter UI in iw/filter_gui.py and iw/DeviceSelector.py needs to be updated for the new UI model. This includes adding a button to storage.ui/storage.py for adding a disk, moving the old filter UI into glade (a lot of it is hand-coded due to previous glade deficiences, especially when it comes to Views and Stores), and making minor changes as called for by the new mockups. Unanswered questions: How does this fit in with the existing storage UI? How do you go back to the previous destination screen?|
|RAID-0, RAID-1, and RAID-5 install support||25-Sep-2012||dlehman||F-18 Beta||From dlehman: I have done sporadic testing of 0, 1, and 10 with post F-18 alpha code. I haven't set up a 3-disk system to try out 5, but there's no reason to expect problems.
One thing we'll probably need that we don't yet have is a way to specify the number of spares for an MD RAID set.
There's also a bug that causes a crash if you try to enable RAID on a system that has only one disk. Past that, the stuff that prevents users from choosing a RAID level that isn't appropriate based on disk count works well.
|LUKS discovery and creation||25-Sep-2012||dlehman||F-18 Beta||From dlehman: The plan is to only provide this functionality in the custom spoke. Users will be able to somehow tell us they want to unlock the volume. We'll prompt for the passphrase and then tell the devicetree to populate the tree starting with the newly unlocked LUKS volume.
We don't need to worry about it for any other cases since we either want to remove the encrypted block device or not--it doesn't matter what's underneath it until/unless you get to custom.
|btrfs support||25-Sep-2012||dlehman||F-18 Beta||From dlehman: BTRFS should be fully functional in the beta. We expose subvolumes, data raid, and metadata raid through kickstart. Through the UI we expose subvolumes and data raid. There isn't really anything else I'm concerned with unless we decide we need to support compress at install time (you can enable compression post-install, but it won't retroactively compress the data laid down by the installer, which could be a basis for complaints/RFEs).|
|Basic storage custom partitioning UI||03-Oct-2012||dlehman||F-18 Beta||From dlehman: The biggest missing piece right now is setting mountpoints for existing devices/filesystems.
The current UI for specifying "reformat this device" is to change the fstype, which of course doesn't provide any way to say "reformat this device with a new filesystem the same type as the current/old one". I may just add a "Reformat" checkbutton for this if mizmo doesn't have any better ideas.
Support for creating encrypted devices is still absent. Mostly it needs a way to get a passphrase for the new device.
There's a lot that's much better post F-18 alpha--particularly the device type switching and raid/btrfs. The basic flow is that you add a mountpoint, we create a device of the type appropriate to the autopart default. If you then want to change the type of that device, you clock on it and change the type using the combobox there. It's quite simple. If you have multiple btrfs mountpoints they're automatically converted to multiple subvols within a single volume spanning the disks. Likewise with lvs. Container sizes (vg, btrfs vol) are automatically adjusted to accomodate the defined devices.
Eventually we want users to be able to specify which VG a new LV will go in, or whichs disks to use for allocation (currently it's "all disks you selected"). We'll eventually need to support lvm-on-md (aka MD PVs). I don't know how much of this will end up getting pushed to F-19.
Support for manual-configuration-advanced-storage-devices is planned for F-19.
03-Oct-2012: More works now in the custom partitioning spoke than did in the Alpha. You can delete existing partitions, create new ones, and adjust formats and sizes. Some things currently noticed (bugs may or may not be filed for these, expecting QA and users to do that for things of dire importance):
|Easy multilib package installation from kickstart||25-Sep-2012||dlehman||F-18 Beta||From dlehman: It's a new option: %packages --multilib.|
|BOOTIF handling in dracut||25-Sep-2012||wwoods||F-18 Final||From wwoods: An attempt to fix problems with "BOOTIF" + "ip" args. It's tricky because of the way dracut network stuff is designed. I have code in a dracut branch but I think there's some things missing; I need to send it upstream and get some testing on it. Branch is here: https://github.com/wgwoods/dracut/tree/bootif-stuff|
|dracut cleansup||25-Sep-2012||wwoods||F-19||From wwoods: Improve dracut logging by making sure debug_off/debug_on actually work as expected. Add an 'importlib' command to clean up importing libraries, etc. Various other minor cleanups.
From dcantrell: It is likely that some cleanups will come as part of the regular bug fixing process through F-18, but most of these things can wait until F-19.
|Upgrade support via preupgrade||25-Sep-2012||wwoods||F-18 Final||From wwoods: So the code is currently here: https://github.com/wgwoods/fedup. Plan for F-18 Beta is to have an F-17 based upgrade tool that fetches packages *or* sets up an upgrade using a local DVD/USB image.
It might not have any real GUI for beta, but it will for final.
It will involve a special upgrade image, but it's just a dracut-built initramfs. This could be built by lorax, or it could just get built by running 'dracut' inside a mock chroot. This might require rel-eng involvement.
I might need some assistance with: i18n stuff, GUI polish, a special plymouht theme for the upgrade, and network monitoring (e.g. running sshd in dracut, like we do for s390 cmdline installs).
|Text mode installer||25-Sep-2012||jkeating||F-18 Beta||From jkeating: Text mode mostly works, with the limited spokes.
I want to bring the text mode password spoke up to feature parity with the GUI one I wrote, mostly this is just validation of the password. That involves moving some code up to shared libraries and making use of that code from both spokes.
|Kickstart installs||25-Sep-2012||jkeating||F-18 Beta||From jkeating: Kickstart is the big thing I'm working on right now. Unfortunately getting kickstart to work means fixing a bunch of other stuff so the patch set is having to go back a few times. Along with kickstart is support for "cmdline" which is a trigger to error out on any missing data (needs to be fixed for graphical mode too).
Serial mode I have not even tried, so that's on the list to look at.
As of right now, we only have timezone, root password, and a simple storage spoke (pick destination drive(s) and autopart style). I don't plan to have anything more for F-18.
|Text mode exception handling||25-Sep-2012||jkeating||F-18 Final||From jkeating: We need some form of exception handling in text mode too. Right now it's a mixed bag of either traceback and immediate reboot, or just being presented with a "pane is dead" type message in tmux.|
|Prompt for VNC fallback||25-Sep-2012||jkeating||F-18 Beta||If gui mode fails to start, we need to prompt the user asking if they want to use VNC or proceed to the text mode installer.|
|updates.img/product.img handling||25-Sep-2012||jkeating||F-19||From jkeating: We need a long term solution for updates.img and product.img handling, in how we get the bits grabbed in dracut exposed and used post-pivot. We have a bandaid in place for F-18, but for F-19 we need a better fix.|
|s390x text mode installs||25-Sep-2012||jkeating||F-19||From jkeating: tmux works like badness in x3270, either those two need to work together well (beyond my capabilities) or we need to /not/ run tmux when doing s390x installs (and not using ssh session to start it).
That brings up the next item, starting installs via ssh instead of directly in x3270. I fear that since this is how we've done it for a while, that taking it away will get some people angry. If we do allow installs via ssh, then tmux usage is actually a boon here because you can get access to logs and a shell without sshing in multiple times. We just have to figure out a flag for it, or make this the default and create a flag to tell the installer to run the install directly from x3270 (such a flag kinda exists for kickstart installs, but now we can do some interaction in x3270).
If doing text mode from x3270, we do need to fix up text mode a bit. The way x3270 handles screen printing beyond the buffer is to refresh the screen and start printing at the top, so anything on screen before you hit the end is lost. Not good if that's halfway through a dialog. So we could really use some way to trigger a full screen refresh before printing the next spoke, not sure if this is possible.
|iSCSI, FcOS, and other advanced storage||25-Sep-2012||F-19||Manual configuration of advanced storage devices as well as the storage filtering UI in anaconda is slated for F-19.|
|Fixing translations||03-Oct-2012||clumens||F-18 Final||When you change language on the welcome spoke, all of anaconda should then be in that language (including the welcome spoke itself). In the alpha this is pretty broken. The items from the C widgets on the welcome spoke do not retranslate, and lots of stuff on the hub and spokes do not retranslate either. clumens has work underway to fix much of this, but it's still missing pieces. Note that there don't appear to be any serious problems with the translated text itself.
03-Oct-2012: A lot of backend work has happened in the past week for this problem. Code has been committed but there are likely more changes necessary. This continues to be an active work item for F-18 Beta.
|Resizing partitions||03-Oct-2012||clumens||F-18 Beta||A major piece missing from custom partitioning right now is the partition resizing interface we refer to as tug-o-war. We originally had a very complex UI planned that involved custom widgets. However after further discussions and in the interests of time, mizmo has done a redesign that is much simpler. Thus, we can expect this to be done much faster.
03-Oct-2012: A large patch set implementing the latest UI design and backend functionality for resizing has been posted for review. It has been tested locally and should be working once it is committed to the master branch.
|Add repo dialog||03-Oct-2012||vpodzime||F-18 Final||The add repo dialog currently exists as a UI, but doesn't do anything. It needs to be hooked in and made to work. Talks between clumens and mizmo indicate that UI changes may need to be made, however. Also we need to think about how this works given the new environment/add-on organization in comps.
03-Oct-2012: There is a button in the UI that brings up an Add Repo dialog, but it does not fully work. This remains an active work item for F-18 Beta.
|Redraw ugliness||25-Sep-2012||There's two major points where things get redrawn and the result is pretty ugly. First, when displaying something in a lightbox, you can see the background get drawn in blocks before the dialog is displayed. Related, spokes being drawn can exhibit this same behavior. Second, spokes are sometimes drawn very small in the upper left corner and then shortly thereafter redrawn maximized. The user can see this happen in front of them.
The biggest problem here is that this requires the help of someone much more familiar with X and GTK than anyone in anaconda. We need to see what can be done (are we doing something wrong?) and then figure out how to fix it. These are not major blocker issues, but go a long way towards presenting a more finished product.
|Firstboot replacement spoke in the second hub in newui||03-Oct-2012||msivak||F-19 Beta||The skeleton work for this code is there, but the individual configuration screens have not been implemented.
03-Oct-2012: As the existing firstboot program is functional in our devel tree composes, we have this work slated for F-19.
|Driver update disk (DUD) support via dracut||28-Sep-2012||msivak||F-18 Beta||With the removal of loader, driver update disk loading functionality is going to be handled by dracut before handing over to anaconda.|
|anaconda replaces system-config-kickstart||28-Sep-2012||clumens||F-19||The plan is to let users run anaconda as a standalone application that can generate kickstart files for other systems.|
|GeoIP data preselects time zone, keyboard layout, and language choices||28-Sep-2012||vpodzime||F-19||For network-based installations, find the user's location via GeoIP and use that to preselect the time zone, keyboard layout, and language choices.|
|Lightbox||26-Oct-2011||akozumpl||F-18 Alpha||Lightboxes are used to bring user's attention to a modal dialog by visually darkening everything but the dialog and blocking most of the input into areas outside of it. This is quite straightforward to achieve on a website or with a composing window manager which allows transparent windows. For Anaconda (metacity) we have to workaround on the gtk/gdk level to achieve a similarly looking result.|
|Language selection widget||29-Sep-2011||mgracik||F-18 Alpha||The ListView in the center of the screen containing supported language names in their native language and in English, along with type-ahead support. Your solution should be the type-ahead filter box and scrolled list of languages. This will end up getting packed into something else in glade later, but figuring out how to get the list of languages is a good first step. The ideal solution will not involve any of the lang-names and lang-table crud we have now.|
|Date/Time spoke||15-Nov-2011||vpodzime||F-18 Alpha||Nothing exists for this spoke yet. The mockup we have is based off gnome-control-center.|
|Language spoke||15-Nov-2011||msivak||F-18 Alpha||We've already got one language-related thing on the welcome spoke right up front, but this is a different one - it'll be used to select the languages that will be installed on the system. Basically you are picking the language support packages. Whatever was selected on the welcome screen should obviously be included. Likely, much of that code can be reused.|
|Keyboard spoke||15-Nov-2011||vpodzime||F-18 Alpha||There's already a stub keyboard selection spoke in pyanaconda/gui/ui/spokes, but it doesn't do much besides display. The finished product needs to get a list of keyboards from somewhere (preferably, nowhere that anaconda maintains), the buttons should do something, and so forth. When applied, this spoke should both set the current keyboard and update ksdata.|
|Configure network spoke||03-Oct-2012||rvykydal||F-18 Beta||I think we need to divert from mockups so that we can (re)use nm-c-e for network configuration (nm-c-e for selected device is invoked by Configure button) while our own spoke UI code will be used just for network control - list of devices/access points, turning on/off, access point selection, status information - which is what gnome-control-center does in desktop. The initial UI is taken from g-c-c glade file, just some functionality and UI we don't need/support in installer is hidden and e.g. device description details are added. We need also nm-applet as Secrets Agent for wireless authentication. Network configuration is applied (as in desktop) only after configured device is restarted (using on/off switch). Video: http://rvykydal.fedorapeople.org/network_spoke.webm (note that it is taken using test harness in desktop, so in presence of nm-applet service).
03-Oct-2012: There is a network configuration spoke in the installer now and it works, though it may expand in future releases or have elements reworked. However, what is there now may be sufficient for F-18 Beta.
|Existing firstboot program functional||03-Oct-2012||msivak||F-18 Beta||The existing/classic firstboot program is currently functional in Fedora 18 Alpha and nightly builds, which leaves us with a fallback place for the items that we intend to implement in the firstboot replacement spoke in the installer.
03-Oct-2012: Current devel trees that we have been composing launch firstboot and it works fine. This may be sufficient for F-18 final, want a comment from Fedora QA though.
|Disk utilization pie chart||03-Oct-2012||bcl||F-19||A little pie chart that appears next to a DiskOverview showing how much of the disk is free. The black part indicates used space, and the white part indicates free space. Your solution should be a class or method that takes in a total size and an in-use size and returns the pie chart. The size of the chart itself should not be fixed - that is, it should be able to scale larger and smaller as necessary.|
|Make isomd5sum interruptable||24-Jan-2012||bcl||F-18||According to the install source mockups, there's a Verify... button that allows you to verify the installation source. This button would use isomd5sum to do this, which first requires Python bindings. I have a rudimentary patch at http://fpaste.org/Pckp/ that allowss this, complete with callback. However, making the Cancel... button work while isomd5sum is running requires further work. This needs to be done, and the results committed upstream and packaged appropriately (the Python binding would probably end up in its own subpackage).|
|Live image installation support under newui||28-Sep-2012||bcl||F-18 Final||Live installations should work under the new user interface in anaconda.|