Features/NewTextUI

= Simplified Text UI =

Summary
The current text UI in the installer is difficult to improve and extend as we add features to the GUI. We really don't want to be maintaining two complicated UIs.

Owner

 * Name: Chris Lumens 

Current status

 * Targeted release:  Fedora 11
 * Last updated: 2009-04-17
 * Percentage of completion: 100% - Code is merged, known bugs fixed.

Detailed Description
What do I mean by "simplifying text mode"?


 * Text mode is not going away, contrary to what you might have heard.
 * I have removed many of the more complicated parts of the UI, turning text mode into the truly minimal install experience that a lot of people have asked for. You get a package set that's small but still able to install updates and new packages.  You get the initial partitioning screen (choose your disks and handwaving layout) but not the second screen.
 * We more strongly suggest VNC or xdriver=vesa, but text is still there if you want and still as a fallback should the graphical installer fail to start. Maybe that last bit should be changed.
 * For kickstart, there is an additional wrinkle. If you don't leave anything out of your kickstart file, it'll work just like always.  However if you do leave a section out (like %packages), anaconda stops and prompts for input.  This works fine for some steps, but not for the ones we've removed from text mode.  So if you leave out the %packages section, anaconda will crash because there's no longer a package selection step in the UI.  I believe we should halt and error out on these sorts of problems, but that we should also detect that information is missing from the kickstart file very early on and halt before doing anything permanent.  pykickstart gives us the power to do that.

There was an updates image that can be used with anaconda to see the current state of the simplified text mode (it was accessed via):

updates=http://clumens.fedorapeople.org/notext.img text

But the current (as of 3/16/09) anaconda has merged the changes from this image, so it is not available anymore.

Benefit to Fedora
Currently the text UI is a place where a lot of bugs and unwanted situations have the potential to occur. A direct benefit to fedora is the reduction of the anaconda code base (less is more). Moreover it gives the anaconda development team a change to concentrate on the anaconda backend and the graphical GUI.


 * Text mode and graphical mode are completely separate codebases as far as the interface is concerned. We don't have some magic interface language that can display under both modes.  What this means is that anything we add to the graphical mode needs to be coded up again a second time for text mode.
 * Text mode only supports a subset of the graphical mode's features. For instance, you can't do LVM in text mode.  Nor can you do encrypted filesystems, resizable filesystems, add repos, or edit repos.  This situation is only going to get worse over time.  Why is this the case?  First, because it involves duplicating all the tedious work of writing a UI and no one wants to do that.  Second, the screen real estate on the console is quite limited and things like LVM just don't fit in the space available.
 * We already have alternate install modes available. You can do automatic installs via kickstart, or you can use VNC.
 * If the graphical installer doesn't work, the fix is not to have a completely different path to go down. The fix is to fix graphical installs.  Having said this, we still do have work arounds possible.  You can always add xdriver=vesa as a boot parameter if the normal driver for your card doesn't work under X.  My latest patch to the list makes it more obvious that you can do this.

Scope
All the code for this is in anaconda. No other packages should be affected, unless some minor changes are required to pykickstart as well. But that's okay, because I maintain that package too.

Test Plan
There is no formal test plan, aside from doing regular text-mode installs both interactively and through kickstart and verifying there are no crashes. I'd say the installation test matrix will need the following changes:


 * Test kickstart files that are missing %packages or partitioning, verify that anaconda detects the problem beforehand and halts.
 * Test interactive kickstart installs, verify that anaconda skips the steps that are no longer in text mode but still applies those portions of the kickstart file. That is, there should be no package selection UI but the contents of the %packages section in the kickstart file should still be installed.  Verify with rpm post-install.

We have already had one test day which came up with a few important problems:

https://fedoraproject.org/wiki/QA/Test_Days/2009-01-29

User Experience
The user should first notice that they are being steered away from text installs mode installs. The CD/DVD boot menu no longer has a text option. If you boot into text mode, you get a dialog early on asking if you want to do a VNC install instead.

If the user is really motivated to do a text install and gets past those obstacles, they'll then see that the text install has vastly fewer steps than it used to and that the remaining steps are not the complicated ones. Basically, the experience has been simplified down to where anaconda provides a minimally useful system that can be further customized after installation is over.

The kickstart user will see few changes, except that there will be fewer steps to see in interactive installs. All the progress bars, notifications, etc. are still present.

Dependencies
None that I know of.

Contingency Plan
This work is being done on a separate branch of anaconda and is being tested through an updates.img. Should it not be done in time for the release or fatal bugs be found, we can simply not merge the branch and continue working on it for the next release.

Documentation
The following documents will need to be changed:


 * http://docs.fedoraproject.org/install-guide/
 * http://fedoraproject.org/wiki/Anaconda/Kickstart
 * http://fedoraproject.org/wiki/Anaconda/Options

Release Notes

 * Draft is up at Documentation Beats Installer

Comments and Discussion

 * See Talk:Features/NewTextUI