A lot of folks are asking how they can contribute to Rocky Linux. We are very close to being unblocked on actual development efforts (that’s been pending the deployment of our build infrastructure), and so we’re just about to the point where we’ll be getting our hands dirty with engineering. Here are some of the immediate tasks we have coming up, along with some information about the kind of experience and knowledge required:
Debranding audits
Go through a very large(!) list of packages, and come up with de-branding patches (Swapping out CentOS/RHEL logos or content with Rocky)
Experience:
Git, patch/diff, and command-line proficiency. Familiarity with source code layout for certain tricky packages, and willingness to come up with proper patches. May have to learn how to use some custom Rocky source code import/export tools that are being written.
Package maintenance/testing
We’ll need maintainers for different sets of packages and testers to make sure builds are working properly
Experience:
RPM user tools (rpmbuild/mock), Koji web interface familiarity, understanding of RPM package build process, and willingness to maintain Rocky test systems to install+test package functionality. Ability to dig through logs and debug RPM builds will be particularly helpful here. Knowledge of the new “modular” packages in Fedora/RHEL and how they work is also helpful.
Documentation
We need to keep track of all kinds of things. Pain points, how-to guides, and lists of current issues with packages/programs.
Experience:
Clear communication skills, good well-rounded Linux technical knowledge. Ability to break problems into logical steps and write about them. Willingness to work with other volunteers and learn about “how things work” so you can convey it clearly to a wider audience.
End-product testing
We need an army of people to install a wide variety of our packages on Rocky test systems, especially in the early days.
Experience:
Sysadmin skills, combined with experience in wide variety of packages/software. Willingness to maintain test installs on different virtual infrastructure and hardware. Willingness to point their systems to alternate/preview repositories and make detailed bug reports when things break. Experience with yum/dnf/rpm is obviously helpful, but so is detailed experience with the packaged software itself. Debugging an Apache package issue may be very different from debugging a Python one, for example.
General Skills Needed:
Familiarity with Fedora package build guidelines, and how to spot defective packages
Knowledge of RPM build process: the Mock build tool (and Koji build system) especially. This can be practiced by building CentOS 8 SRPMs before we have our whole infrastructure up
Ability to use the above-mentioned knowledge to troubleshoot RPM builds/installs. They will show up - some will be difficult to fix. We will need insight and experience to fix the failures.
For an overview of what the build infrastructure and interaction will look like from a user perspective, have a look at this quick sketch: