Thanks for your interest in contributing.
RuneCode is licensed under Apache-2.0. By contributing, you agree that your contributions will be licensed under the same license.
RuneCode uses the Developer Certificate of Origin (DCO) instead of a CLA.
Every commit in a pull request must include a Signed-off-by: line.
To add it when committing:
git commit -sExample sign-off line:
Signed-off-by: Jane Smith <jane.smith@example.com>
The DCO text is in DCO and at https://developercertificate.org/.
If you forgot to sign off:
- Last commit only:
git commit --amend -s- Multiple commits on your branch (one common approach):
git rebase --signoff origin/mainWe enforce DCO on pull requests using the GitHub-side DCO check (no CLA). PRs will not be merged unless all commits are signed off.
Maintainers should:
- Install the DCO GitHub App: https://github.com/apps/dco
- Require the DCO check in branch protection rules
- Enable GitHub's "Require contributors to sign off on web-based commits"
The canonical local workflow uses Nix + just:
- Prerequisite: Nix
>= 2.18 - Optional auto-entry:
direnv+nix-direnv - Canonical command surface:
just - CI runs fast canonical checks plus a dedicated Linux formal-security gate to avoid duplicating model-check runtime cost across every matrix leg
nix develop
just --list
just ci- Install
direnvandnix-direnvon your host machine. - Add the direnv shell hook for your shell (
bash,zsh,fish, etc.). - In the repo root, run:
direnv allowEntering the repository directory auto-loads the flake shell (use flake from .envrc), and leaving the directory unloads it.
Treat changes to flake.nix, flake.lock, and .envrc as high-trust changes. They control local tooling execution and are reviewed carefully.
- Stop auto-loading for this repo:
direnv deny - Fallback to manual shell entry:
nix develop - Clear cached direnv environment: remove
.direnv/and rundirenv allowagain
This project follows the Contributor Covenant Code of Conduct.
See CODE_OF_CONDUCT.md.
- Fork the repo and create a feature branch.
- Keep changes focused and well-described.
- Ensure your commits are signed off (
git commit -s). - Ensure tests/lint pass for the areas you changed.
- Review
docs/source-quality.mdwhen your change affects trust-boundary logic, policy/enforcement tooling, or other protected source-quality surfaces.
If you are unsure about a design direction, open an issue first.