Skip to content

ci: drop Python 3.10 and promote python.supported to ci/versions.yml (13.4.x backport) - #3085

Closed
leofang wants to merge 1 commit into
NVIDIA:13.4.xfrom
leofang:ci/drop-py310-13.4.x
Closed

leofang wants to merge 1 commit into
NVIDIA:13.4.xfrom
leofang:ci/drop-py310-13.4.x

Conversation

@leofang

@leofang leofang commented Oct 12, 2026

Copy link
Copy Markdown
Member

Backport of #3080 (merged on main) to the 13.4.x maintenance branch. Not a straight git cherry-pick — the branch pre-dates several things PR 3080 touched (check_cuda_core_bindings_floor, sample_runner, pyproject/pixi restructures), so the change is re-applied by hand with the same pattern.

SSoT (backport of the cupy pattern used in #3080)

  • ci/versions.yml — add a python block with supported: list. Same shape as the main-branch version.
  • .github/workflows/ci.yml — expose PYTHON_SUPPORTED from the existing ci-vars job via yq -o json -I 0 '.python.supported' ci/versions.yml; thread it to every build-wheel.yml call. The baseline-reuse yq read of build-wheel.yml's matrix is retargeted to ci/versions.yml.
  • .github/workflows/build-wheel.yml — add python-versions input; matrix sources it via fromJSON(inputs.python-versions). The dead win-arm64 && 3.10 exclude is removed with the matrix.

3.10 drops

  • python.supported lands with 3.11 .. 3.15t only.
  • ci/test-matrix.yml — delete the 9 PY_VER: '3.10' rows.
  • All five pyproject.tomls — drop the 3.10 classifier and bump requires-python to >=3.11.
  • cuda_bindings/pixi.toml, cuda_core/pixi.toml — drop "3.10.*" from the python feature matrix. cuda_pathfinder/pixi.toml — python = ">=3.10" → ">=3.11".
  • ruff.toml — target-version = "py310" → "py311". mypy python_version pins in cuda_core/pyproject.toml and cuda_pathfinder/pyproject.toml bump to "3.11".

Cleanups unlocked by the 3.11 floor

  • cuda_core/cuda/core/typing.py — collapse the StrEnum backport shim (enum.StrEnum is stdlib on 3.11+).
  • cuda_core/cuda/core/_utils/pycompat.py — drop the 3.11 StrEnum shim; keep the 3.12 BufferProtocol block.
  • cuda_core/pyproject.toml — drop the backports.strenum; python_version < '3.11' runtime dep.
  • cuda_core/pixi.toml — drop the unconditional backports.strenum dep.
  • cuda_bindings/tests/test_basics.py + cuda_core/tests/test_enum_coverage.py — drop dead sys.version_info >= (3, 11) blocks.

Drive-by ruff fixes (same as #3080)

  • toolshed/check_spdx.py — datetime.timezone.utc → datetime.UTC (UP017).
  • ci/tools/check_pixi_cuda_version.py — I001 import sort.

Docs

  • cuda_bindings/docs/source/install.rst, support.rst — Python 3.10 - 3.14 → 3.11 - 3.15. Also drop python310 and add python315 / python315t to the nightly-wheel example.
  • cuda_core/docs/source/install.rst, support.rst — same bump; add "3.14 and 3.15" to the free-threaded mention.
  • cuda_pathfinder/docs/source/install.rst — same bump.

Release notes

  • cuda_core/docs/source/release/1.3.0-notes.rst — add a Highlights bullet (file already exists on this branch).
  • New placeholder files for the next release of each other project: cuda_bindings/docs/source/release/13.4.4-notes.rst, cuda_pathfinder/docs/source/release/1.8.2-notes.rst, cuda_python/docs/source/release/13.4.2-notes.rst.

pixi.lock refresh

Regenerated pixi.lock (root) + cuda_bindings/pixi.lock + cuda_core/pixi.lock + cuda_pathfinder/pixi.lock + benchmarks/cuda_bindings/pixi.lock + benchmarks/cuda_core/pixi.lock with pixi 0.81.0 to track the pixi.toml / pyproject.toml changes.

-- Leo's bot

Backport of NVIDIA#3080 (merged) to 13.4.x.

SSoT:
- Add python.supported to ci/versions.yml as the canonical list the wheel
  matrix is built across.
- Thread it through ci.yml -> build-wheel.yml via a new python-versions
  input; replace the yq read of build-wheel.yml's matrix with ci/versions.yml
  in the baseline-reuse check.

3.10 drops:
- Remove 3.10 from python.supported.
- Delete the 9 PY_VER='3.10' rows from ci/test-matrix.yml.
- Drop the 3.10 classifier + bump requires-python to >=3.11 across all
  five pyproject.toml files.
- Drop "3.10.*" from cuda_bindings/pixi.toml and cuda_core/pixi.toml python
  feature matrices; bump cuda_pathfinder/pixi.toml python >=3.10 to >=3.11.
- Bump ruff.toml target-version and the mypy python_version pins to 3.11.
- Drop the backports.strenum dependency (runtime + pixi) and collapse the
  StrEnum shim in cuda.core.typing and cuda.core._utils.pycompat.
- Collapse dead sys.version_info >= (3, 11) blocks in
  cuda_core/tests/test_enum_coverage.py and cuda_bindings/tests/test_basics.py.
- Drive-by ruff auto-fixes (UP017 datetime.UTC, I001 import sort) in
  ci/tools/check_pixi_cuda_version.py and toolshed/check_spdx.py.
- Bump the docs that explicitly spelled "Python 3.10 - 3.14" to
  "3.11 - 3.15" in install.rst / support.rst for all three projects.
- Add a Highlights "Python 3.10 dropped" bullet to the existing
  cuda_core 1.3.0 placeholder; create new 13.4.4 / 1.8.2 / 13.4.2
  placeholders for cuda_bindings / cuda_pathfinder / cuda_python.

pixi.lock refresh:
- Regenerated pixi.lock in /, cuda_bindings/, cuda_core/, cuda_pathfinder/,
  benchmarks/cuda_bindings/, benchmarks/cuda_core/.
@copy-pr-bot

copy-pr-bot Bot commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

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.

@github-actions github-actions Bot added CI/CD CI/CD infrastructure cuda.bindings Everything related to the cuda.bindings module cuda.core Everything related to the cuda.core module cuda.pathfinder Everything related to the cuda.pathfinder module labels Oct 12, 2026
@leofang

leofang commented Oct 13, 2026

Copy link
Copy Markdown
Member Author

/ok to test 195b796

@leofang leofang self-assigned this Oct 13, 2026
@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor
Doc Preview CI
Preview removed because the pull request was closed or merged.

@leofang

leofang commented Oct 13, 2026

Copy link
Copy Markdown
Member Author

Windows failures need this backport PR: #3086.

@leofang
leofang requested a review from mdboom October 13, 2026 15:35
@leofang

leofang commented Oct 13, 2026

Copy link
Copy Markdown
Member Author

Discussed on Slack, this is not needed. We still want to ship PY310 for 13.4.x.

@leofang leofang closed this Oct 13, 2026
@leofang
leofang deleted the ci/drop-py310-13.4.x branch October 13, 2026 19:05
github-actions Bot pushed a commit that referenced this pull request Oct 14, 2026
Removed preview folders for the following PRs:
- PR #2940
- PR #2993
- PR #3060
- PR #3082
- PR #3085
- PR #3086
- PR #3087
- PR #3091
- PR #3096
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD CI/CD infrastructure cuda.bindings Everything related to the cuda.bindings module cuda.core Everything related to the cuda.core module cuda.pathfinder Everything related to the cuda.pathfinder module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant