This wiki page aims to explain how and where to most effectively contribute to the Anaconda installer and related projects.
Not just Anaconda - choosing where to contribute
The Anaconda installer used to be quite monolitic, but this is no longer the case and there is a growing trend to split parts of Anaconda to separate modules and libraries. This not only help to improve modularity, but also makes it possible to use these libraries outside of the Anaconda installer.
Before contributing to Anaconda or one of its components, it is often necessary to find out which library or component the feature in question is implemented.
What follows is a brief description of the various project under the Anaconda umbrella.
The Fedora/RHEL installer itself. All installation-specific code--the GUI, TUI and a lot of glue code--for using the various Anaconda related modules and libraries belongs to the Anaconda project.
A python library for manpulating kickstart files. It contains a data representation of kickstart files, a parser to read the data representation, and a writer to generate kickstart files.
A python library for examining and manipulating storage configurations.
A library for performing low-level operations with block devices.
A tool for creating the anaconda install images. It also includes livemedia-creator which is used to create bootable livemedia, including live isos and disk images.
An application that can run during the first start of a newly installed computer and makes it possible to configure the computer according to the needs of the user.
A python library for handling, saving, and reporting exceptions.
Anaconda and all related projects are open source software and are looking forward to sensible contributions to their source code.
See the [Anaconda Patch Review Process https://fedoraproject.org/wiki/Anaconda/ReviewProcess] article for a detailed guide on submitting changes. This can be summarized as:
- patches can be submitted either by email or as a pull request on Github
- all patches are reviewed by other contributors
- if a patch has been accepted, it will be pushed to the repository by a contributor who has commit access