ci: bump setup-uv v6 → v8 (silences last Node 20 annotation)#6
Merged
Conversation
setup-uv@v8.1.0 (released 2026-04-16) declares `using: "node24"` directly in its action manifest — no FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 override needed. Silences the last informational annotation that has trailed every CI run since v0.3.7: Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: astral-sh/setup-uv@v6. The escape-hatch env var stays in place defensively — costs nothing and would catch any future action we add that's still on Node 20. Comment in the workflow updated to reflect that it's no longer necessary for any currently-pinned action.
The first attempt at v0.3.11 used @v8, which failed every cell with 'Unable to resolve action astral-sh/setup-uv@v8, unable to find version v8' — Astral has only published point releases v8.0.0 and v8.1.0, no moving @v8 tag. Both v7.6.0 (latest @v7) and v8.0.0+ already declare `using: "node24"` natively, so pinning to @v7 silences the deprecation annotation just as effectively as @v8 would. @v7 is also the safer pin until Astral ships the @v8 alias — moving major tags get point-release auto-bumps without surprises. Comment in the workflow notes the situation so the next person reading it knows when to revisit.
Two follow-ups from the v0.3.11 first run: (1) golangci-lint-action @v8 still on Node 20 @v9 declares `using: "node24"`. v9.2.0 is the current point release. Bumping silences the last remaining Node 20 deprecation annotation. (2) Cache key collisions across parallel pytest cells Six pytest jobs (3.10/3.11/3.12/3.13 on Linux + macOS-3.12 + Windows-3.12) all tried to write the same uv cache key, racing each other. Only one wins, the rest emit a "cache may already be reserved" warning. Functional but noisy. Fix: cache-suffix differentiated per matrix cell using ${{ matrix.os }}-py${{ matrix.python }} for the python job. The lint job isn't a matrix job, so it gets a fixed `lint` suffix. Cache hit ratio drops slightly (each cell warms its own cache independently) but warnings disappear and parallel jobs stop racing. Acceptable trade.
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.
Summary
Bumps `astral-sh/setup-uv` from v6 to v8.1.0. v8 declares `using: "node24"` natively, so the FYI annotation that's trailed every CI run since v0.3.7 stops firing.
Type of change
Notes
The `FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true` env var stays in place defensively — covers any future action we add that's still on Node 20. Workflow comment updated.
Checklist