[Feature] Show whether the ratchets and coverage are actually improving #538
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#538
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem / motivation
The gates measure whether something works. They do not measure whether they are getting better.
There are now eight or so baselines and ratchets —
catchUnderscoreBaseline,rawColorBaseline,debugPrintBaseline,controlByteBaseline,serviceUiImportBaseline,fileSizeBaseline,filePickerPathBaseline,nosemgrepBaseline, plus the coverage floor. Each is allowed to shrink and forbidden to grow. Nothing shows whether any of them has actually shrunk, and a ratchet that stands still for a year is a debt that has been made comfortable.Coverage has the same shape: 86% is green, but green says nothing about whether the covered lines are the ones that matter. A file can sit at 90% with every branch of its error handling untested.
From the CRA position decision (#519): the borrowed principle is "apply effective regular tests" — effective being the load-bearing word.
Proposed solution
A periodic, advisory report rather than a gate:
make mutateexists) — the only measure that says whether a test would catch anything.Advisory on purpose. Turning "the ratchet has not moved" into a build failure punishes a quiet month.
Marp / file-format impact
None.
Alternatives considered
Tightening each baseline by hand when someone remembers — that is the current state, and it is why this issue exists.
Part of the solution should also be that this information is available through the project Wiki and regularly is updated (for instance once per month). Also with information how the project evolves (functionality and new code).