Skip to content

Latest commit

 

History

History
39 lines (30 loc) · 1.64 KB

File metadata and controls

39 lines (30 loc) · 1.64 KB

Contributing

mrf-honest is a solo-maintained, public pre-release project, but the workflow below is the same one a second contributor would use.

Setup

uv sync --extra dev                                    # Python 3.14 (.python-version); creates .venv from uv.lock
pre-commit install && pre-commit install --hook-type pre-push

The dev toolchain is floor-pinned in pyproject.toml (ruff>=0.15, mypy>=1.18) and locked in uv.lock. Use uv sync, not a hand-rolled pip install, so your tool versions match the gate.

Before committing

make verify
uv build

make verify runs the full gate: ruff check (including the security S rules and max-complexity=10), mypy --strict, and pytest with a branch-coverage floor of 85. If it passes locally, the pre-push hook (which runs the same commands) will pass too. uv build verifies the wheel and source distribution, including the mrf-honest console entry point. Do not lower any floor to make a change pass; fix the change.

House rules

  • Standard library only for streaming, discovery, retrieval, registry, and inspection: a dependency that hides memory behaviour defeats the point of measuring it (docs/adr/0002-stdlib-only-streaming-core.md). DuckDB begins at the optional lakehouse boundary (docs/adr/0003-local-lakehouse-duckdb-parquet.md).
  • Every number that appears in a doc or README is measured, never estimated. If you did not run it, do not write it.
  • Architecture decisions that are expensive to reverse get an ADR in docs/adr/ (docs/adr/0000-record-architecture-decisions.md).
  • Changes land with a CHANGELOG.md entry under [Unreleased].