Contributing#
Development happens on GitHub. The repository-root AGENTS.md defines the
architecture, API-maturity, testing, and scientific-review rules. Additional
contributor notes live under docs/contributing.
For local development, install the development group and only the optional extras needed for the change:
uv sync
uv sync --extra storage --extra drawing
uv run pre-commit install
The standard pull-request checks are split by purpose:
scripts/dev/test.sh fast
scripts/dev/test.sh integration
scripts/dev/lint_blocking.sh
uv run python tools/repository_health.py --check
uv run python tools/test_health.py --check
Expensive finite-size, optimization, and research-claim validation belongs in the scientific lane:
scripts/dev/test.sh scientific
The scientific lane is scheduled or explicitly dispatched and is not part of the fast compatibility matrix. Tests protect behavioural contracts and mathematical invariants; the project does not require one test object per code object or direct tests of every private helper.
The project uses Ruff for formatting, Ruff for blocking lint checks, and mypy as advisory typing feedback. Optional dependencies are grouped by feature so core model-building workflows do not require every visualization, storage, distributed, CP-SAT, or tensor-network dependency.
Repository-wide architecture/API/security budgets are described in Repository health and governance. Install both commit and pre-push hooks so the same constraints run locally before CI.