Skip to content

ci: bump GitHub Actions to Node 24 native versions - #13

Merged
MsShawnP merged 2 commits into
mainfrom
ci-actions-node24
Jul 8, 2026
Merged

ci: bump GitHub Actions to Node 24 native versions#13
MsShawnP merged 2 commits into
mainfrom
ci-actions-node24

Conversation

@MsShawnP

@MsShawnP MsShawnP commented Jul 8, 2026

Copy link
Copy Markdown
Owner

What

Bump the GitHub Actions in both workflow files to the latest majors that natively run on Node 24, clearing the Node 20 deprecation warning.

Action Before After runs.using
actions/checkout v4 v7 node24
actions/setup-python v5 v6 node24
actions/upload-artifact v4 v7 node24
actions/download-artifact v4 v8 node24
pypa/gh-action-pypi-publish release/v1 unchanged Docker (no Node)

Files touched: .github/workflows/ci.yml, .github/workflows/publish.yml.

Notes

  • The runs.using: node24 value on each new major was verified against the action's action.yml at its latest release tag.
  • Artifact compatibility: upload-artifact v7 and download-artifact v8 both depend on the @actions/artifact v6 backend, so they interoperate — the v4-upload-requires-v4-download constraint is satisfied by keeping both on post-v4 majors.
  • pypa/gh-action-pypi-publish@release/v1 is a Docker-based action with no Node runtime, so it emits no Node 20 warning and is left as-is.

Scope

CI config only — no package version bump, no PyPI release, no tag.

🤖 Generated with Claude Code

MsShawnP and others added 2 commits July 8, 2026 16:27
GitHub is deprecating Node 20 on Actions runners, so actions pinned to
Node-20 majors were being force-run on Node 24 with a warning. Bump each
to its latest major that natively targets Node 24 (runs.using: node24):

- actions/checkout          v4 -> v7
- actions/setup-python      v5 -> v6
- actions/upload-artifact   v4 -> v7
- actions/download-artifact v4 -> v8

upload v7 and download v8 both use the @actions/artifact v6 backend, so
they stay compatible. pypa/gh-action-pypi-publish@release/v1 is a Docker
action (no Node runtime) and emits no warning, so it is left unchanged.

CI config only: no package version bump, no PyPI release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The CI 3.9 matrix leg was failing at the mypy step (and thus red on main),
which blocked pytest from ever running on 3.9:

- core.py used PEP 604 `X | Y` union syntax in annotations, which mypy
  rejects for a 3.9 target and which raises TypeError at import time on
  3.9. Add `from __future__ import annotations` (matches the other
  modules in the package) so the annotations are lazy and valid on 3.9.
- rules.py passed a compiled `re.Pattern` to `Series.str.fullmatch`,
  whose stub expects `str`. The pattern is already validated at rule-load
  time and pandas compiles internally, so pass the pattern string
  directly and drop the redundant `re.compile` call. Behavior unchanged.

Verified: ruff clean, mypy clean, 233 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@MsShawnP
MsShawnP merged commit c3479fb into main Jul 8, 2026
3 checks passed
@MsShawnP
MsShawnP deleted the ci-actions-node24 branch July 8, 2026 20:37
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.

1 participant