Developer Guide
This project emphasizes cryptographic correctness, reproducible builds, and CI transparency. Key practices:
Environment setup
- Clone the repository and run
make venv && make installto prepare the virtualenv with hashed requirements. - Use the Makefile targets (
make test,make lint,make docs-build) to align local workflows with CI.
Pre-commit and linting
pre-commitruns Ruff (lint + format), mypy, and basic hygiene hooks. Install withmake lintorpre-commit installto enforce checks locally.
Tests
- Unit tests live in
tests/and include property-based suites (tests/test_transaction_props.py), concurrency coverage (tests/test_ots_concurrency.py), and REST fuzzing (tests/test_api_fuzz.py). - CI runs
pytest -vv -s --cov=qrl --cov-report=xml; view coverage trends on Codecov.
Release flow
- Tagging
v*triggers the release workflow to attachrequirements.lock,sbom.json, and the vendoredpyqrllibwheel. - Docker images publish to GHCR with
/healthzsmoke tests.
Documentation
- MkDocs builds run via GitHub Pages. Use Material markdown features (admonitions, tabs) for richer docs.