Thank you for your interest in contributing to Apollo. To help your contribution be accepted more easily, please read through the following first.
Apollo is made with mkosi and bootc. You'll need mkosi, python, just, and preferably podman (docker should work too). A hypervisor is also recommended for testing images.
You can build a bootc-compatible oci archive with mkosi (an Arch-based environment is currently recommended) using the following command:
just build-bootcTo load the built oci archive into your rootless container storage, you can run the following:
just loadTo build a bootable image, follow the following commands:
sudo just load # the next command requires rootful podman.
sudo just generate-bootable-imageThen you can run the bootable.img as your boot disk in your preferred hypervisor, such as QEMU, Virt-Manager or GNOME Boxes.
Apollo uses the Conventional Commits format, as seen in the following:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
In particular, we primarily use the following types:
feat: adding a new major feature to Apollofix: fixing an issue in Apollo or the repository (e.g., ci workflows, mkosi configuration)chore: component updates, refactors or other changes that can't otherwise be classed as a feat or fixdocs: adding documentation to the repositories, including .md files in the repo.
When choosing the scope to use, it's ultimately your discretion. As a general rule, profile-specific changes should use the profile name, ci/workflow changes should use ci and changes to the base config should use the most appropriate file name (e.g. extra). If appropriate, scope may be omitted entirely.
Please make sure that your contribution, including communication around it, follows the Apollo Code of Conduct. This is currently the Contributor Covenant 3.0.
Please see the Apollo Generative AI policy. TLDR: AI contributions are unwelcome here.