Composing Releases
This section goes over at a high level how we compose releases for Rocky Linux. As most of our tools are home grown, we have made sure that the tools are open source and in our git services.
This page should serve as an idea of the steps we generally take and we hope that other projects out there who wish to also use our tools can make sure they can use them in this same way, whether they want to be an Enterprise Linux derivative or another project entirely.
Build System and Tools¶
The tools in use for the distribution are in the table below.
Tool | Maintainer | Code Location |
---|---|---|
srpmproc | SIG/Core at RESF | GitHub |
empanadas | SIG/Core at RESF | sig-core-toolkit |
Peridot | SIG/Core at RESF | GitHub |
MirrorManager 2 | Fedora Project | MirrorManager2 |
For Rocky Linux to be build, we use Peridot
as the build system and
empanadas
to "compose" the distribution. As we do not use Koji for Rocky
Linux beyond version 9, pungi can no longer be used. Peridot instead takes
pungi configuration data and comps and transforms them into a format it
can understand. Empanadas then comes in to do the "compose" and sync
all the repositories down.
Full Compose (major or minor releases)¶
Step by step, it looks like this:
- Distribution is built and maintained in Peridot
- Comps and pungi configuration is converted into the peridot format for the project
- Repositories are created in yumrepofs based on the configuration provided
- A repoclosure is ran against the repositories from empanadas to ensure there are no critical issues
-
In Parallel:
- Repositories are synced as a "full run" in empanadas
- Lorax is ran using empanadas in the peridot cluster
-
Lorax results are pulled down from an S3 bucket
- DVD images are built for each architecture
- Compose directory is synced to staging for verification
- Staging is synced to production to allow mirror syncing
- Bit flip on release day
General Updates¶
Step by step, it looks like this:
- Distribution is maintained in Peridot
- Updates are built, repos are then "hashed" in yumrepofs
- Empanadas syncs updates as needed, either per repo or all repos at once
- Updates are synced to staging to be verified
- Staging is synced to production to allow mirror syncing
Resources
URL: https://accounts.rockylinux.org
Purpose: Account Services maintains the accounts for almost all components of the Rocky ecosystem
Technology: Noggin used by Fedora Infrastructure
Contact: ~Infrastructure
in Mattermost and #rockylinux-infra
in Libera IRC
URL: https://git.resf.org
Purpose: General projects, code, and so on for the Rocky Enterprise Software Foundation.
Technology: Gitea
Contact: ~Infrastructure
, ~Development
in Mattermost and #rockylinux-infra
, #rockylinux-devel
in Libera IRC
URL: https://github.com/rocky-linux
Purpose: General purpose code, assets, and so on for Rocky Linux. Some content is mirrored to the RESF Git Service.
Technology: GitHub
Contact: ~Infrastructure
, ~Development
in Mattermost and #rockylinux-infra
, #rockylinux-devel
in Libera IRC
URL: https://git.rockylinux.org
Purpose: Packages and light code for the Rocky Linux distribution
Technology: GitLab
Contact: ~Infrastructure
, ~Development
in Mattermost and #rockylinux-infra
, #rockylinux-devel
in Libera IRC
Purpose: Users can subscribe and interact with various mail lists for the Rocky ecosystem
Technology: Mailman 3 + Hyper Kitty
Contact: ~Infrastructure
in Mattermost and #rockylinux-infra
in Libera IRC
Name | Mattermost Name | IRC Name | |
---|---|---|---|
Louis Abel | label@rockylinux.org | @nazunalika | Sokel/label/Sombra |
Mustafa Gezen | mustafa@rockylinux.org | @mustafa | mstg |
Skip Grube | skip@rockylinux.org | @skip77 | |
Sherif Nagy | sherif@rockylinux.org | @sherif | |
Pablo Greco | pgreco@rockylinux.org | @pgreco | pgreco |
Neil Hanlon | neil@resf.org | @neil | neil |
Taylor Goodwill | tg@resf.org | @tgo | tg |