Skip to content

ci: bump actions/setup-python v4 -> v5 (clears the node16 runner deprecation) - #716

Open
logbie wants to merge 1 commit into
mainfrom
warden/bump-setup-python-v5
Open

ci: bump actions/setup-python v4 -> v5 (clears the node16 runner deprecation)#716
logbie wants to merge 1 commit into
mainfrom
warden/bump-setup-python-v5

Conversation

@logbie

@logbie logbie commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What and why

actionlint reports exactly five findings on this repository, and all five are the same one:

.github/workflows/ci.yml:49:15:  the runner of "actions/setup-python@v4" action is too old
.github/workflows/ci.yml:223:15: ... to run on GitHub Actions. update the action's version
.github/workflows/ci.yml:394:15:
.github/workflows/ci.yml:697:15:
.github/workflows/versioning.yml:28:15:

actions/setup-python@v4 runs on the node16 runner. This is a warning today, not a failure, but it is the kind of deprecation GitHub eventually force-migrates and then drops — at which point it turns into a red fmt/bump-version/database-tests lane rather than a warning. This was flagged as a deferred item during the 2026-08-14 CI outage triage with the explicit condition "worth bumping to @v5 when CI can verify again". CI can verify again, so here it is.

After this change actionlint reports zero findings on the repository.

Why v5 and not v7

actions/setup-python is currently at v7.0.0, so v5 is not the newest. That is deliberate:

  • v5.0.0 is a runner-only release: node16 → node20, no input changes, no behaviour changes. All five call sites here pass nothing but python-version, so this is genuinely mechanical.
  • v6.0.0 moves to node24 and states: "Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release." Every job in this repo runs on a Blacksmith runner (blacksmith-*-ubuntu-2404, blacksmith-*-windows-2025), and I cannot verify the Blacksmith agent version from the workflow side.
  • v7.0.0 additionally migrates to ESM and removes the pip-install input (unused here).

Jumping three majors to pick up features this repo does not use, while introducing an unverifiable runner-version dependency, is a worse trade than clearing the actual deprecation. Going to v6/v7 is a reasonable follow-up once someone confirms the Blacksmith agent version — happy to do that as a separate PR.

Changes

Five uses: lines, two files, nothing else:

file lines
.github/workflows/ci.yml 49, 223, 394, 697
.github/workflows/versioning.yml 28

The two python-version: '3.12' pins (ci.yml:225, :396) that exist because the Windows runner's default python predates tomllib are untouched and still needed.

Test evidence

  • Risk class: R0 — build-infrastructure only. Changes no shipped artifact, no source file, no test. The action version affects only how Python is provisioned on the runner.
  • Acceptance criteria → tests: all five Python-using jobs still provision Python and pass. Those jobs are the test; per the testing policy, pure CI mechanics do not need a manufactured failing test, and the existing checks are the Red→Green evidence here.
  • Red evidence: actionlint -no-color on main @ 36de4fa7 → 5 findings (quoted above). Same command on this branch → 0 findings.
  • Unit/component: n/a — no source change.
  • Integration/contract: covered by CI on this PR. The five affected jobs are checker-unit-tests (ci.yml:43), the two integration-tests matrix lanes (ci.yml:211, :386), bump-version (ci.yml:666), and versioning.yml's bump job. Note the two integration lanes run the working-tree hygiene check that specifically needs Python 3.11+, so they exercise the pinned-version path, not just the '3.x' path.
  • End-to-end: n/a.
  • Coverage: unchanged.
  • Platforms: both — the matrix lanes cover blacksmith-4vcpu-ubuntu-2404 and blacksmith-4vcpu-windows-2025, so the bump is validated on Linux and Windows.
  • Not applicable, with reason: no security/migration/concurrency/performance surface; this does not touch runtime code.
  • Rollback/recovery: revert the commit. No state, no artifacts, no migration.
  • Residual risk: low but not zero, and worth stating plainly — I could not run scripts/check_repo_hygiene.py locally because this sandbox has Python 3.10 and the checker requires 3.11+ (tomllib). CI runs it on both integration lanes. A workflow uses: bump has no path to affect repo-hygiene results, but I did not prove that locally. Please confirm the hygiene lane is green before merging.

Not merging — warden branches always go back through review.

Opened by the WFL repo warden (automated triage pass).


Open in Devin Review

Summary by CodeRabbit

  • Chores
    • Updated automated workflows to use the latest supported Python setup action.
    • Improved reliability and maintenance of repository checks, integration tests, and versioning tasks.

actionlint flags all five actions/setup-python@v4 uses with "the runner of
... is too old to run on GitHub Actions" (node16). v5.0.0 is a
runner-only release (node16 -> node20) with no input or behaviour
changes; all five call sites pass only python-version, so the bump is
mechanical.

Deliberately targets v5 rather than the current v7: v6.0.0 requires
GitHub Actions runner >= v2.327.1 and every job here runs on Blacksmith
runners whose agent version cannot be verified from the workflow side.
v5 clears the deprecation with no runner-version dependency.

After this change actionlint reports zero findings on the repository.
Copilot AI lite review requested due to automatic review settings August 16, 2026 09:05
@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 14f64af2-e94a-4de5-b6fd-619141f6b03a

📥 Commits

Reviewing files that changed from the base of the PR and between 36de4fa and 9a88c31.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • .github/workflows/versioning.yml

Included review availability: Your plan includes up to 1 review per rolling hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The CI and versioning workflows update all five actions/setup-python references from v4 to v5.

Changes

Python setup action updates

Layer / File(s) Summary
Update setup-python workflow references
.github/workflows/ci.yml, .github/workflows/versioning.yml
The repository hygiene, integration tests, WFL programs, version bump, and versioning jobs now use actions/setup-python@v5.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 9a88c

This change updates five CI workflow references from actions/setup-python@v4 to @v5 to remove the deprecated Node16 runner warning without changing shipped code or repository behavior; no actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: updating actions/setup-python from v4 to v5 to address the Node16 runner deprecation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch warden/bump-setup-python-v5

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates GitHub Actions workflows to eliminate actionlint warnings caused by actions/setup-python@v4 running on the deprecated Node 16 runtime, by bumping those call sites to actions/setup-python@v5.

Changes:

  • Bumped actions/setup-python from @v4 to @v5 in all existing workflow call sites (5 total).
  • Left existing Python version pins unchanged ('3.x' and the Windows-specific '3.12' pins).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
.github/workflows/ci.yml Updates four actions/setup-python steps to @v5 for CI jobs that require Python.
.github/workflows/versioning.yml Updates the version-bump workflow’s actions/setup-python step to @v5.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@logbie

logbie commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator Author

CI is complete and fully green: 18 substantive checks pass, 2 skipped (Bump Version, which only runs on push to main, and claude). MERGEABLE / CLEAN.

Closing the loop on the residual risk I flagged in the description — I could not run scripts/check_repo_hygiene.py locally (this sandbox has Python 3.10, the checker needs 3.11+ for tomllib). Both hygiene lanes passed: Repository Hygiene (blacksmith-2vcpu-ubuntu-2404-arm) and Repository Hygiene (blacksmith-4vcpu-windows-2025). That was the one thing I asked to be confirmed before merge, and it is confirmed.

The bump is also validated on both platforms by the jobs that actually consume the action: Integration Tests and Run WFL Programs on blacksmith-4vcpu-ubuntu-2404 and blacksmith-4vcpu-windows-2025, plus Release Script Tests. The Windows lanes are the meaningful ones here, since those are the jobs that pin python-version: '3.12' specifically because the runner's default Python predates tomllib — so the pinned-version path is exercised, not just '3.x'.

Ready for review whenever you get to it. Not merging.

Posted by the WFL repo warden (automated triage pass).

@logbie

logbie commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator Author

Stale-PR check, 2026-08-18 warden pass — this is now ~48h idle with no blocker on it, so a nudge rather than a repeat of the readiness note above.

Still green, still clean. Re-checked this morning: 18 checks pass, 2 skip (Bump Version is main-only, claude is opt-in), MERGEABLE / CLEAN. Nothing has drifted since the run on 08-16.

Still the whole remaining actionlint surface. actionlint 1.7.7 against main @ 36de4fa7 reports exactly five findings, and they are exactly the five this PR fixes:

ci.yml:49:15         actions/setup-python@v4 ... runner too old
ci.yml:223:15        actions/setup-python@v4 ... runner too old
ci.yml:394:15        actions/setup-python@v4 ... runner too old
ci.yml:697:15        actions/setup-python@v4 ... runner too old
versioning.yml:28:15 actions/setup-python@v4 ... runner too old

Merging this takes the repo to a clean actionlint run.

New context that wasn't true at the last nudge: main has not moved since 36de4fa7 (2026-08-14T18:43Z) — 86 hours. The nightlies on 08-16, 08-17 and 08-18 all reported success by skipping: check-for-changes sets should_build=false because HEAD is still the sha the 08-15 nightly already built. So the last time the full Windows + Linux-musl build actually ran was 2026-08-15. That is working as designed, but it does mean the build is currently green on the strength of not having run for three days. This PR and #717 are the only two things in flight that would move main and put a real build back on the board.

Next action: a maintainer merge. No code change is wanted here — the diff is four v4v5 bumps and nothing else.

Posted by the WFL repo warden (automated triage pass).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants