Conversation
With no Codecov config in the repo, the project status ran on Codecov's defaults (target auto, threshold 0%): total coverage could never dip by any amount, so almost every PR that added code reported a failing check while all test jobs, CodeQL and the functional suite were green. Set a 1% threshold on the project status, and give the patch status an explicit 80% target so the coverage of a PR's own new code remains the signal that gates.
Contributor
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The Codecov configuration is valid and matches the stated coverage policy.
Review effort: Balanced
Findings: None
What changed in this PR
Adds Codecov status configuration to tolerate minor overall coverage drift while preserving patch coverage enforcement.
Changes:
- Allows project coverage to decrease by up to 1%.
- Requires 80% coverage for changed lines.
- Configures Codecov’s PR comment layout.
| File | Description |
|---|---|
codecov.yml |
Defines project and patch coverage thresholds and comment layout. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1066 +/- ##
=======================================
Coverage 67.07% 67.07%
=======================================
Files 123 123
Lines 43663 43663
Branches 11152 11152
=======================================
+ Hits 29285 29288 +3
+ Misses 11224 11219 -5
- Partials 3154 3156 +2
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
This branch has not been deployed
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.
What
Adds a
codecov.yml(23 lines, no code change):coverage.status.project.default.threshold: 1%coverage.status.patch.default.target: 80%Why
ARC has no Codecov configuration at all —
.coveragercconfigures coverage.py's collection, notCodecov's status checks. With no config, Codecov falls back to its built-in defaults, under which
the
projectstatus istarget: autowith a 0% threshold: total coverage may never dip by anyamount relative to the base commit.
The consequence is that nearly every PR adding code covered below the repository average (~67%)
reports a failing check while every test job, CodeQL and the functional suite are green. Observed
on the current open set, all red on
codecov/projectalone:67.03% (-0.10%)→67.05% (-0.08%)after adding a genuine unit testcodecov/project, everything else greenOn #653,
codecov/patchsimultaneously reported "Coverage not affected" — the gate that actuallyjudges whether the PR's new code is tested was already satisfied. A check that fails on
one-tenth of a percentage point trains reviewers to ignore it, which costs us the patch signal too.
What this does and does not change
patchtarget, so the coverage of a PR's own new or changed linesremains a gating signal. This is the stricter half of the config, not a loosening.
.coveragerc, or alter what coverage iscollected.
Note that Codecov re-evaluates statuses on new uploads, so already-open PRs will pick this up on
their next CI run rather than retroactively.