Skip to content

More changes for dropping 3.10 / adding 3.15 - #3113

Merged
mdboom merged 4 commits into
NVIDIA:mainfrom
mdboom:drop-3.10-features
Oct 15, 2026
Merged

mdboom merged 4 commits into
NVIDIA:mainfrom
mdboom:drop-3.10-features

Conversation

@mdboom

@mdboom mdboom commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

This is a follow-on with a bunch of things that got missed in #3080.

@mdboom
mdboom requested a review from leofang October 14, 2026 21:03
@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 labels Oct 14, 2026
@mdboom
mdboom requested a review from Andy-Jost October 14, 2026 21:05
@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/cuda-python/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: d9c09892-bb10-43dd-a8d2-a80fad57961f
📥 Commits

Reviewing files that changed from the base of the PR and between 189ae81 and cfb2838.

📒 Files selected for processing: 1
  • cuda_core/pyproject.toml
🚧 Files skipped from review as they are similar to previous changes: 1
  • cuda_core/pyproject.toml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

📝 Summary

Summary by CodeRabbit

  • Documentation
    • Updated Python requirements for project helpers and most samples from 3.10+ to 3.11+; one sample now requires Python 3.12+.
  • Bug Fixes
    • CUDA operation failures now include additional error details as exception notes, with consistent reporting.
  • Compatibility
    • Added Python 3.15 support across packages and included Python 3.15 wheel artifacts in processing. Python 3.15 nightly-wheel setup was removed, and test failures on Python 3.15 now follow normal failure behavior.

The pull request updates Python compatibility code, package metadata, wheel workflows, and documented requirements. It removes exception-note fallbacks and compatibility dependencies, adjusts Python 3.15 and 3.16 CI handling, and raises documented minimum versions.

Changes: Python version support

Layer / File(s) Summary
Core compatibility and error handling
cuda_core/cuda/core/_utils/*, cuda_core/cuda/core/_memory/_copy_enums.py, cuda_core/cuda/core/system/typing.py, cuda_core/pixi.toml, cuda_core/tests/*, cuda_core/AGENTS.md, cuda_core/cuda/core/_cpp/rt/DESIGN.md, cuda_bindings/pixi.toml, cuda_python_test_helpers/pyproject.toml
Core code imports StrEnum from the standard library and calls add_note without a fallback. Compatibility dependencies and Python-version-specific test branches are removed. Error-handling guidance describes exception notes without version-specific behavior.
Python 3.15 package and CI support
cuda_bindings/pyproject.toml, cuda_core/pyproject.toml, cuda_pathfinder/pyproject.toml, cuda_pathfinder/tests/test_find_nvidia_headers.py, cuda_python/pyproject.toml, .github/workflows/*wheel.yml, ci/ci-pipeline.mmd, ci/tools/download-wheels
Package metadata and CI include Python 3.15 support. Wheel workflows allow prereleases for Python 3.16 and remove Python 3.15 nightly-wheel setup and test exceptions. Artifact processing no longer excludes matching Python 3.15 directories.
Documented Python requirements
.github/actions/check-doc-links/action.yml, samples/cuda_bindings/*/README.md, samples/cuda_core/*/README.md, samples/cuda_core/*/requirements.txt
The action prerequisite and sample requirements specify Python 3.11 or newer. The systemInfo sample specifies Python 3.12 or newer.

Priority: ➖ Normal

Change: Feature

Merge Risk: ⚪ Minimal · up to cfb28

The Python compatibility dependency is updated, with no conflicting requirement found in the supported test workflows. Normal checks remain appropriate, but no identified issue blocks merging.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/cuda-python/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 71519d4f-cb36-4799-aa1a-f1d7eac9d187
📥 Commits

Reviewing files that changed from the base of the PR and between 1f41281 and 92982ea.

📒 Files selected for processing: 77
  • .github/actions/check-doc-links/action.yml
  • .github/workflows/build-wheel.yml
  • .github/workflows/test-wheel-linux.yml
  • .github/workflows/test-wheel-windows.yml
  • ci/ci-pipeline.mmd
  • ci/tools/download-wheels
  • cuda_bindings/pixi.toml
  • cuda_bindings/pyproject.toml
  • cuda_core/AGENTS.md
  • cuda_core/cuda/core/_cpp/rt/DESIGN.md
  • cuda_core/cuda/core/_memory/_copy_enums.py
  • cuda_core/cuda/core/_utils/cuda_utils.pyx
  • cuda_core/cuda/core/_utils/pycompat.py
  • cuda_core/cuda/core/system/typing.py
  • cuda_core/pixi.toml
  • cuda_core/tests/graph/test_graph_builder.py
  • cuda_core/tests/test_enum_coverage.py
  • cuda_core/tests/test_error_handling.py
  • cuda_python_test_helpers/pyproject.toml
  • samples/cuda_bindings/0_Introduction/clockNvrtc/README.md
  • samples/cuda_bindings/0_Introduction/simpleCubemapTexture/README.md
  • samples/cuda_bindings/0_Introduction/systemWideAtomics/README.md
  • samples/cuda_bindings/0_Introduction/vectorAddDriverApi/README.md
  • samples/cuda_bindings/0_Introduction/vectorAddMmap/README.md
  • samples/cuda_bindings/2_Concepts_and_Techniques/streamOrderedAllocation/README.md
  • samples/cuda_bindings/3_CUDA_Features/cudaGraphsManualNodes/README.md
  • samples/cuda_bindings/3_CUDA_Features/globalToShmemAsyncCopy/README.md
  • samples/cuda_bindings/4_CUDA_Libraries/conjugateGradientMultiBlockCG/README.md
  • samples/cuda_bindings/4_CUDA_Libraries/nvidiaSmi/README.md
  • samples/cuda_bindings/extra/isoFdModelling/README.md
  • samples/cuda_bindings/extra/jitProgram/README.md
  • samples/cuda_core/binarySearch/README.md
  • samples/cuda_core/blockwiseSum/README.md
  • samples/cuda_core/blurImageUnifiedMemory/README.md
  • samples/cuda_core/copyImageArraytoGPU/README.md
  • samples/cuda_core/cudaComputeLambdas/README.md
  • samples/cuda_core/cudaGraphs/README.md
  • samples/cuda_core/customPyTorchKernel/README.md
  • samples/cuda_core/customTensorFlowKernel/README.md
  • samples/cuda_core/deviceQuery/README.md
  • samples/cuda_core/fftSignalAnalysis/README.md
  • samples/cuda_core/glInteropFluid/README.md
  • samples/cuda_core/glInteropMipmapLod/README.md
  • samples/cuda_core/glInteropPlasma/README.md
  • samples/cuda_core/greenContext/README.md
  • samples/cuda_core/ipcMemoryPool/README.md
  • samples/cuda_core/jitLtoLinking/README.md
  • samples/cuda_core/kernelNsysProfile/README.md
  • samples/cuda_core/launchConfigTuning/README.md
  • samples/cuda_core/launchConfigTuning/requirements.txt
  • samples/cuda_core/matrixMulSharedMem/README.md
  • samples/cuda_core/memoryResources/README.md
  • samples/cuda_core/multiGPUGradientAverage/README.md
  • samples/cuda_core/pageRank/README.md
  • samples/cuda_core/parallelHistogram/README.md
  • samples/cuda_core/parallelHistogram/requirements.txt
  • samples/cuda_core/parallelReduction/README.md
  • samples/cuda_core/persistentProgramCache/README.md
  • samples/cuda_core/prefixSum/README.md
  • samples/cuda_core/prefixSum/requirements.txt
  • samples/cuda_core/processCheckpoint/README.md
  • samples/cuda_core/reduction/README.md
  • samples/cuda_core/reductionMultiBlockCG/README.md
  • samples/cuda_core/simpleMultiGpu/README.md
  • samples/cuda_core/simpleP2P/README.md
  • samples/cuda_core/simplePrint/README.md
  • samples/cuda_core/simpleZeroCopy/README.md
  • samples/cuda_core/streamingCopyComputeOverlap/README.md
  • samples/cuda_core/streamingCopyComputeOverlap/requirements.txt
  • samples/cuda_core/stridedMemoryViewConstructors/README.md
  • samples/cuda_core/stridedMemoryViewCpu/README.md
  • samples/cuda_core/stridedMemoryViewGpu/README.md
  • samples/cuda_core/systemInfo/README.md
  • samples/cuda_core/textureSample/README.md
  • samples/cuda_core/threadBlockCluster/README.md
  • samples/cuda_core/tmaTensorMap/README.md
  • samples/cuda_core/vectorAdd/README.md
💤 Files with no reviewable changes: 5
  • cuda_bindings/pixi.toml
  • cuda_core/tests/test_enum_coverage.py
  • cuda_core/pixi.toml
  • cuda_bindings/pyproject.toml
  • cuda_python_test_helpers/pyproject.toml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

Comment thread samples/cuda_core/systemInfo/README.md Outdated
@github-actions github-actions Bot added the cuda.pathfinder Everything related to the cuda.pathfinder module label Oct 14, 2026
@mdboom mdboom self-assigned this Oct 14, 2026
@mdboom mdboom added this to the cuda.core next milestone Oct 14, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/cuda-python/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: d221f98e-9aed-411f-9400-ef784dabcbf3
📥 Commits

Reviewing files that changed from the base of the PR and between a8aeb26 and 189ae81.

📒 Files selected for processing: 7
  • .github/workflows/test-wheel-linux.yml
  • .github/workflows/test-wheel-windows.yml
  • cuda_bindings/pyproject.toml
  • cuda_core/pyproject.toml
  • cuda_pathfinder/pyproject.toml
  • cuda_pathfinder/tests/test_find_nvidia_headers.py
  • cuda_python/pyproject.toml
💤 Files with no reviewable changes: 2
  • .github/workflows/test-wheel-linux.yml
  • .github/workflows/test-wheel-windows.yml
🚧 Files skipped from review as they are similar to previous changes: 1
  • cuda_bindings/pyproject.toml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 8 remain after this review.

Comment thread cuda_core/pyproject.toml Outdated
@github-actions

github-actions Bot commented Oct 15, 2026 •

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

@Andy-Jost Andy-Jost left a comment

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.

Approving. CI is green, and the 3.10 cleanup and the 3.15 guard removals look right. Three non-blocking follow-ups:

  1. No CUDA 12 test job on Python 3.15. All 3.15 jobs run on CUDA 13.4.2 (ci/test-matrix.yml L60-L61, L132). So CI never imports the CUDA 12 half of a cp315 cuda-core wheel. cuda-bindings 12.9.10 now has cp315 wheels on PyPI, so pip install "cuda-core[cu12]" resolves on 3.15. Only the test coverage is missing. Suggestion: add a PY_VER: '3.15', CUDA_VER: '12.9.1' row. #3108 adds the same coverage on the 1.2.x branch.

  2. The ml-dtypes cap keeps a guard whose TODO is now met. ml-dtypes 0.6.0 has cp315 and cp315t wheels for win_amd64, win_arm64, and manylinux x86_64/aarch64. The <0.6.0 cap holds CI at 0.5.4, which has no cp315 wheels (cuda_core/pyproject.toml L84-L85). As a result, the Windows 3.15 job skips test_bfloat16_mapping with "ml_dtypes not installed", and the Linux 3.15 jobs build ml-dtypes 0.5.4 from source. If the tests pass with 0.6.x, raise the cap and remove the Windows 3.15 guard and its TODO.

  3. Stale numpy cap in the cuda-bindings test group. cuda_bindings/pyproject.toml L48-L49 keeps numpy>=1.21.1,<=2.6.0.dev0 and its comment about scientific-python nightlies. This PR removes the nightly index, and numpy 2.5.4 has cp315 wheels, so the comment no longer applies. The cap will also exclude numpy 2.6.0 when it ships. <2.6 gives the same result for releases without the comment. Or remove the cap if CI should run numpy 2.6.

@mdboom
mdboom merged commit 166cd5a into NVIDIA:main Oct 15, 2026
202 of 204 checks passed
@mdboom mdboom mentioned this pull request Oct 15, 2026
github-actions Bot pushed a commit that referenced this pull request Oct 16, 2026
Removed preview folders for the following PRs:
- PR #2902
- PR #3061
- PR #3105
- PR #3108
- PR #3113
- PR #3122
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.

2 participants