Contributions are welcome! You can help by reporting bugs, implementing features, or improving documentation. File issues and PRs at github.com/OO-LD/coregraft.
Requires uv, make and git.
git clone git@github.com:YOUR_NAME/coregraft.git && cd coregraft && make installmake install creates the environment and installs both the pre-commit and commit-msg stage hooks; the latter enforces Conventional Commits (see below).
- Create a branch:
git checkout -b name-of-your-fix - Make your changes; template behaviour is guarded by the tests in
tests/ - Run the checks:
make check,make testandmake docs-test - Commit and push, then open a pull request against
main
| Target | Does |
|---|---|
make check |
lock consistency, pre-commit hooks, type check |
make test |
template integrity and macro tests |
make docs-test |
strict docs build, fails on any warning |
make docs |
serve the docs with live reload |
Commit messages drive versioning and the changelog automatically, so the format matters. The local commit-msg hook rejects malformed messages.
Format: type(scope): subject, for example fix: correct broken profile prune. The scope is optional.
| Type | Release effect | Use for |
|---|---|---|
feat |
minor bump | a new feature |
fix, perf |
patch bump | a bug fix or performance improvement |
docs, chore, test, refactor, ci, style, build |
no release | changes that do not ship template behaviour |
BREAKING CHANGE: footer, or ! after the type |
major bump | an incompatible change |
Releases are fully automated by python-semantic-release; see the Releasing section of the README. You never tag or bump versions by hand: the version lives in pyproject.toml and TEMPLATE_VERSION, both maintained by the release workflow.