Skip to content

Drop Python 3.9 support and bump GHA actions to Node.js 24#452

Merged
aaronspring merged 3 commits into
mainfrom
drop-python-3.9
Jun 17, 2026
Merged

Drop Python 3.9 support and bump GHA actions to Node.js 24#452
aaronspring merged 3 commits into
mainfrom
drop-python-3.9

Conversation

@aaronspring

Copy link
Copy Markdown
Collaborator

Summary

  • Drops support for Python 3.9; the minimum supported version is now Python 3.10.
  • Bumps all GitHub Actions to versions running on Node.js 24 to silence the Node.js 20 deprecation warnings (Node 20 is removed from runners on 2026-09-16).

Changes

Drop Python 3.9

  • pyproject.toml: remove 3.9 classifier, requires-python = ">=3.10", drop py39 from black target-version
  • .github/workflows/xskillscore_testing.yml: remove 3.9 from the test matrix and drop the 3.9-only numpy==1.24 install step; bump the docs-notebooks job to 3.10
  • .github/workflows/xskillscore_installs.yml: bump install job to 3.10
  • ci/{dev,doc,docs_notebooks,minimum-tests}.yml: raise conda floor to python >=3.10

Bump GHA actions to Node.js 24

Action Old New
actions/checkout v4 v5
actions/setup-python v5 v6
actions/upload-artifact v4 v6
actions/download-artifact v4 v7
actions/github-script v7 v8
mamba-org/setup-micromamba v2 v3

Versions were chosen as the minimal major that runs on Node.js 24 (verified against each action's action.yml). setup-micromamba@v3 is solely the Node 24 bump per its release notes.

Validation

  • All workflow YAML and pyproject.toml parse correctly
  • import xskillscore succeeds

🤖 Generated with Claude Code

aaronspring and others added 2 commits June 17, 2026 10:10
- Remove Python 3.9 from the test matrix, classifiers, requires-python
  (now >=3.10), and black target-version
- Drop the 3.9-only `numpy==1.24` install step and bump docs/install
  jobs to Python 3.10
- Raise the conda env floors to `python >=3.10`
- Bump GitHub Actions to Node.js 24 runtimes: checkout@v5,
  setup-python@v6, upload-artifact@v6, download-artifact@v7,
  github-script@v8, setup-micromamba@v3

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The ::set-output workflow command is deprecated and slated for removal
from GitHub Actions runners. Write to the $GITHUB_OUTPUT file instead.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@codecov

codecov Bot commented Jun 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.50%. Comparing base (e457985) to head (ddc4d2d).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #452      +/-   ##
==========================================
- Coverage   94.57%   94.50%   -0.08%     
==========================================
  Files          27       27              
  Lines        2841     2841              
==========================================
- Hits         2687     2685       -2     
- Misses        154      156       +2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@aaronspring aaronspring requested a review from Zeitsperre June 17, 2026 08:17

@Zeitsperre Zeitsperre left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM!

@aaronspring aaronspring merged commit e4c7285 into main Jun 17, 2026
2 of 4 checks passed
@aaronspring aaronspring deleted the drop-python-3.9 branch June 17, 2026 13:45
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