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 build

CI 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; main only 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.