You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
main carried no required status checks, so the whole suite was advisory: a PR
could go red and still merge. That matters here because the suite is where the
real guarantees live, the exit-code protocol, the env allowlist, the queue and
cron assumptions against a live Valkey, and the CONST-MERGE-NEVER-AUTOMATIC
grep, and because CONST-PI-VERSION-PINNED's own Statement claims an upgrade is
"gated by the upstream contract tests" while nothing mechanical enforced it.
Five checks from pi-upgrade-check.yml become required on main, with
enforce_admins on and the approving-review requirement dropped to zero. A PR
stays mandatory; a green one now merges without --admin, which was previously
the only path because a solo author cannot approve their own PR.
The blocker was the path filter. A required check that never reports blocks the
merge forever, and pi-upgrade-check.yml's pull_request filter meant a docs-only
PR reported nothing at all (PR #106: "no checks reported"). Removing the filter
from the pull_request trigger alone fixes it; the push trigger keeps its filter.
The rejected alternative, a companion workflow with the complementary
paths-ignore list emitting same-named stand-in jobs, fires BOTH workflows on a
PR touching both docs/ and worker/, and a green stand-in sharing a context name
with the real run can mask a failure. A full run is ~90s, which is not worth a
mechanism that can hide one.
Two PR-reporting checks are deliberately excluded. The host-pi canary is
green-on-drift by design, so its red means pi failed to install rather than a
defect; deploy-lint is still path-filtered to deploy/**, so requiring it would
deadlock every PR that leaves deploy/ alone.
Four workflow headers claimed "PR + 1 approving review" and now describe the
real gate. CLAUDE.md records the required contexts, why the pull_request
trigger must stay unfiltered, and the enforce_admins escape hatch for a frozen
main.
Specs UNCHANGED, checked: CONST-PI-VERSION-PINNED and REQ-UPSTREAM-CONTRACT-TESTS
already assert that CI gates an upgrade; this makes the assertion true rather
than restating it. CONST-MERGE-NEVER-AUTOMATIC untouched, its grep job is one of
the five now required.
Signed-off-by: Rob Boerman <robboerman@live.nl>
0 commit comments