From da6049843b09c55584874d519668e0240fcc4559 Mon Sep 17 00:00:00 2001 From: Tim Stranske Date: Mon, 24 Aug 2026 22:55:32 -0500 Subject: [PATCH] ci(coverage): turn on the reporting leg the Gate was already paying for Coverage was already MEASURED on this Gate (`coverage: true`); only the reporting leg was off, because `enable-soft-gate` defaults to false in reusable-10-ci-python.yml. So every Gate run computed a coverage number and then threw it away: no coverage-trend artifact, no hotspot table, and nothing for Maint Coverage Guard to read. Report-only by construction. The soft gate runs coverage_trend.py with `--soft`, which always exits 0, so this cannot fail a PR or block a merge. Measured 78.01% from this repo's own Gate payload on 2026-08-25, against the floor of 75 already configured here, so the first reports pass and this is not a latent red. Sequenced deliberately AFTER stranske/Workflows#3251/#3253/#3254, which repaired the reporter itself: before those, an absent baseline rendered as 0.00% and every run showed a large fake improvement. Turning reporting on beforehand would have manufactured exactly that here. Co-Authored-By: Claude Opus 5 --- .github/workflows/pr-00-gate.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/pr-00-gate.yml b/.github/workflows/pr-00-gate.yml index 60fa1f2a..9143432a 100644 --- a/.github/workflows/pr-00-gate.yml +++ b/.github/workflows/pr-00-gate.yml @@ -70,6 +70,13 @@ jobs: python-versions: '["3.12", "3.13"]' coverage: true coverage-min: "75" + # Coverage was already MEASURED here; only the reporting leg was off, because + # `enable-soft-gate` defaults to false. So the Gate computed a coverage number every + # run and then discarded it -- no trend artifact, no hotspot table, and nothing for + # Maint Coverage Guard to read. Report-only: the soft gate runs coverage_trend.py with + # --soft, which always exits 0, so this cannot fail a PR. + # Measured 78.01% on this repo's own 2026-08-25 Gate payload, against the floor of 75. + enable-soft-gate: true typecheck: true format_check: true pytest_markers: "not nightly" # Skip nightly integration tests