build(gate)!: coverage leaves the gate and runs on demand

Both lanes printed a coverage total with no threshold (owner decision E32
D4). No real hit as a lane: the one time the number found anything (5 bugs,
E32) it was read by hand, and since then it was a line nobody acted on. It
was also the most expensive part of the vitest lane, and the run that
flaked in E35 S1. The vitest lane runs without --coverage, the pytest lane
runs plain pytest; docs/development.md gives both on-demand commands, and
the register row says why.
This commit is contained in:
2026-10-05 00:19:39 +02:00
parent ca707fd390
commit f2fe0fc0df
8 changed files with 17 additions and 22 deletions
+2 -6
View File
@@ -35,9 +35,5 @@ services:
volumes:
- ./:/app
working_dir: /app
# The suite, then the coverage total (E32 D4: reported, no threshold). pytest's exit code is the
# lane's — the report is printed either way and never decides it.
command:
- sh
- -c
- 'python -m pytest --cov=app --cov-report= ; rc=$$?; echo ">> backend coverage (app/) $$(python -m coverage report --format=total)% of lines"; exit $$rc'
# Coverage is on demand, not in the gate (E35): see docs/development.md.
command: ["python", "-m", "pytest"]
+2 -2
View File
@@ -7,8 +7,8 @@
# basedpyright: the backend type-check lane (E27 S3). Pinned like everything else here — a type
# checker whose version floats silently changes what "clean" means, and the ratchet baseline it
# writes is keyed to the diagnostics THIS version produces.
# pytest-cov: the coverage REPORT the gate prints (E32 D4) — a number to read, deliberately with no
# threshold; "every regression test seen red" is the bar, not a percentage.
# pytest-cov: the on-demand coverage report (docs/development.md) — a number to read, deliberately
# with no threshold; "every regression test seen red" is the bar, not a percentage.
# pip-audit: the gate's audit of requirements.lock (scripts/check.sh), blocking at any severity.
basedpyright==1.40.1
pytest==8.4.2