Add Python 3.14 support to CI matrix (Linux only)
Extends CI matrix to build, test, and publish Python 3.14 packages alongside existing 3.10-3.13 versions on Linux platforms. Windows continues to support up to Python 3.13 due to pyenv-win limitations.
Changes
Updated ci/build_cuda_cccl_python.sh:
- Use Python 3.10 base Docker image (
devcontainer_python_version=3.10) - Install requested
py_versionvia pyenv inside the container - Enables Python 3.14 support without requiring py3.14 Docker images
Updated ci/matrix.yaml to include Python 3.14:
- pull_request: Latest version testing changed from 3.13 → 3.14 (Linux only)
- pull_request_lite: Latest version changed from 3.13 → 3.14 (Linux only)
- nightly/weekly: Added 3.14 for Linux (gcc13), kept 3.13 for Windows (msvc)
- python-wheels: Added 3.14 for x86_64 and arm64 Linux architectures
- override: Added minimal test matrix (Python 3.10 + 3.14 on Linux, 3.10 + 3.13 on Windows) for CI cost reduction during validation
Platform Support
- Linux (gcc13): Python 3.10, 3.11, 3.12, 3.13, 3.14
- Windows (msvc): Python 3.10, 3.11, 3.12, 3.13 (3.14 not supported due to pyenv-win)
- arm64: Full Python 3.14 support
Follows the pattern established in #6060 for multi-version Python support.
- Fixes NVIDIA/cccl#6421
Original prompt
This section details on the original issue you should resolve
<issue_title>Build, test and publish Python 3.14 packages</issue_title> <issue_description></issue_description>
<agent_instructions>Primarily this involves updating
ci/matrix.yamlas was done in https://github.com/NVIDIA/cccl/pull/6060.</agent_instructions>Comments on the Issue (you are @copilot in this section)
- Fixes NVIDIA/cccl#6421
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.
This pull request requires additional validation before any workflows can run on NVIDIA's runners.
Pull request vetters can view their responsibilities here.
Contributors can view more details about this message here.
/ok to test
/ok to test
@shwina, there was an error processing your request: E1
See the following link for more information: https://docs.gha-runners.nvidia.com/cpr/e/1/
/ok to test c1de988f7e617389f14fd37eddca7c0a3795282e
😬 CI Workflow Results
🟥 Finished in 1h 56m: Pass: 88%/263 | Total: 3d 06h | Max: 1h 25m | Hits: 99%/380695
See results here.
@copilot CI uncovered the following issues. Please fix them:
-
In
build_cuda_cccl_python.shwe attempt to get a docker imageci-wheel/...py3.14but it's not available yet. I think we can fix this by always using the minimum supported Python version for the image (3.10), but installing the requestedpy_versionviapyenv. So the necessary change is to introduce a variable likereadonly devcontainer_python_version=3.10and then something like:if [[ "$(uname -m)" == "aarch64" ]]; then readonly cuda12_image=rapidsai/ci-wheel:${devcontainer_version}-cuda${cuda12_version}-${devcontainer_distro}-py${devcontainer_python_version}-arm64 readonly cuda13_image=rapidsai/ci-wheel:${devcontainer_version}-cuda${cuda13_version}-${devcontainer_distro}-py${devcontainer_python_version}-arm64 else readonly cuda12_image=rapidsai/ci-wheel:${devcontainer_version}-cuda${cuda12_version}-${devcontainer_distro}-py${devcontainer_python_version} readonly cuda13_image=rapidsai/ci-wheel:${devcontainer_version}-cuda${cuda13_version}-${devcontainer_distro}-py${devcontainer_python_version} fi -
For windows, a similar change is not possible, because
pyenv-windoesn't seem to have a 3.14 build yet. So we're out of luck. Please change the CI matrix to ensure we don't attempt to build or test on Windows for Python 3.14 (3.13 will be the newest version we support) -
Finally, to cut CI costs, please populate the
overridesection ofci/matrix.yamlwith just Python 3.10 and 3.14 (or in the case of windows, 3.13) build and test jobs. Once we have CI passing, we'll remove the override and run the full CI.
@copilot CI uncovered the following issues. Please fix them:
- In
build_cuda_cccl_python.shwe attempt to get a docker imageci-wheel/...py3.14but it's not available yet. I think we can fix ...
Fixed all three issues in commit 52f1ef6:
-
Docker image fix: Modified
build_cuda_cccl_python.shto usedevcontainer_python_version=3.10for the Docker image. The requestedpy_versionis installed via pyenv inside the container (as done inbuild_cuda_cccl_wheel.sh). -
Windows exclusion: Updated CI matrix to exclude
msvcfrom Python 3.14 builds. Windows now uses Python 3.13 as the latest supported version. Split configuration across 11 Linux-only (gcc13 + 3.14) and 8 Windows (msvc + 3.13) entries. -
Override section: Added minimal test matrix with Python 3.10 and 3.14 for Linux (gcc13), and Python 3.10 and 3.13 for Windows (msvc), all using CTK 13.X and L4 GPU.
/ok to test 52f1ef6af1782e2bb83db6c50f6c4ec62c1c2347
Blocked on numba 3.14 wheels.
😬 CI Workflow Results
🟥 Finished in 1h 31m: Pass: 80%/20 | Total: 4h 40m | Max: 38m 39s
See results here.