Bring the gates up to the campaign standard - #8
Merged
Merged
Conversation
Four gaps against the campaign standard in eipv3-quality-campaign.md. This repository was already the closest to it: four gates, required-version, the mypy stale-exemption guard, an ASCII-dash check nothing else has, and every Action pinned across all three workflows. The coverage gate was 90 against a measured 93.24 floor, so three points of slide were allowed. Now 92, in all four places that carry the figure: both the quality and the release workflow, AGENTS.md, and CONTRIBUTING.md. Raising only the pull-request gate would have left the path that publishes to PyPI as the lax one, which is backwards, and CONTRIBUTING.md ships inside the sdist so a stale figure would have been published with the package. pytest-cov moves from >=5 to ==7.1.0 and coverage is pinned at ==7.15.4. They produce the gated number, and coverage.py's statement set is not stable across its own releases. build gains the <2 cap that both workflows already apply, so a local build no longer resolves differently from CI. twine keeps its range, but not for the reason an earlier draft of this message gave. `twine check` is a hard step in both workflows, so a gate does depend on its version. Pinning it in requirements-dev.txt would not have helped: the constraint the gate actually uses is the literal "twine>=6,<7" inside each workflow, and the strictness comes from the unpinned transitive readme-renderer. The warn_unused_configs comment claimed an exemption cannot outlive the errors it was added for. That is false: the flag fires only when an override names a module mypy never processes, so a module whose errors were fixed keeps its exemption silently. AGENTS.md now records that this suite's coverage is terminal-width dependent. Rich sizes output to the terminal, so a wide one executes render branches a narrow one does not: 93 percent unset or at 80 columns, 95 at 140. CI has no tty and sees 93.
|
Reviewed against the API-client / hostile-terminal-data boundary checklist (filters/sorts/cursors, page-local re-ranking, exploit-works claims, corpus-text escaping, token handling, archive extraction, JSON-mode integrity, pagination/concurrency bounds, scope creep into acquisition/generation/writes). This PR only touches CI/tooling config and docs — No findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the estate-wide campaign in
eipv3-quality-campaign.md. Full rationale is in the commit messages, which are written to be read.Verified locally with every step's exit code checked individually, not chained:
claude-code-review.ymlis deliberately untouched: workspaceAGENTS.mdrule 8 says the review job skips itself with a green check when a PR modifies its own workflow file, so pinning it here would ship everything else unreviewed. That pin follows in its own PR, and until it lands "Actions pinned" is not fully true for this repo.