What is the next step in Anaconda modularization?

As the modularization of Anaconda is under heavy development, you might want to know what is the status of this project.

The goal for Fedora 28 is to remove the kickstart data object from the UI. This can be easily done command by command, until the kickstart data object is completely useless and can be removed. Each kickstart command will be moved to a DBus module. A module will parse and generate one or more kickstart commands and provide an API for accessing and changing the command’s options and values. This API will be used by the UI to access the kickstart data.

Right now, we are ready to begin using the Timezone module and we’ve already begun working on the Network and User modules. We have significant extended the support for working with DBus in Anaconda via the pydbus package. We are also working on additional improvements for pykickstart, which are required for our use cases, such as adding extra attributes to kickstart errors and providing a minimal kickstart handler.

Once the kickstart data is handled by modules, we will begin removing the storage and package handling objects from the UI. This will require careful and significant work, since we will have to move around all of the logic for storage configuration and the packaging to modules. These are, by far, the most complex parts of our code base, so it is unlikely that the storage and package handling objects will be replaced with modules in Fedora 28. Once the storage and package handling modules have been completed, we should be able to move the remaining back-end logic from the UI to their own modules. The ultimate goal is for a UI-less installation, since it should be possible to install the OS without a UI at all.


2 thoughts on “What is the next step in Anaconda modularization?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s