diff-cover 70% floor (run 18164's unit-tests failure): - The floor counts CHANGED lines covered by pytest only. The strangler's verification moved the six ported shims to canaries/parities (outside pytest), so 46% of slice-2's changed lines were pytest-covered and the gate red-lined the port itself. - tests/test_evidence_provenance_shims.py: a six-test shim battery driving the delegation surfaces the port changed (verification_layer dispatch + seven wrappers, evidence_probe schema/budget, behaviour_ledger state machine incl. accept_limitation + reload round-trip, behavior decision math on an isolated db, claim_audit scan->verify->degrade->journal-> report pipeline, audit_ledger append->verify->read on the isolated ledger). Isolation law documented in the module docstring: RUNE_HOME/ RUNE_MEMORY_DIR pinned before import (both resolve paths at import); behavior/claim_audit are imported by no other test file. - save() finding: mutators never auto-persist in EITHER vintage (verified against the pre-port module) — the round-trip test calls save(). - .coveragerc omits ffi_query_memory_smoke.py (= the canary precedent: standalone evidence script, never suite-imported). - Result replicated locally against gitea/master: 116 diff lines, 87% (floor 70), exit 0. Canary job now builds the crate (run 18164's canary failure): - Until 18164 the job silently relied on the host executor seeing the desktop's prebuilt target/ — my checkout-relative BIN made that visible as an uncaught Popen FileNotFoundError (§5 crash before finishing). - ci.yml gains cargo build --release for the zero-dep crate (system cargo, world-readable on the runner; no registry fetch). - §5 fails loud-but-counted (FAIL test, not a crash) when the artifact is missing, with the regression meaning spelled out. Local wall: pytest 2257/0; canaries 74+66 both modes; lint 345/75 PASS; type ratchet PASS under the pinned instrument; henxels exit 0; umbrella gate exit 0; dep-lock in sync.
33 lines
1.3 KiB
INI
33 lines
1.3 KiB
INI
# #149 Coverage ratchet — both floors live here, and they only ever rise.
|
|
# Doctrine (issue #149 evidence trail): CPython devguide — "any increase is a
|
|
# good one"; a floor is committed once measured and never lowered afterwards.
|
|
#
|
|
# Global floor = [report] fail_under below (measured 2026-09-07 at the
|
|
# #149 baseline; raise it when coverage grows, never lower).
|
|
# Changed-lines floor = diff-cover --fail-under=70 in .gitea/workflows/ci.yml
|
|
# (changed code may not reduce tested coverage; 70% start,
|
|
# ratchetable upward after the first clean pass).
|
|
#
|
|
# Regenerating the CI lock after touching this file is NOT required (tool
|
|
# config, not a dependency), but the floors above are contract: edit them
|
|
# only to raise.
|
|
#
|
|
# Canary files are omitted: src/rune/canary_*.py are standalone CI
|
|
# verification scripts executed directly by the canary job, never imported by
|
|
# the test suite — counting them would make the global floor a fiction.
|
|
# ffi_query_memory_smoke.py is the same class: a standalone evidence script
|
|
# driven directly (and by tests/test_ffi_query_memory_smoke.py when the cdylib
|
|
# is built), never imported by the suite.
|
|
|
|
[run]
|
|
source = src/rune
|
|
omit =
|
|
tests/*
|
|
scripts/*
|
|
src/rune/canary_*.py
|
|
src/rune/ffi_query_memory_smoke.py
|
|
|
|
[report]
|
|
fail_under = 29
|
|
show_missing = False
|