UI Structure
Move from Wizard-based linear UI to a Hub-and-Spoke Model
We would like to move to a hub-and-spoke UI model rather than the current linear wizard model.
(rationale goes here)
Inventory loader and try to integrate what makes sense into UI
Ideally we would be able to get rid of loader, so it would be good to integrate what we can from it into the UI. Here's a quick loader inventory:
- Media check
- Load updates.img
- Load product.img
- Fetch kickstart file
- Driver disks (auto or not)
- Run firmware loader process
- Kick off hardware probing
- Load a lot of modules
- Prompt for and load keyboard layout & language
- Process basic kickstart commands (halt/reboot, network, method)
- Bring up network
- Serial console installs
- Enable debugging mode
Install Methods
Combine Live media and DVD?
Today live media and DVD are separate. bcl is working to generate the live media images with Anaconda, since they aren't today and because live media are generated via a different code path, various stability issues are present in live media installs today. One of the issues, that dlehman says has gotten a bit better over time but still needs improvement, is that the user can interact with the live image as it's being installed, which can make the install fail in weird ways. (It's kind of a pulling-the-tablecloth-out-from-under-the-meal kind of problem, where the system is the tablecloth and the meal is the install process.)
It might be preferable to have a single all-in-one installation ISO... one that is live bootable, yet also has a full-blown Anaconda installer as well. It's only one piece of media to download, and one codepath for installations making installation more stable, easier to test, easier to debug.
One idea is that you would boot off of a live DVD and when you are are ready to install, clicking on the 'install to hard drive' icon boots the machine into full anaconda, either via modifying the GRUB configuration or using kexec.
An alternative solution to the 'tablecloth' problem would be to full screen Anaconda's window during live install with no option to minimize it.
A downside to disabling the live environment during install is that users say they like to be able to read documentation while installing.
Repo selection / Fedora People Repos
Today anaconda has a UI where you can add custom yum repos to your system, and where you can update from a repo rather than just what's on the media so you'll boot into a fully-updated OS. However, it could use some improvements.
One idea we had (currently in the mockups) was to let users add custom yum repos or browse a selection of available repos.fedorapeople.org repositories. PackageKit. PackageKit - the only GUI users have available post-install to work with software installation - does not allow for adding custom yum repositories. If anaconda does, there will be a bit of a mismatch. Part of the rationale of PackageKit not allowing it is (I believe) because of security / trust model concerns, and also because dependency changes in Fedora could change out underneath the Fedora People repo packages, making them non-functional. There are apparently a number a problems the Ubuntu PPA system has unsurfaced that would be unsurfaced should this be done. Here's an IRC log with hughsie on the topic that might help.
Some other concerns providing a Fedora people repo browsing interface:
- Fedora people repos are used to both provide software not included in Fedora AND to provide newer versions of software that is already in Fedora, overriding core Fedora software.
- Fedora people repos don't have comps. They might need them? Default / mandatory / optional packages would need to be defined otherwise nothing from the repo would get installed, right?
- Fedora people repos are not QA'ed and you need to trust the provider before installing from them. We would need some kind of warning indicating this.
UI Functionality
Individual Package Selection Removal / Adding Spins selection
We would like to remove the notion of individual package selection.
There are some issues that individual package selection causes today:
- Users can customize their package selection much more easily post-install via PackageKit or yum, where more information about individual packages is at their fingertips.
- Users can install individual packages in a live environment, and may suffer some confusion / annoyance when they realize their lovingly hand-picked packages are gone after rebooting into their fully-installed system.
Is there any other rationale here?
Why do users like choosing individual packages in the installer vs. post-install? Is there any advantage to this? (Not sure.)
We could replace individual package selection with better high-level / abstracted software customization. For example:
New feature: Saving user progress
One new feature we are considering is to save out a partial kickstart file if a user quits Anaconda before finishing. If we detect a partial kickstart file on a USB stick in th emachine, we'll reload all of the fields the user had filled in thus far so they didn't have to restart from scratch.
New (again) feature: Ransom notes
We would like to bring back the 'ransom notes' feature of Anaconda. You know, the feature that introduced the world to the glorious beefy miracle. They make the install process more fun and give the user something to look at as their install progresses.
Automagical Media check
Move media check out of loader. Live media uses dracut to verify media. The DVD doesn't (not sure how it does media verify.) Things to consider:
- Automatic media check for DVDs - Automatic media check for Live Media
How long does it take though? Would the amount of time the media check takes be worth simplifying install by dropping a screen to ask if the user wants media check?
If media check is an option, where would it go? (Maybe in the 'install source' spoke?) If you already performed a media check though, it wouldn't make sense to offer it a second time.