Skip to content

Coverage floor, README contributor section, committed uv.lock - #46

Merged
pattonw merged 3 commits into
mainfrom
chore/coverage-readme-lock
Nov 4, 2026
Merged

pattonw merged 3 commits into
mainfrom
chore/coverage-readme-lock

Conversation

@pattonw

@pattonw pattonw commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Three related changes, one commit each.

Coverage floor. [tool.coverage] in pyproject.toml turns on branch coverage, sets the source to the package, and sets fail_under = 75. The CI pytest command shrinks to a bare --cov. Measured on this branch with branch coverage: 75.54%; the floor is that number rounded down, so the tests job now fails when a pull request drops coverage below it.

README. A badge row (tests and lint to their workflows, publish to the PyPI page), the documentation URL stated once near the top, an Install section with pip and uv, and a Contributing section listing the commands CI runs. [project.urls] gains Documentation (where a site exists), Source and Issues so PyPI links back to the repository.

uv.lock. The lock is committed and no longer ignored. Lint and docs jobs run uv sync --locked so a stale lock fails loudly; the lowest-direct test cell keeps re-resolving against the floors. ruff and ty move from == pins to >= floors since the lock fixes their versions. A new lock-upgrade workflow runs uv lock --upgrade on the first of each month (or on demand) and opens a pull request.

Notes:

  • The floor was measured without a PostgreSQL server, so the 32 database tests were skipped. CI runs them, so its number will be higher; I will raise the floor to the CI value in a follow-up commit on this branch.
  • There is no documentation site yet, so the README has no docs badge or link and [project.urls] has Source and Issues only.

Verified locally: uv lock --check passes; the full suite ran with the new config; lowering a test confirmed fail_under fails the run.

🤖 Generated with Claude Code

pattonw and others added 3 commits November 3, 2026 17:51
Coverage is configured in pyproject.toml (branch coverage on, source set to
the package) so the pytest command in CI shrinks to a bare --cov and a local
run measures the same thing. fail_under = 75 is the floor of the first
branch-enabled run (75.54% measured); pull requests that drop below it
fail the tests job.

Co-Authored-By: Claude Mythos 5.1 <noreply@anthropic.com>
The badge row links tests and lint to their workflows, docs to the
documentation site and publish to the PyPI page. The documentation URL is
stated once near the top. Install shows pip and uv; Contributing lists the
commands CI runs so a green local run means a green pull request.
[project.urls] gains Documentation (where a site exists), Source and Issues so
PyPI links back here.

Co-Authored-By: Claude Mythos 5.1 <noreply@anthropic.com>
uv.lock is tracked so CI and local environments resolve to the same versions
from a commit SHA. The lint and docs jobs sync with --locked so a stale lock
fails loudly; the lowest-direct test cell still re-resolves against the floors.
ruff and ty move from == pins to >= floors since the lock now fixes their
versions. A scheduled lock-upgrade workflow runs `uv lock --upgrade` on the
first of each month and opens a pull request with the result.

Co-Authored-By: Claude Mythos 5.1 <noreply@anthropic.com>
@pattonw

pattonw commented Nov 4, 2026

Copy link
Copy Markdown
Contributor Author

CI measured 76% on all three cells, the same as the local run, so the floor stays at 75; no follow-up needed. (The note in the description about raising it after CI is moot.)

@pattonw
pattonw merged commit d18c0af into main Nov 4, 2026
5 checks passed
@pattonw
pattonw deleted the chore/coverage-readme-lock branch November 4, 2026 02:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant