Thank you for considering a contribution. Please keep changes small, readable, and easy to maintain.
- Prefer British English spelling and clear, complete words (avoid abbreviations).
- Please raise an issue or start a discussion before large or breaking changes.
- Install Python 3.12 or higher and uv.
- Clone the repository and install dependencies:
You can run
make install
uv syncdirectly if you prefer. - Set
GITHUB_ACCESS_TOKENin your environment or.envfile so commands that call GitHub can run locally.
- Branch from
mainusing conventional names:<topic>/<ticket>-<short-description>. If you do not have a ticket, useNO-JIRAin its place. - Keep commits focused and use conventional commit messages (for example,
feat: add filter optionorchore: update docs). - Do not rewrite history on shared branches.
- Favour simple, readable code and straightforward control flow.
- Update documentation and examples when behaviour changes.
- Add tests alongside new or modified functionality.
- Follow existing patterns in
src/andtests/. - Run formatting and linting:
make format make lint
- Run the test suite before opening a pull request:
Use
make testmake coverageif you need a coverage report.
- Ensure your branch is up to date with
mainbefore raising a pull request. - Fill in
.github/pull_request_template.md, covering What, Why, Changes, Testing, and References. - Include any relevant tickets, documentation links, and discussion threads.
- Confirm:
- Tests pass locally.
- New or changed behaviour is documented.
- Secrets are not committed.
- Request a review once the above is complete; keep drafts up to date if work is in progress.