Contributing to behave-trace
August 4, 2026 ยท View on GitHub
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.