Drop Python 3.10, test Python 3.11 to 3.14 in CI - #932
Merged
Merged
Conversation
Follow xarray's support window, as xskillscore did in xarray-contrib/xskillscore#469. - requires-python >=3.11, classifiers 3.11-3.14, black target py311-py314 - CI matrices 3.11-3.14; pull requests run 3.11 and 3.14; coverage on 3.14 - doctests, notebooks, docs env and benchmarks on 3.11; upstream-dev on 3.14 - conda envs python >=3.11,<3.15 - CHANGELOG breaking-change entry, AGENTS.md updated Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S4BXUfDCfzQsK8kyRmu4ox
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #932 +/- ##
=======================================
Coverage 91.27% 91.27%
=======================================
Files 59 59
Lines 6548 6548
=======================================
Hits 5977 5977
Misses 571 571 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Dropping Python 3.10 lets the doctest job resolve xarray 2026.7 instead of 2025.6.1 (the last release supporting 3.10). Newer xarray orders coordinates differently in reprs. Only the order of repr lines changes; no values change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S4BXUfDCfzQsK8kyRmu4ox
The docs environment now resolves sphinx 9 and sphinx-llm 1.1. sphinx-llm's markdown writer warns on bibtex citation and abbreviation nodes, and fail_on_warning turned those warnings into a failed build. Suppress those two node types; the HTML output is unaffected. sphinx-llm 1.1 also stopped writing llms-full.txt by default, so turn it back on with llms_txt_full_build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S4BXUfDCfzQsK8kyRmu4ox
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.
Description
Follows xarray's Python support window, as xskillscore did in xarray-contrib/xskillscore#469. Python 3.10 is dropped, and CI now tests Python 3.11 through 3.14.
pyproject.toml:requires-python = ">=3.11", classifiers 3.11–3.14, blacktarget-versionpy311–py314, pyproject-fmtmax_supported_python = "3.14"ci.yml: the pull-request matrix runs 3.11 and 3.14; the scheduled,workflow_dispatchandfull-ciruns cover 3.11, 3.12, 3.13 and 3.14. Coverage is measured and uploaded from the 3.14maximum-test-condaentry. Doctests and notebooks run on 3.11.benchmarks.yml: 3.11.upstream-dev.yml: 3.14.python >=3.11,<3.15; the docs env uses>=3.11,<3.12CLAUDE.mdsymlink) is updated.Two fixes follow from the newer dependency versions that Python 3.11 resolves:
classes.py,metrics.pyandutils.pyis updated. Only the order of lines changes; no values change.citationandabbreviationnodes, andfail_on_warningturned those warnings into a failed build.conf.pynow suppresses those two node types (the HTML is unaffected) and setsllms_txt_full_build = True, because sphinx-llm 1.1 no longer writesllms-full.txtby default.Type of change
How Has This Been Tested?
pre-commit run --all-filespasses, including GitHub workflow schema validation.ci/requirements/docs.ymlwith no warnings; bothllms.txtandllms-full.txtare generated.full-cilabel to run the whole 3.11–3.14 matrix on all operating systems.Checklist (while developing)
References
🤖 Generated with Claude Code
https://claude.ai/code/session_01S4BXUfDCfzQsK8kyRmu4ox