Contributing¶
Thanks for your interest in contributing! This guide covers setup, common commands, and the release process.
Setup¶
git clone https://github.com/MathiasPaulenko/behave-trace.git
cd behave-trace
make dev
pre-commit install
Development commands¶
| Command | Description |
|---|---|
make help |
Show all available targets. |
make dev |
Install with dev extras. |
make lint |
Run ruff check + mypy --strict. |
make lint-fix |
Auto-fix lint issues. |
make format |
Format the code with ruff format. |
make format-check |
Verify formatting without changes. |
make test |
Run the test suite. |
make test-cov |
Run tests with coverage (fail under 55%). |
make check |
Full pre-commit check (lint + format + test). |
make build |
Build sdist + wheel into dist/. |
make clean |
Remove build artifacts and caches. |
Pre-PR checklist¶
Before opening a pull request, make sure all of the following pass:
- [ ]
make check(runs lint + format-check + test) - [ ]
make test-covpasses with >= 55% coverage - [ ] New behavior is covered by tests
- [ ]
CHANGELOG.mdupdated under[Unreleased]
Release process¶
Releases are automated via the release.yml GitHub Actions workflow:
- Bump the version in
pyproject.toml. - Move the
[Unreleased]section inCHANGELOG.mdto the new version. - Commit and push to
main. - The workflow detects the version bump, creates a git tag, builds the distributions, publishes to PyPI via Trusted Publishing (OIDC), and creates a GitHub Release with auto-generated notes.
Code style¶
- Python >=3.11,
from __future__ import annotationsin every module. rufffor linting and formatting (line length 100).mypy --strictwith no errors.- Public API documented with docstrings.