Contributing¶
Local Workflow¶
StatePlane uses uv for environment and command management.
Install everything:
Recommended verification before opening a PR:
uv run --all-packages --all-groups --python 3.13 ruff format --check .
uv run --all-packages --all-groups --python 3.13 ruff check .
uv run --all-packages --all-groups --python 3.13 mypy packages services tests examples
uv run --all-packages --all-groups --python 3.13 pyright
uv run --all-packages --all-groups --python 3.13 mkdocs build --strict
uv run --all-packages --all-groups --python 3.13 pytest tests/unit tests/integration --cov=packages --cov=services --cov-report=term-missing --cov-fail-under=95
Documentation Maintenance¶
Serve the docs locally:
Build them exactly as CI does:
The generated site is written to site/ during mkdocs build.
GitHub Pages¶
The repository includes a GitHub Pages workflow in .github/workflows/docs.yml.
To finish or verify setup in GitHub:
- Open the repository settings.
- Go to Pages.
- Set the source to GitHub Actions.
After that, pushes to main build and deploy the docs site automatically.
Documentation Expectations¶
- keep README files, docs pages, examples, and tests aligned with repo reality
- update
mkdocs.ymlnavigation when adding, removing, or renaming docs pages - keep the docs build passing under
mkdocs build --strict - prefer current-state docs over aspirational marketing copy
Testing Expectations¶
- add or update tests with each behavior change
- keep unit tests focused on deterministic behavior and invariants
- use integration tests for package, CLI, and boundary-level flows
- do not lower type, lint, or coverage gates to force green CI
Pull Requests¶
- open PRs as ready for review by default
- keep changes scoped and intentional
- include the checks you ran in the PR description