Skip to content

coverage: examples/common has fallen to 90.39% from the 95.85% its target was derived from, and nothing reported it #411

Description

@Yaraslaut

What is wrong

examples/common — the ladder's shared hand-written GUI and testkit code — has
fallen 5.46 points below the figure its own coverage target was derived from,
and no check said so.

codecov.yml records the measurement the target was set against:

Together these put today's real ceiling at 478/485 = 98.56% lines

and sets target: 95%, with a comment noting the component was measured at
95.85% when rungs 2-4 entered the report.

Measured on master today: 90.39%.

It is below its own target, and the status is informational: true, so the
build is green. That mechanism is morph#402; this ticket is the regression
itself, which needs finding and closing regardless of how the gate is resolved.

Why this component and not another

codecov.yml describes examples/common as carrying the whole of
examples/IMPLEMENTATION.md rule 5's promise:

The ladder's hand-written GUI/testkit code is held to the same 100% bar
examples/IMPLEMENTATION.md rule 5 sets for models (there are no rung models
yet — rung 0 ships no app — so this component is the whole of that promise
today)

It is also the component whose own file documents a 98.56% measured ceiling
with all seven artifact lines enumerated by name — backend_rig.hpp's three
switch-case closing braces, strand_interleaver.hpp's two post-task() braces,
fault_proxy.cpp's null-guard pair. A component with that level of accounting
sitting eight points under its documented ceiling means real code arrived
untested, not that the artifact set grew.

The likely shape of it

examples/common has grown since that measurement — db_busy_fixture.hpp and
backend_rig.hpp's executor-liveness guard are both named in codecov.yml as
post-measurement additions, and rungs 5-7 (ledger, lims, crm) landed after it.
Testkit code added to serve a new rung, and not itself tested, is the most
probable source. This is a hypothesis, not a finding — see below.

Verification status: reproduced (the regression), inferred (its cause)

Reproduced. Codecov API for LASTRADA-Software/morph,
/components/?branch=master: ladder → 90.39, against target: 95% in
codecov.yml on the same ref. The 95.85% and 98.56% figures are quoted from
that file's own comments.

Not verified: which files regressed. That needs a per-file comparison
against the report from the commit codecov.yml's comment was written at, and I
did not run one. The paragraph above is a hypothesis and should be tested rather
than assumed.

What would close this

  1. The per-file source of the regression is identified — which files in
    examples/common are below where they were, with numbers, not a narrative.
  2. examples/common is back at or above 95%, or its documented ceiling is
    re-derived with the same enumerate-every-artifact-line discipline the current
    comment uses and the target moved deliberately, with both figures recorded.
  3. The seven known artifact lines are re-confirmed as still being the whole
    artifact set. If new ones appeared, they are named individually — a ceiling
    that drifts without an audit is how a target stops meaning anything.

Not closable by lowering the target to 90%. That is the move codecov.yml
already argues against for the rungs, and it would convert a regression into a
new baseline.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: ladderSubsystem: ladderbugSomething isn't workingtriage: validWell-framed; implement as written

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions