-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Should CI gate this repo's own parse-coverage report against regression? #1985
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requestgithub_actionsPull requests that update GitHub Actions codePull requests that update GitHub Actions codemaintainer-notesInternal observations and improvement notesInternal observations and improvement notesparsing/qualityGraph extraction bugs, false positives, missing edgesGraph extraction bugs, false positives, missing edgespriority/normalStandard review queue; useful PR with ordinary maintainer urgency.Standard review queue; useful PR with ordinary maintainer urgency.
Description
Activity
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestgithub_actionsPull requests that update GitHub Actions codePull requests that update GitHub Actions codemaintainer-notesInternal observations and improvement notesInternal observations and improvement notesparsing/qualityGraph extraction bugs, false positives, missing edgesGraph extraction bugs, false positives, missing edgespriority/normalStandard review queue; useful PR with ordinary maintainer urgency.Standard review queue; useful PR with ordinary maintainer urgency.
What problem does this solve?
This repository's own parse-coverage report can get worse without anyone noticing. Nothing
in CI reads it, so a change that widens a parse-error range, or drops a region from the
index, lands green. The coverage work tracked in #963 improved the report itself, but the
report is only useful if a regression in it is caught at the time it happens rather than
months later.
I hit this while working on the report: I could not tell whether a number I was looking at
was a regression or had always been that way, because no run had ever recorded a baseline.
Proposed solution
Add a CI check that reads this repository's own parse-coverage report and fails a pull
request when it goes backwards against a recorded ceiling.
The reason this needs a decision from you rather than a pull request is that it adds a
required check to
pr-smoke, andCONTRIBUTING.mdline 128 puts that class of changebehind a design discussion. There are real trade-offs:
mainlegitimately changes. It already did once: the ceilingrose from 58 to 59 because
mainaddedsrc/daemon/runtime.c:47, whose function-style_Atomic(type)the C grammar cannot parse. That rise came frommain, not from thebranch under test, and a contributor hitting it would have no way to tell.
every pull request, not only on the ones that touch coverage.
So the question is whether you want the gate at all, and if so whether it should be
required or advisory to begin with.
Alternatives considered
regression in review rather than automatically, and costs nothing when
mainshifts.catches a regression within a day, at the cost of not naming the change that caused it.
otherwise.
I have an implementation ready either way — it is currently open as a pull request, split
out of the parse-coverage fix at review request precisely because it is a maintainer
decision rather than part of a bug fix. Happy to close that and keep only whichever shape
you prefer, or none.
Confirmations