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
#4385 adds a Coverage ratchet job to the PR workflow. It pins 399 files at 100% on all four metrics and fails when any of them regresses. The job publishes its result as a check, but develop has no required status checks configured, so a red ratchet does not block a merge. Until the check is required, the gate rests entirely on a reviewer noticing the red mark.
Required checks are a repository setting, not a change to a file, so they cannot ship in the same pull request that adds the job.
Precondition: let it prove itself first
The ratchet makes the whole test suite a precondition for 399 coverage numbers. Any nondeterminism anywhere in that suite — a test skipped depending on state, a load-sensitive assertion — can push a pinned file below 100 and produce a red required check that has nothing to do with the change under review. A flaky required check is worse than no check, because it teaches the team to ignore red.
#4385 already replaced one such assertion (the wall-clock parallelism test in bitcoin-fee.service.spec.ts), but that is one example, not evidence about the remaining suites.
#4385 adds a
Coverage ratchetjob to the PR workflow. It pins 399 files at 100% on all four metrics and fails when any of them regresses. The job publishes its result as a check, butdevelophas no required status checks configured, so a red ratchet does not block a merge. Until the check is required, the gate rests entirely on a reviewer noticing the red mark.Why this is not part of #4385
Required checks are a repository setting, not a change to a file, so they cannot ship in the same pull request that adds the job.
Precondition: let it prove itself first
The ratchet makes the whole test suite a precondition for 399 coverage numbers. Any nondeterminism anywhere in that suite — a test skipped depending on state, a load-sensitive assertion — can push a pinned file below 100 and produce a red required check that has nothing to do with the change under review. A flaky required check is worse than no check, because it teaches the team to ignore red.
#4385 already replaced one such assertion (the wall-clock parallelism test in
bitcoin-fee.service.spec.ts), but that is one example, not evidence about the remaining suites.Suggested sequence:
Coverage ratchetto the branch ruleset fordevelopas a required status check.Scope
Coverage ratchetadded as a required status check ondevelopRelated: #4385