Features/Resilience

= Fedora Resilience =

Summary
Improve Fedora's handling of things gone wrong in a number of areas

Owner

 * Name: DavidTimms

Current status

 * Targeted release: Fedora future
 * Last updated: 2008-08-08
 * Percentage of completion: 0% E_NOTIMEYET

Detailed Description
There are many cases during both installation and use where Fedora could be modified to work even when circumstances have previously led to failure. Each Resilience feature will be proposed separately. This feature item is used to keep track of the individual items falling under the banner. Two examples are having Anaconda survive missing files during installation, and always keeping a wireless connection prepared in case the wired network disappears.

Benefit to Fedora
Any time the user has to mop up the pieces when something unexpected occurs should be seen as an 0/10 failure. The Resilience group of features will target certain common issues that Fedora users might experience, some of which have long standing bugzilla entries, others which are discussed more in various forums. The point is to fail to fail {not a very upbeat way of putting that}, ie to just work.

Scope
Since the detailed work touches on many different areas, please see the individual Resilience sub-features.

Test Plan

 * 1) Try to force Fedora to fail for selected Resilience subfeatures.
 * 2) Show the before and after Resilience work result.
 * 3) Work with Fedora QA to make sure the improvement doesn't lead to regressions in related areas.

User Experience

 * 1) Macy installs Fedora from a broken mirror yet her install still completes.
 * 2) The power goes out at Dan's place while upgrading Fedora. After the power is restored, Dan notices that the machine still boots, and prompts him to complete the upgrade process.
 * 3) Mobile user Nathan can still surf the web even though his dhcp server gave an invalid DNS server.
 * 4) Louise unplugs an external display and finds that even though the event was not detected, she can just press the LCD/CRT cycle button to turn her notebook's built in display on.
 * 5) More to come.

Dependencies

 * Each sub feature can be considered independently
 * Releases/Features/ResilienceAnacondaIncompleteMirror
 * [Releases/Features/ResilienceAnacondaThreePartInstall]
 * [Releases/Features/ResilienceNetworkManagerReserveShute]
 * [Releases/Features/ResilienceYumSurviveMissing]
 * [Releases/Features/ResilienceDisplayCycling]
 * [Releases/Features/Resilience]
 * please add your own ...

Contingency Plan

 * revert to the non-resilience enhanced standard version.

Documentation

 * In the wiki for now.

Release Notes
Since Resilience is intended to make things work even when things would previously have failed, it may be necessary to remove some workarounds that are present in the Release Notes ;-)