cccl icon indicating copy to clipboard operation
cccl copied to clipboard

Add Python 3.14 support to CI matrix (Linux only)

Open Copilot opened this issue 4 months ago • 10 comments

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_version via 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.yaml as 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.

Copilot avatar Oct 31 '25 13:10 Copilot

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.

copy-pr-bot[bot] avatar Oct 31 '25 13:10 copy-pr-bot[bot]

/ok to test

shwina avatar Nov 01 '25 09:11 shwina

/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/

copy-pr-bot[bot] avatar Nov 01 '25 09:11 copy-pr-bot[bot]

/ok to test c1de988f7e617389f14fd37eddca7c0a3795282e

shwina avatar Nov 01 '25 10:11 shwina

😬 CI Workflow Results

🟥 Finished in 1h 56m: Pass: 88%/263 | Total: 3d 06h | Max: 1h 25m | Hits: 99%/380695

See results here.

github-actions[bot] avatar Nov 01 '25 12:11 github-actions[bot]

@copilot CI uncovered the following issues. Please fix them:

  1. In build_cuda_cccl_python.sh we attempt to get a docker image ci-wheel/...py3.14 but 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 requested py_version via pyenv. So the necessary change is to introduce a variable like readonly devcontainer_python_version=3.10 and 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
    
  2. For windows, a similar change is not possible, because pyenv-win doesn'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)

  3. Finally, to cut CI costs, please populate the override section of ci/matrix.yaml with 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.

shwina avatar Nov 05 '25 15:11 shwina

@copilot CI uncovered the following issues. Please fix them:

  1. In build_cuda_cccl_python.sh we attempt to get a docker image ci-wheel/...py3.14 but it's not available yet. I think we can fix ...

Fixed all three issues in commit 52f1ef6:

  1. Docker image fix: Modified build_cuda_cccl_python.sh to use devcontainer_python_version=3.10 for the Docker image. The requested py_version is installed via pyenv inside the container (as done in build_cuda_cccl_wheel.sh).

  2. Windows exclusion: Updated CI matrix to exclude msvc from 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.

  3. 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.

Copilot avatar Nov 05 '25 15:11 Copilot

/ok to test 52f1ef6af1782e2bb83db6c50f6c4ec62c1c2347

shwina avatar Nov 05 '25 17:11 shwina

Blocked on numba 3.14 wheels.

shwina avatar Nov 05 '25 18:11 shwina

😬 CI Workflow Results

🟥 Finished in 1h 31m: Pass: 80%/20 | Total: 4h 40m | Max: 38m 39s

See results here.

github-actions[bot] avatar Nov 05 '25 18:11 github-actions[bot]