# Contributing ## Development setup ```bash uv sync ``` This installs the dev dependency group (pytest, pyright, ruff, respx). ## Running checks ```bash uv run ruff check . uv run ruff format --check . uv run pyright uv run pytest tests/unit ``` ## Regenerating protobuf message classes The generated tree under `src/openstatus/_gen/` is committed. To bump the pinned schema version: 1. Edit `BUF_PY_VERSION` in `scripts/regen.sh`. 2. Run `bash scripts/regen.sh`. 3. Commit `scripts/regen.sh` and the resulting `src/openstatus/_gen/` diff together. A weekly GitHub Action opens this PR automatically when a newer archive is published. ## Integration tests Integration tests hit the live API and are gated on `OPENSTATUS_API_KEY`. They are not run in CI: ```bash OPENSTATUS_API_KEY=... uv run pytest tests/integration ``` ## PR conventions - Use `from __future__ import annotations` at the top of every hand-written module. - Keep public surface explicit via `__all__`. - Add a `CHANGELOG.md` entry under `[Unreleased]` for any user-visible change.