Files changed: - .gitea/workflows/ci.yml - .gitignore - .vibe/hooks.toml - AGENTS.md - CHANGES.md - EVALS.md - INSTALL-MCP.md - INSTALL.md - README.md - VERSION - docs/dev/development.md - docs/explanation/README.md - docs/explanation/architecture.md - docs/explanation/language-boundaries.md - docs/explanation/telemetry-and-evaluation.md - docs/how-to/README.md - docs/how-to/browse-with-obsidian.md - docs/how-to/capture-repository-docs.md - docs/how-to/export-guidelines.md - docs/how-to/ingest-a-source.md - docs/how-to/maintain-the-wiki.md - docs/how-to/query-the-wiki.md - docs/how-to/run-the-weekly-review.md - docs/how-to/set-up-the-mcp-server.md - docs/how-to/trace-and-score-sessions.md - docs/how-to/troubleshoot.md - docs/how-to/update-an-instance.md - docs/reference/README.md - docs/reference/commands/distribution-and-versioning.md - docs/reference/commands/instance-health.md - docs/reference/commands/raw-material-and-uploads.md - docs/reference/commands/telemetry.md - docs/reference/commands/types-instructions-and-docs.md - docs/reference/configuration.md - instructions/dev/dev-setup.md - instructions/dev/doc-pull-through.md - instructions/dev/stack-build/SKILL.md - instructions/dev/testing-conventions.md - instructions/dev/version-parts.md - instructions/setup-instance.md - instructions/upgrade-instance.md - reports/CONTRACT.md - tools/.coveragerc - tools/CONTRACT.md - tools/README.md - tools/chemenu/commands/dist_cmd.py - tools/chemenu/commands/docs_verify.py - tools/chemenu/commands/doctor.py - tools/chemenu/commands/eval_cmd.py - tools/chemenu/commands/git_publish.py - tools/chemenu/commands/upload_cmd.py - tools/chemenu/commands/version_cmd.py - tools/chemenu/evals/__init__.py - tools/chemenu/evals/scorecard.py - tools/chemenu/evals/trajectory.py - tools/chemenu/telemetry/policy.py - tools/chemenu/tests/test_dist_cmd.py - tools/chemenu/tests/test_git_publish.py - tools/chemenu/tests/test_instructions_shell.py - tools/chemenu/tests/test_pipeline_l0.py - tools/chemenu/toc.py Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
44 lines
2.2 KiB
INI
44 lines
2.2 KiB
INI
# Coverage configuration for the wiki stack's test suite.
|
|
#
|
|
# Why here and not in pytest.ini: coverage.py reads `.coveragerc`, `setup.cfg`,
|
|
# `tox.ini` and `pyproject.toml`, and none of them is `pytest.ini` - a
|
|
# `[coverage:*]` section there would be silently ignored. pytest's own settings
|
|
# stay in pytest.ini; this file holds only what coverage.py itself parses.
|
|
#
|
|
# The measurement is deliberately *not* wired into pytest's addopts. `pytest-cov`
|
|
# is a CI-only dependency (see .gitea/workflows/ci.yml) and is absent from
|
|
# tools/requirements.txt on purpose - an instance runs the wiki, it does not
|
|
# measure the stack's tests - so an addopts entry would break the plain
|
|
# `pytest -q` that every local run and the CI "Tests" step use.
|
|
#
|
|
# `fail_under` lives here rather than as a `--cov-fail-under` flag in the CI
|
|
# step, so the number sits next to the reasoning that produced it and applies to
|
|
# any `--cov` run, not just the one CI happens to write.
|
|
#
|
|
# 85, against a measured 87.0% (CI run 163, 6498 statements, 975 tests). The
|
|
# floor was held back until the number had been watched: the first measurement
|
|
# was 86.9% of 5105 statements over 730 tests (CI run 87), and between the two
|
|
# the measured code grew by a quarter and the suite by a third while the quota
|
|
# moved a tenth of a point. That stability is what the threshold rests on.
|
|
#
|
|
# The two points of headroom are not slack. They are the room the report's own
|
|
# taxonomy asks for: a new thin Typer wrapper lowers the total without anything
|
|
# having got worse, because its logic is tested beside it (see docs/dev/development.md
|
|
# § "How much of the stack the suite reaches"). A threshold at the measured number
|
|
# would go red on exactly that commit, and a threshold that goes red for a
|
|
# non-reason gets lowered rather than earned - which is the failure mode that
|
|
# holding the floor back existed to avoid, arriving from the other side.
|
|
#
|
|
# What this number does *not* do is close the genuine gaps - provenance_cmd.py,
|
|
# migrate_cmd.py, type_resolver.py. It freezes the state that was reached; the
|
|
# gaps are their own work, tracked separately.
|
|
[run]
|
|
source = chemenu
|
|
omit =
|
|
chemenu/tests/*
|
|
|
|
[report]
|
|
show_missing = True
|
|
precision = 1
|
|
fail_under = 85
|