Contributing
ChemGraph uses a trunk-based workflow: main is always releasable, and work
lands in small, frequent PRs from short-lived branches. There is no
long-lived dev branch.
At a glance:
- Branch off the latest
main(feature/…,fix/…,docs/…,chore/…). - Keep each PR to one logical change (roughly ≤ ~400 lines where practical); split large features into incremental PRs.
- Before opening a PR, run
ruff check .andpytest tests/ -k "not tblite". - A PR merges once CI is green and it has at least one approval; merges use a merge commit and the branch is deleted afterward.
- Releases are cut from
main: bumpversioninpyproject.toml, then publish avX.Y.ZGitHub Release (which triggers the PyPI publish workflow).
The full guide, including development setup and the release process, lives in
CONTRIBUTING.md
at the repository root. See also
Code Formatting & Linting.