Coverage-Untergrenze 85 % in tools/.coveragerc, gegen beobachtete 87,0 % (4.7.2, schließt #10, eröffnet #51)
Files changed: - .gitea/workflows/ci.yml - CHANGES.md - EVALS.md - VERSION - tools/.coveragerc
This commit is contained in:
@@ -249,15 +249,19 @@ created but not yet written reports broken links. That is the scaffold saying it
|
||||
|
||||
### How much of the stack the suite reaches
|
||||
|
||||
Coverage is measured in CI and reported, never enforced - `pytest --cov`, config in
|
||||
`tools/.coveragerc`, HTML and XML uploaded as the `coverage-<run id>` artifact of every run.
|
||||
Coverage is measured in CI - `pytest --cov`, config in `tools/.coveragerc`, HTML and XML
|
||||
uploaded as the `coverage-<run id>` artifact of every run.
|
||||
**Fetch that artifact from the run's own page, not from the API**: `upload-artifact@v3` writes
|
||||
through the older artifact API, and the Actions artifact REST endpoints answer `total_count: 0`
|
||||
for a run whose artifact the run page offers for download. The upload works; only the listing
|
||||
does not see it. Do not re-derive this, and do not read the empty list as a failed upload.
|
||||
|
||||
There is no `--cov-fail-under`: a threshold is owed (Gitea #10), in its own commit, once the
|
||||
number has been watched long enough to freeze the state it actually reached.
|
||||
It is enforced at a floor of **85%** (`fail_under` in `tools/.coveragerc`), which is what a red
|
||||
suite from this axis means: coverage actually fell, not that a wrapper was added. The floor was
|
||||
set only after the number had been watched - Gitea #10 held it back for exactly that, and the
|
||||
two points between 85 and the measured 87.0% are the room the taxonomy below asks for. A
|
||||
threshold at the measured number goes red on the next thin Typer wrapper, and a threshold that
|
||||
goes red for a non-reason gets lowered rather than earned.
|
||||
|
||||
**Measured 2026-09-04, stack 4.7.1: 87.0% of 6498 statements across `chemenu/`, 975 tests** -
|
||||
CI run 163. The first measurement, at stack 1.8.1 on 2026-08-31, was 86.9% of 5105 statements
|
||||
@@ -284,10 +288,10 @@ low, and three kinds have to be told apart before any of it turns into work:
|
||||
`fetcher` parameter for exactly that, and the real network line stays uncovered on purpose.
|
||||
- **Genuine gaps**, where uncovered lines are logic nobody exercises: `provenance_cmd.py`
|
||||
(44%), `migrate_cmd.py` (65%), `type_resolver.py` (79%). This is the list worth reading, and
|
||||
the reason step 2 of #10 is not a formality. It is also the list that has not moved while
|
||||
everything around it did: `provenance_cmd.py` sits where it sat, and `migrate_cmd.py` fell
|
||||
from 71% because it grew and its new lines arrived untested. A threshold freezes this; it does
|
||||
not close it.
|
||||
the only one of the three that has not moved while everything around it did:
|
||||
`provenance_cmd.py` sits where it sat, and `migrate_cmd.py` fell from 71% because it grew and
|
||||
its new lines arrived untested. The floor freezes this; it does not close it. Closing it is
|
||||
Gitea #51.
|
||||
|
||||
## Scoring a session
|
||||
|
||||
|
||||
Reference in New Issue
Block a user