From Fedora Project Wiki
(First version)
 
(First complete draft of this change.)
Line 24: Line 24:


== Summary ==
== Summary ==
[[Anaconda|Anaconda installer]] will be split into several modules that will communicate over DBus with stable API.
[[Anaconda|Anaconda installer]] will be split into several modules that will communicate over DBus using stable API.


== Owner ==
== Owner ==
Line 67: Line 67:
* Users can create their own UI or even UI less installation.
* Users can create their own UI or even UI less installation.
* Anaconda modules can be enabled and disabled or even not present in the installation environment.
* Anaconda modules can be enabled and disabled or even not present in the installation environment.
* Better test-ability of Anaconda -- more stable versions.
* Better test-ability of Anaconda.
    
    
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?-->
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?-->
Line 79: Line 79:
* Other developers: <!-- N/A (not a System Wide Change) --> <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Other developers: <!-- N/A (not a System Wide Change) --> <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
** Thanks to the nature of how addons work right now we need cooperation during the transition period of addon developers.
** Thanks to the nature of how addons work right now, we need cooperation during the transition period of addon developers.


* Release engineering: [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES -->
* Release engineering: [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES -->
Line 120: Line 120:
<!-- If this change proposal is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
<!-- If this change proposal is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
User experience should be consistent with the older releases.


== Dependencies ==
== Dependencies ==
Line 131: Line 131:


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency mechanism: Fallback to the old (non-modular) solution will be still available during development. <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
* Contingency deadline: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency deadline: Final freeze <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next -->
<!-- * Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next -->


== Documentation ==
== Documentation ==
Line 142: Line 142:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
https://rhinstaller.wordpress.com/2017/10/09/anaconda-modularisation/
 
Most of the articles here:
https://rhinstaller.wordpress.com


== Release Notes ==
== Release Notes ==
Line 150: Line 153:
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
-->
-->
TODO


[[Category:ChangePageIncomplete]]
[[Category:ChangePageIncomplete]]

Revision as of 10:50, 4 January 2018


Anaconda modularization

Summary

Anaconda installer will be split into several modules that will communicate over DBus using stable API.

Owner

Current status

  • Targeted release: Fedora 28
  • Last updated: 2018-01-04
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

Anaconda will be split into several modules that will communicate over DBus. The goal is to introduce a stable way to interact with Anaconda to support its customization, extensibility and testability. It will be easier to monitor the installation, maintain an install class or an addon, drop some modules or provide your own UI.

Benefit to Fedora

  • Anaconda addons have stable API to work with.
  • Users can create their own UI or even UI less installation.
  • Anaconda modules can be enabled and disabled or even not present in the installation environment.
  • Better test-ability of Anaconda.


Scope

  • Proposal owners:
    • Split Anaconda to modules with DBus API.
    • Old UI must be rewritten to use new DBus API.
  • Other developers:
    • Thanks to the nature of how addons work right now, we need cooperation during the transition period of addon developers.
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

N/A (not a System Wide Change)

How To Test

N/A (not a System Wide Change)

User Experience

User experience should be consistent with the older releases.

Dependencies

N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: Fallback to the old (non-modular) solution will be still available during development.
  • Contingency deadline: Final freeze
  • Blocks release? No

Documentation

https://rhinstaller.wordpress.com/2017/10/09/anaconda-modularisation/

Most of the articles here: https://rhinstaller.wordpress.com

Release Notes

TODO