fix(ci): pin setup-uv to v7 in release workflow (v8 does not exist) - #84
Conversation
The release workflow referenced astral-sh/setup-uv@v8, which is not a published version, so the v0.2.0 release run failed at the build job before any publish step ran (nothing was pushed to PyPI or GHCR). ci.yml already uses @v7 and runs green; align release.yml to match. After this merges to main, the v0.2.0 tag must be re-pointed at the new commit (delete + recreate the tag/release) to re-trigger publishing. https://claude.ai/code/session_01KYcUxCGAHaTPrRHTzJCWQz
📝 WalkthroughWalkthroughThe release workflow's uv setup step is updated to use version 7 of the astral-sh setup-uv action instead of version 8. This one-line change affects the toolchain initialization in the build and verify package job that precedes package artifact generation and PyPI/Docker registry publishing. ChangesRelease Workflow Toolchain
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.github/workflows/release.yml (1)
31-31: ⚖️ Poor tradeoffConsider pinning to commit SHA for supply-chain security (optional).
As per static analysis, GitHub Actions best practices recommend pinning to full commit SHAs instead of tags (e.g.,
astral-sh/setup-uv@<commit-sha>) to prevent tag-rewriting attacks. This applies to all actions in the workflow, not just setup-uv.This is an optional hardening measure and not required to fix the immediate v8→v7 issue.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/release.yml at line 31, The workflow currently references the third‑party action as "astral-sh/setup-uv@v7"; to harden supply‑chain security replace the tag with a full commit SHA for that action (e.g., "astral-sh/setup-uv@<commit-sha>") by locating the desired commit in the action's repository and updating the reference, and apply the same pinning approach to any other action entries in the workflow so all uses are fixed to immutable commit SHAs rather than mutable tags.Source: Linters/SAST tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In @.github/workflows/release.yml:
- Line 31: The workflow currently references the third‑party action as
"astral-sh/setup-uv@v7"; to harden supply‑chain security replace the tag with a
full commit SHA for that action (e.g., "astral-sh/setup-uv@<commit-sha>") by
locating the desired commit in the action's repository and updating the
reference, and apply the same pinning approach to any other action entries in
the workflow so all uses are fixed to immutable commit SHAs rather than mutable
tags.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 82eafce0-b209-4748-b409-7babec75627d
📒 Files selected for processing (1)
.github/workflows/release.yml
The 0.2.0 tag failed to publish (release workflow referenced a non-existent setup-uv@v8, so the build aborted before PyPI/GHCR upload). Rather than re-point the public v0.2.0 tag, bump to 0.2.1 — which also now includes the i18n reports feature (#16) and the release-workflow fix (#84) that landed on main since. - pyproject.toml + __init__.py: 0.2.0 -> 0.2.1 - CHANGELOG: new [0.2.1] section noting i18n + the release fix, with a note that 0.2.0 never published; compare links updated. After merge, tag v0.2.1 on main to trigger the (now fixed) release pipeline. https://claude.ai/code/session_01KYcUxCGAHaTPrRHTzJCWQz
The 0.2.0 tag failed to publish (release workflow referenced a non-existent setup-uv@v8, so the build aborted before PyPI/GHCR upload). Rather than re-point the public v0.2.0 tag, bump to 0.2.1 — which also now includes the i18n reports feature (#16) and the release-workflow fix (#84) that landed on main since. - pyproject.toml + __init__.py: 0.2.0 -> 0.2.1 - CHANGELOG: new [0.2.1] section noting i18n + the release fix, with a note that 0.2.0 never published; compare links updated. After merge, tag v0.2.1 on main to trigger the (now fixed) release pipeline. https://claude.ai/code/session_01KYcUxCGAHaTPrRHTzJCWQz Co-authored-by: Claude <noreply@anthropic.com>
What happened
The v0.2.0 release run failed (run 27357593997) at the very first job:
release.ymlpinnedastral-sh/setup-uv@v8, which is not a published version. Thebuildjob aborted in ~10s, and sincepypianddockerbothneeds: build, neither ran — so nothing was published to PyPI or GHCR. Clean slate to retry.(Note: the repo-health bot in #40 suggested
v7 → v8, but v8 doesn't exist;ci.ymlcorrectly uses@v7and runs green.)Fix
release.yml:astral-sh/setup-uv@v8→@v7, matchingci.yml.After merge — re-trigger the release
The
v0.2.0tag points at the old commit. Once this is onmain, the tag/release must be re-pointed at the new commit to re-run publishing. I'll guide that step.Validation
One-line workflow fix; no code change. CI will confirm the workflows still parse/run.
https://claude.ai/code/session_01KYcUxCGAHaTPrRHTzJCWQz
Generated by Claude Code
Summary by CodeRabbit