Contributing
Thanks for considering a contribution. This project follows the Contributor Covenant; by participating you agree to uphold it.
This repository is the SDK for BenchWeave and lives in the main repository as packages/sdk — it is published to PyPI from here and has its own CI.
Getting set up
Python 3.13+ with uv.
This repo keeps a non-dot
venv/; keep uv pointed at it so it does not create a stray.venv/:UV_PROJECT_ENVIRONMENT=venv uv sync
Before you open a PR
All gates must pass locally — the same commands CI runs:
uv run pytest -q
uv run ruff check .
uv run mypy src
uv run benchweave-sdk sync-standards --check
uv lock --check
uv buildCI syncs with --locked, and uv.lock records this package’s own version: a version bump or a dependency change needs uv lock in the same commit, or the sync step fails.
Bug fixes ship test-first: a failing test that reproduces the bug lands in the same change as the fix.
Workflow
- Work on a feature branch;
mainonly receives merges via pull request. - Conventional commits (
feat:,fix:,docs:,chore:, …) — the changelog is generated from them by git-cliff. - Keep commits small — one logical change each.
Reporting bugs
Open an issue with the SDK version, your Python version, and a minimal reproduction. Security issues follow SECURITY.md — never an issue.