Thank you for your interest in contributing!
This project uses Conventional Commits (Angular preset) to automate versioning with python-semantic-release.
Every commit message must follow this format:
<type>(<scope>): <short summary>
[optional body]
[optional footer(s)]
| Type | When to use | Version bump |
|---|---|---|
feat |
A new feature visible to end users | minor |
fix |
A bug fix visible to end users | patch |
docs |
Documentation changes only | – |
style |
Formatting, whitespace – no logic change | – |
refactor |
Code change that is neither a feature nor a bug fix | – |
perf |
A code change that improves performance | patch |
test |
Adding or updating tests | – |
build |
Changes to the build system or external dependencies | – |
ci |
Changes to CI configuration files and scripts | – |
chore |
Other changes that don't modify src or test files | – |
revert |
Reverts a previous commit | – |
Append ! after the type/scope or add a BREAKING CHANGE: footer to trigger a major version bump:
feat!: redesign template rendering API
BREAKING CHANGE: The `generate_site` function signature has changed.
feat(templates): add dark-mode toggle to site header
fix(parser): handle OSIS files with missing work ID
docs: update quick-start instructions in README
chore(release): v1.2.0 [skip ci]
# Install all dependencies (including dev extras)
uv sync --all-extras
# Run the test suite
uv run pytest
# Lint the code
uv run ruff check .
uv run ruff format --check .