Skip to content

ci: add Python 3.14 test environment to CI matrix#11377

Open
mvanhorn wants to merge 2 commits into
pydata:mainfrom
mvanhorn:fix/11241-add-python-314-env
Open

ci: add Python 3.14 test environment to CI matrix#11377
mvanhorn wants to merge 2 commits into
pydata:mainfrom
mvanhorn:fix/11241-add-python-314-env

Conversation

@mvanhorn

@mvanhorn mvanhorn commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a Python 3.14 test environment to CI so xarray starts exercising the latest Python alongside 3.13.

Why

Issue #11241 asks for CI to start covering Python 3.14, which has been out for several months and is now supported by numba and the rest of the core stack. Without a 3.14 environment, xarray has no signal on whether it works on the newest interpreter that users are already adopting.

Description

This begins migrating CI toward Python 3.14, which issue #11241 asks for now that 3.14 has been out for several months and numba supports it. pixi.toml gains a py314 feature pinned to python = "3.14.*" and a test-py314 environment mirroring the existing test-py313 definition, and .github/workflows/ci.yaml adds test-py314 to the pixi-env matrix. The change is additive: 3.13 stays in place so maintainers can decide the removal cadence, keeping this low-risk.

Checklist

  • Closes Add python 3.14 env to CI #11241
  • Tests added
  • User visible changes (including notable bug fixes) are documented in whats-new.rst
  • New functions/methods are listed in api.rst

AI Disclosure

  • This PR contains AI-generated content.
    • I have tested any AI-generated content in my PR.
    • I take responsibility for any AI-generated content in my PR.
      Tools: Claude

@github-actions github-actions Bot added the Automation Github bots, testing workflows, release automation label Jun 4, 2026
@dcherian

dcherian commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Let's replace 3.13 with 3.14 so we minimize how much CI we run

Co-authored-by: Claude <noreply@anthropic.com>
@mvanhorn

mvanhorn commented Jun 6, 2026

Copy link
Copy Markdown
Contributor Author

Done in 1e78a4d - 3.13 is replaced by 3.14 in the main matrix and the no-numba/no-dask/flaky/typing variants now run on 3.14 only. Kept the test-py313 pixi envs since ci-additional.yaml and hypothesis.yaml still reference them.

[This is Claude Code on behalf of Matt Van Horn]

Comment thread pixi.toml
[feature.py313.dependencies]
python = "3.13.*"

[feature.py314.dependencies]

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.

Should be deleting the 3.13 entries here

Comment thread pixi.toml
python = "3.13.*"

[feature.py314.dependencies]
python = "3.14.*"

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.

maybe use python-gil here, to be fully explicit that we're not checking the freethreading build?

See https://anaconda.org/channels/conda-forge/packages/python/overview

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

Labels

Automation Github bots, testing workflows, release automation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add python 3.14 env to CI

3 participants