Skip to content

Commit fc92acb

Browse files
Merge pull request #461 from MPCoreDeveloper/perf/autonomous-20261013
docs(codecov): correct the post-merge flag-list prediction -- the registry entry outlives the declaration
2 parents 482461d + ce1c6ea commit fc92acb

3 files changed

Lines changed: 28 additions & 1 deletion

File tree

‎codecov.yml‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,18 @@ ignore:
7474
# `"flags": []`) and no status reads -- where a flag the suites did fill would answer with their coverage.
7575
# One report per commit needs no flag to tell the suites apart.
7676
#
77+
# Measured *after* this file landed on `master` (merge `b4b9a70d`, 2026-10-13), so that an earlier, inferred
78+
# reading is corrected here instead of repeated: the registry entry outlives the declaration. The commit's own
79+
# upload was processed against this tree -- `/commits/b4b9a70dfd6bb453ff7bcd03a00294be38c0d362/uploads/`
80+
# answers `count: 1`, `"flags": []`, 537 files / 58 907 lines at 04:04:43Z -- and nine minutes later `/flags/`
81+
# still answers `{"count": 1, "results": [{"flag_name": "unittests", "coverage": 0.0}]}`, with
82+
# `/flags/unittests/` live (HTTP 200, carrying a `coverage` link). So that list is driven neither by the
83+
# current contents of this file nor by the head upload's flags: it is a repository-level registry Codecov
84+
# keeps, and no directive in this file deletes an entry from it (deleting a flag is a dashboard action).
85+
# BLOCKED (2026-10-13, outside this repository): the lingering `unittests` registry entry itself -- the same
86+
# class of item as `codecov/project` below, and equally free to leave alone, because no upload carries that
87+
# flag and no status reads it.
88+
#
7789
# Known and deliberately not "fixed" here: `codecov/project` has never been posted in this repository.
7890
# Checked through the GitHub API for the promotion commit `58f297e` (when the current CI first ran, where
7991
# `codecov/patch` still arrived as a legacy commit status), for `204d9f8`, `4283626` and `b6bcf34`, and for

‎docs/CHANGELOG.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4343
- **`master` is now the `net11.0` / C# 15 line; the `net10.0` / C# 14 line is parked on `release/v2.0`.** The 2026-10-10 owner decision (superseding the 2026-09-25 one in `docs/performance/BEAT_SQLITE_ALL_AXES_PLAN.md` §9 row 9) promotes the v2.1 RC line to the main branch at **2.1.0**. .NET 11 GA is 2026-11-10, so until then the SDK pin stays `11.0.100-rc.1.26425.128` with `allowPrerelease`, and that is the one reason an RC pin appears on `master`. Prepared on `promote/net11-main-20261010` as a six-commit series: a convergence merge of `origin/master` (dependency bumps, install-doc fixes, and the Dockerfile `ARG VERSION=2.0.0.3` bump the net11 line had lost — verified `build` 0 errors and core suite **1995 / 0 failed / 0 skipped in 80,3 s**), the CI restructure, the net11 Dockerfile, the docs, and an isolated release-metadata commit.
4444
- **The CI pipelines are split by line instead of by SDK.** `.github/workflows/ci.yml` (what `master` triggers) becomes the net11.0 pipeline: the .NET 11 SDK pin with `include-prerelease`, the four test hosts under `bin/Release/net11.0`, and the `coverage` job plus the core-only dispatch `publish-core` job carried over from the deleted `ci-net11.yml`, so no capability is lost. `.github/workflows/ci-net10.yml` is the old master pipeline retargeted to `release/v2.0` (tags `v2.0*`, pack/publish gated on that branch). `compatibility-smoke.yml` and `dependency-submission.yml` move to the same pin, because the server and the solution they exercise are net11 now.
4545
- **The server image is net11-aware again, closing the open item in the 2.1.0-RC.3 release notes.** The Dockerfile moves to `sdk:11.0` / `aspnet:11.0` and `docker-publish.yml` drops the `!v2.1*` exclusion (excluding `v2.0.x` instead, which belongs to the parked line). The container deliberately does **not** copy `global.json`: it builds with the image's own SDK, so the repository's RC pin cannot fail an image build on a missing SDK. Full record, the flip procedure and the GA checklist: `docs/net11/PROMOTION_TO_MAIN.md`.
46-
- **`codecov.yml` no longer declares a flag that nothing uploads, and its PR comment no longer advertises two sections that can never render.** The `unittests` flag (`paths: [src/]`, `carryforward: true`) was the repository's only entry in Codecov's flag list with **no coverage at all** — `/flags/` answers `{"count": 1, "results": [{"flag_name": "unittests", "coverage": 0.0}]}` — and it could never be anything else: the `coverage` job hands all three Cobertura reports to a *single* `codecov/codecov-action` call and deliberately uploads **unflagged** (a status that names no flag would have no data to read), which Codecov records as one upload for the commit — confirmed against the API for `4283626d8235b4e2175097a929a9b0e1613a17b2` (the endpoint wants the full 40-character SHA), whose `uploads/` endpoint answers `count: 1` with `"flags": []`. The file's own header comment asserted the opposite ("we expect exactly 3 uploads"), which is what made the mismatch look like a missing upload; it now states the measured shape, and `after_n_builds` stays unset for that reason (waiting for three uploads would leave every commit without a comment or a status). `flags` and `components` are dropped from `comment.layout` (`header, diff, tree`) because this file defines no `component_management` either. No status reads a flag, so pass/fail behaviour is unchanged; validated with `codecov.io/validate` (*Valid!*).
46+
- **`codecov.yml` no longer declares a flag that nothing uploads, and its PR comment no longer advertises two sections that can never render.** The `unittests` flag (`paths: [src/]`, `carryforward: true`) was the repository's only entry in Codecov's flag list with **no coverage at all** — `/flags/` answers `{"count": 1, "results": [{"flag_name": "unittests", "coverage": 0.0}]}` — and it could never be anything else: the `coverage` job hands all three Cobertura reports to a *single* `codecov/codecov-action` call and deliberately uploads **unflagged** (a status that names no flag would have no data to read), which Codecov records as one upload for the commit — confirmed against the API for `4283626d8235b4e2175097a929a9b0e1613a17b2` (the endpoint wants the full 40-character SHA), whose `uploads/` endpoint answers `count: 1` with `"flags": []`. The file's own header comment asserted the opposite ("we expect exactly 3 uploads"), which is what made the mismatch look like a missing upload; it now states the measured shape, and `after_n_builds` stays unset for that reason (waiting for three uploads would leave every commit without a comment or a status). `flags` and `components` are dropped from `comment.layout` (`header, diff, tree`) because this file defines no `component_management` either. No status reads a flag, so pass/fail behaviour is unchanged; validated with `codecov.io/validate` (*Valid!*). The flag **registry entry** Codecov holds for the repository is *not* removed by deleting the declaration — measured after this landed on `master` (merge `b4b9a70d`, 2026-10-13, with the merge commit's flag-free upload processed at 04:04:43Z): `/flags/` still answers `{"count": 1, "results": [{"flag_name": "unittests", "coverage": 0.0}]}` and `/flags/unittests/` is still live. That entry costs nothing (no upload carries the flag, no status reads it) and removing it is a Codecov dashboard action, recorded as `BLOCKED` in `codecov.yml` rather than left as an inference.
4747

4848

4949
### Fixed

‎docs/performance/WORKLOG.md‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5213,3 +5213,18 @@ Nothing in the repository explains a stall: no `.git/*.lock`, no fsmonitor daemo
52135213
- Commit: `4eafadd8` (`chore(codecov): …`) on `perf/autonomous-20261012`, pushed, PR #460 opened against `master` and left green for the owner — merging publishes to NuGet.org, so landing stays an owner action.
52145214
- NEXT: unchanged queue head — session 81's `NEXT:` §5.1 INSERT item (i), the identity-remap fast path for `InsertBatch(table, rows, columns)` when the column order already matches the table order (112 B/row on the array arm). Open and BLOCKED, carried forward rather than dropped: `codecov/project` is never posted for this repository (evidence above, restated in `codecov.yml`), needs a Codecov dashboard/app check, and costs nothing while absent.
52155215

5216+
5217+
5218+
### 2026-10-13 (session 86 — addendum 2) — owner instruction lands PR #460 on `master`, and the post-merge flag-list prediction is measured refuted
5219+
5220+
- Session: 86 (same session, addendum 2 — the merge the owner instructed, plus the post-merge observation addendum 1 promoted to a claim, which the measurement then contradicts).
5221+
- Command(s): `gh repo view --json defaultBranchRef`, `git ls-remote --heads origin main master`, `gh pr view 460 --json state,mergeable,mergeStateStatus,headRefOid`, `gh pr checks 460`, `gh pr merge 460 --merge`, `git fetch origin` / `git --no-pager log origin/master`, `gh api repos/.../actions/runs?head_sha=b4b9a70d…`, `gh api repos/.../actions/runs/<id>/jobs`, `curl .../commits/b4b9a70d…/uploads/`, `curl .../flags/`, `curl .../flags/unittests/`.
5222+
- Verdict: **LANDED on `master` as `b4b9a70d` (merge commit, 2026-10-13T04:01:14Z, owner instruction), master green in every job including `Publish to NuGet.org` — and the flag-list prediction of addendum 1 is REFUTED by measurement, so it is corrected in `codecov.yml`, `docs/CHANGELOG.md` and here rather than left standing.**
5223+
- The merge: PR #460 was `OPEN` / `MERGEABLE` / `CLEAN` at head `f2cc566d` with no failing or pending check, so it went in as a merge commit, matching the repository's own history (`Merge pull request #448 …`). `origin/master` is now `b4b9a70d` with all three commits (`4eafadd8`, `0e59d9df`, `f2cc566d`) on top of `b6bcf34a`; the feature branch was left in place, since deleting it was not asked for. "Push to main" means `master` here: `gh repo view --json defaultBranchRef` answers `master` and `git ls-remote --heads origin main master` returns `refs/heads/master` only — there is no `main` branch to push to.
5224+
- Master's pipeline on `b4b9a70d` (`CI/CD Pipeline` run `38344447898`): `Build and Test` success on windows-latest, ubuntu-latest and macos-latest, `Coverage (net11.0)` success, `Pack NuGet Packages` success, **`Publish to NuGet.org` success** — the publish a green master push triggers (session 85 addendum 1's reading), which is why landing the PR was an owner action. `Pack + Publish core to NuGet.org (manual)` skipped, its `workflow_dispatch`-only condition. `.github/workflows/ci.yml` lines 361 and 455 pass `--skip-duplicate`, so a later docs-only push cannot turn master red on an already-published version.
5225+
- **Refuted, with the evidence that refutes it — addendum 1 predicted the flag "disappears from `[`/flags/`]` when `master` carries this change". It does not.** The merge commit's own coverage upload was processed at **04:04:43Z**, by a tree that contains no `flags:` section at all: `/commits/b4b9a70dfd6bb453ff7bcd03a00294be38c0d362/uploads/` answers `count: 1`, `state: merged`, `"flags": []`, 537 files / 58 907 lines. Nine minutes later, at 04:13:47Z, `/flags/` still answers `{"count": 1, "results": [{"flag_name": "unittests", "coverage": 0.0}]}`, and `/flags/unittests/` answers `HTTP 200` with a `coverage` link — a live registry entity rather than a 404. The list is therefore driven neither by the current contents of `codecov.yml` nor by the head upload's flags: it is a repository-level **registry** Codecov keeps, and no directive in the file deletes an entry from it.
5226+
- BLOCKED (2026-10-13, outside this repository), recorded in `codecov.yml` and carried in this entry's `NEXT:` line, never dropped: the lingering `unittests` registry entry itself. Deleting it is a Codecov dashboard action — the same class of item as `codecov/project`. It costs nothing while it stands: `coverage: 0.0` on a flag no upload carries and no status reads, with `codecov/patch`, the PR comment and the in-job 18 % floor (`tools/measure-coverage.ps1 -Floor 0.18`) all still reporting.
5227+
- Why the correction is a file change and not a note: addendum 1 turned one observation (the list unchanged while the PR was open) into a *prediction*, and the first post-merge measurement contradicts it. `codecov.yml` now carries the measurement — merge SHA, upload timestamp, both endpoint answers — so the next session can re-check rather than re-infer.
5228+
- Commit: this addendum plus the `codecov.yml` and `docs/CHANGELOG.md` corrections, on `perf/autonomous-20261013`, pushed as a pull request against `master` and left for the owner — a merge there republishes packages (`--skip-duplicate`), so landing stays an owner action.
5229+
- NEXT: unchanged queue head — session 81's `NEXT:` §5.1 INSERT item (i), the identity-remap fast path for `InsertBatch(table, rows, columns)` when the column order already matches the table order (112 B/row on the array arm). Open and BLOCKED, carried forward rather than dropped: `codecov/project` is never posted for this repository, and the `unittests` registry entry survives the declaration that created it — both need Codecov dashboard/app actions and neither can be done from this repository.
5230+

0 commit comments

Comments
 (0)