Thank you for your interest in contributing to Genesis! We're excited to have you involved.
All contributors must sign an Individual Contributor License Agreement (CLA) before we can accept any contributions.
We use a CLA assistant bot to streamline this process. When you open your first pull request, the CLA assistant will automatically check whether you've signed the agreement and guide you through the process if you haven't. It's quick and only needs to be done once.
The CLA ensures that the project remains sustainably licensed under the AGPL-3.0 and that the community can confidently build on everyone's work.
- You affirm that you own the code you're contributing and have the right to license it under the project's license.
- You grant the project the right to use and distribute your contribution under the AGPL-3.0 license.
- You retain full ownership of your contribution — you're not giving away your copyright.
- Fork the repository and create your branch from
main. - Make your changes — follow the existing code style and conventions.
- Run the pre-commit checks —
mix precommit(formats code and runs tests). - Write or update tests to cover your changes.
- Open a pull request — the CLA assistant will verify your CLA status, and CI will run the test suite.
See the Run from source section in the README for environment setup instructions.
- This is an Elixir project — run
mix formatto keep code consistently formatted. - Keep files focused and reasonably sized (around 1,000 lines is a soft threshold before considering a split).
- Follow the conventions established in the codebase.
Write clear, descriptive commit messages. The project maintains a clean Git history as part of its evolutionary architecture.
If you have questions about the CLA or the contribution process, feel free to open an issue or start a discussion.
We appreciate your contributions! 🎉