Thank you for your interest in contributing! Start by reading the development conventions. Submissions that do not follow the conventions will be rejected.
- Fork the repository and clone your fork
- Install pre-commit hooks:
make setup-hooks - Build and test:
make build && make test - Run every gate locally before pushing:
make all
Requirements are listed in docs/development.md.
Only issues a maintainer has triaged (given a milestone
and added to a project board) are open for contributors
to take, and only at Medium or Low priority. Urgent
and high-priority work is assigned by maintainers. If you
self-assign something outside these rules, a bot unassigns
it and points you back here. See Picking Up Work for the
full policy.
Features that span multiple PRs, introduce new architectural patterns, or affect the public interface go through the proposal process.
CI enforces reviewability on every PR:
- A maximum added lines count of production code (tests, docs, examples excluded)
- A real description of what and why -
Signed-off-bytrailer on every commit (git commit -s) - Cryptographically signed commits (GPG or SSH)
- Human authorship: commits authored or signed-off by tools are rejected
- Conventional commit subjects (
type(scope): summary, ≤72 chars)
See the PR conventions section for details and override labels.