fix(ci): the composite consumers execute runs setup-uv v9, not v8.3.2 - #14
Merged
Conversation
#12 bumped astral-sh/setup-uv 8.3.2 -> 9.0.0 but touched only .github/workflows/ci.yml — this repo's own self-test. The file consumers actually execute, .github/actions/setup-python-uv/action.yml, stayed on v8.3.2, so the bump reached nobody downstream. The split was already visible in the field: edge-proc and edgeproc-core run v9.0.0 directly in their own ci.yml while calling this composite on their publish path — v9 on test, v8.3.2 on publish, same repo, same PR. c771a70e6277c0a99b617c7a806ffedaca235ff9 is v9.0.0, confirmed against `gh api repos/astral-sh/setup-uv/tags` (v8.3.2 there is the outgoing 11f9893b), and is the same SHA #12 and both consumers already run. The version comment names v9.0.0 exactly. #13 just removed five floating-major comments for this reason: zizmor's ref-version-mismatch resolves the comment against upstream, so `# v9` turns main red the moment astral-sh cuts a patch. No floating major tag exists upstream anyway — `v9` and `v8` both 404. Claim touched: "consumers of this composite run a pinned, immutable, auditable setup-uv." It was true about immutability and false about which version — the audited pin and the executed pin were different files. Evidence: - GH_TOKEN=... uvx zizmor@1.26.1 . -> exit 0, "No findings to report" - actionlint -> clean; shellcheck -x + bash -n -> clean - tests/security-policy.sh -> exit 0 - tests/lint-examples.sh -> exit 0, 173 refs resolved, 0 MISSING Still on the old SHA after this change: nothing executable. README.md:422 and CHANGELOG.md:273,401 mention v8.3.2 as prose; README.md:197 shows v8.1.0 in a sample. Reported, not edited — no gate reads them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015o7tjWLFZvzRv4KyNfDukx
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
hseshadr
added a commit
that referenced
this pull request
Aug 3, 2026
* chore(ci): every first-party ref runs the v9.0.0 composite The nine self-pins still resolved to ci-v3.0.0, whose tree carries setup-uv v8.3.2 — so python-gate, python-publish and security-audit all executed the old version while ci.yml ran v9.0.0. Bumping the composite in #14 fixed the file; nothing that calls it moved until now. Comments move with the SHAs. A stale version comment is what zizmor's ref-version-mismatch fails on, and it turned main red this morning. Verified: 9 pins before, 0 remaining at 2a575cd after — asserted, not assumed. zizmor exit 0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015o7tjWLFZvzRv4KyNfDukx * chore(ci): re-pin the published examples too The first-party currency guard covers examples/, not just .github/ — and it is right to. examples/ is the path consumers copy; ci-v2.0.0 got into every consumer exactly this way, because every example pointed at it while it carried nested @ci-v1 moving tags. 17 example refs moved to 33c5e5f (ci-v3.1.0). tests/security-policy.sh exits 0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
The defect
#12bumpedastral-sh/setup-uv8.3.2 → 9.0.0 but touched only.github/workflows/ci.yml— this repo's own self-test. The file consumers actually execute,.github/actions/setup-python-uv/action.yml:54, stayed on v8.3.2. The bump reached nobody downstream.The split was already visible in the field:
edge-procandedgeproc-corerun v9.0.0 directly in their ownci.ymlwhile calling this composite on their publish path. v9 on the test path, v8.3.2 on the publish path, same repo.The change
One pin, plus the adjacent comment whose version range the bump made stale.
The SHA, verified independently
gh api repos/astral-sh/setup-uv/tags:v9.0.0c771a70e6277c0a99b617c7a806ffedaca235ff9← incomingv8.3.211f9893b081a58869d3b5fccaea48c9e9e46f990← outgoinggh api .../git/ref/tags/v9.0.0resolves to the same commit. It is also the SHA#12used and the one both consumers already run.The comment names the exact version
#13just removed five floating-major comments.zizmor'sref-version-mismatchresolves the version comment against upstream, so# v9turnsmainred the moment astral-sh cuts a patch. No floating major tag exists upstream anyway —v9andv8both 404 on the refs API.Claim touched
True about immutability, false about which version. The pin CI audited and the pin consumers executed lived in different files, and only one of them got bumped. This PR makes the audited pin and the executed pin the same pin.
Evidence
GH_TOKEN=… uvx zizmor@1.26.1 .actionlintshellcheck -x+bash -ntests/security-policy.shtests/lint-examples.shAnything else still on v8.3.2
Nothing executable.
grep -rn 11f9893b081a58869d3b5fccaea48c9e9e46f990returns exactly one hit onmain, and this PR is it. The remainder is prose and left alone deliberately — no gate reads it:README.md:422— pin-convention table says# v8.3.2README.md:197— sample snippet shows@v8.1.0CHANGELOG.md:273,401— historical entries, correct as historyNot in this PR
.github/workflows/python-gate.yml:82still pins this composite at@2a575cd… # ci-v3.0.0. Re-pointing it needs this PR's merge SHA, which does not exist yet. It is the deliberate next step, not an oversight.🤖 Generated with Claude Code
https://claude.ai/code/session_015o7tjWLFZvzRv4KyNfDukx