Zainium Dynamics
Docs / Developers

Contributing

How to report problems, send changes and help build Zainium OS.

Zainium OS is developed in the open on GitHub. Contributions of every size are welcome.

Report a problem

Open an issue on the repository of the component, with:

  • what you did, what you expected and what happened;
  • the output of zex --version and, for package problems, zex inspect <package>;
  • logs (journalctl -b) when the system or a service misbehaves.

Send a change

  1. Fork the repository and create a branch.
  2. Keep commits small and focused; describe why in the message.
  3. For code, run the project's tests (cargo test for the Rust components).
  4. Open a pull request and describe how you tested it.

AI-assisted contributions

Contributions written with the help of AI tools are allowed: userland packages, base recipes, patches, code and documentation. The person who opens the pull request is responsible for every line of it, whatever tool wrote it:

  • Verify it yourself before you open the pull request. Read every line of the recipe, the patch or the code, build the package and test it on Zainium OS. A pull request that was not built and tested by you is closed.
  • Understand and defend the change. You must be able to explain why each line is there and answer review questions without asking the tool.
  • Check the license and the source. Patches must come from upstream or be your own work; say where each one comes from. Do not submit code the tool may have copied from a source whose license does not allow it.
  • Say which tool helped, with an Assisted-by: line in the commit message, for example Assisted-by: <tool> <model>. AI tools are not authors: they must not be listed as authors or co-authors of a commit.
  • Keep pull requests focused. One package (or one closely related set) per pull request, and never mix base (syshub-recipes) and userland (userland-recipes) packages: they live in different repositories and go through different reviews.

Good places to start

  • Package recipes — add a program to userland-recipes.
  • Documentation — this website is Markdown files; fix what is wrong or missing.
  • The standard — discuss and improve the Dualayer Hierarchy Standard.
  • Testing — try the ISO on real hardware and report what does not work.

Components

ComponentWhat it is
zexthe package manager
quantra-ramfsthe initramfs: layers, staged upgrades, splash
sys_resolverFHS path resolution and loader redirection
elevate, elevate-pamroot access that protects the base
userutilesthe core command-line utilities
syshub-recipes, userland-recipespackage recipes and CI

Contributions are licensed under the license of the repository they go to (GPL-3.0 for the operating system, CC BY-SA 4.0 for the DHS text).

All documentation