From 3857416d43e36a1894be75cfe6335897c3563fdd Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sat, 3 Oct 2026 16:30:14 -0400 Subject: [PATCH 1/2] Make Codecov's project status informational Pull requests upload coverage only from Quick Feedback's selected tests, and main uploads none, so the project percentage compares two different test selections. Keep the patch status as the coverage gate. Co-Authored-By: Claude Opus 5.5 --- .../codecov-project-informational.changed.md | 1 + codecov.yml | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 changelog.d/codecov-project-informational.changed.md create mode 100644 codecov.yml diff --git a/changelog.d/codecov-project-informational.changed.md b/changelog.d/codecov-project-informational.changed.md new file mode 100644 index 00000000000..c0eb62e8961 --- /dev/null +++ b/changelog.d/codecov-project-informational.changed.md @@ -0,0 +1 @@ +Report Codecov's project coverage as informational, since pull requests upload coverage from selected tests only; the patch check stays the coverage gate. diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 00000000000..ecba676f545 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,15 @@ +# Coverage is uploaded only by the PR workflow's Quick Feedback job, which runs +# the tests selected for the files a PR changes (run_selective_tests.py +# --coverage; .coveragerc counts */variables/* only). No job uploads coverage +# from main. A PR's "project" percentage is therefore measured on a different +# test selection than its base report, so the comparison does not measure a +# change in coverage. Report it without failing the check; keep the patch +# check, which measures the PR's own changed lines, as the gate. +coverage: + status: + project: + default: + informational: true + patch: + default: + target: auto From d8fe819edc502d2b8ddcf8a1bf9fd68b1c74342a Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sat, 3 Oct 2026 22:06:16 -0400 Subject: [PATCH 2/2] Say Codecov selections can differ, not that they always do Co-Authored-By: Claude Opus 5.5 --- codecov.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/codecov.yml b/codecov.yml index ecba676f545..ca3e8f945be 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,10 +1,10 @@ # Coverage is uploaded only by the PR workflow's Quick Feedback job, which runs # the tests selected for the files a PR changes (run_selective_tests.py # --coverage; .coveragerc counts */variables/* only). No job uploads coverage -# from main. A PR's "project" percentage is therefore measured on a different -# test selection than its base report, so the comparison does not measure a -# change in coverage. Report it without failing the check; keep the patch -# check, which measures the PR's own changed lines, as the gate. +# from main. Reports can therefore cover different selections of tests and +# source files, so project percentages are not reliably comparable between a +# PR and its base. Report the project status without failing it; keep the +# patch status, which measures the PR's own changed lines, as the gate. coverage: status: project: