Add Python 3.15 to the build/test matrix (12.9.x backport)#2133
Draft
leofang wants to merge 6 commits into
Draft
Add Python 3.15 to the build/test matrix (12.9.x backport)#2133leofang wants to merge 6 commits into
leofang wants to merge 6 commits into
Conversation
Backport of NVIDIA#2108 to the 12.9.x branch so that cuda-bindings 12.9.x wheels are available for Python 3.15, which the main branch needs in order to build cuda-core. - Add 3.15 / 3.15t to the build matrix - Upgrade cibuildwheel to v4.0.0rc1 (required for cpython-prerelease) - Enable cpython-prerelease in CIBW_ENABLE - Add amd64-only test entries for 3.15 / 3.15t (CUDA 12.9.1)
Contributor
Member
Author
|
/ok to test a79f6c6 |
Member
Author
|
/ok to test 2598994 |
- Remove 3.13t from build matrix and all test matrices (already dropped on main). - Work around Meson finding GNU link.exe (from Git for Windows) instead of MSVC link.exe when building numpy from source for pre-release Python on Windows.
Member
Author
|
/ok to test d64eefd |
leofang
commented
May 22, 2026
Comment on lines
+253
to
+258
| - name: Hide GNU link.exe so Meson finds MSVC link.exe | ||
| if: ${{ startsWith(inputs.host-platform, 'win') }} | ||
| run: | | ||
| if [ -f "/c/Program Files/Git/usr/bin/link.exe" ]; then | ||
| mv "/c/Program Files/Git/usr/bin/link.exe" "/c/Program Files/Git/usr/bin/link.exe.bak" | ||
| fi |
Member
Author
There was a problem hiding this comment.
Note: Adding this workaround because it choked Meson:
..\meson.build:1:0: ERROR: Found GNU link.exe instead of MSVC link.exe in C:\Program Files\Git\usr\bin\link.EXE.
This link.exe is not a linker.
You may need to reorder entries to your %PATH% variable to resolve this.
- Add arm64 entries for 3.15 / 3.15t (linux pull-request) - Add Windows pull-request entries for 3.10, 3.11, 3.14, 3.14t, 3.15, 3.15t to keep in sync with main
Member
Author
|
/ok to test 8a2c9c3 |
NumPy does not ship pre-built wheels for Python 3.15 yet. Build the wheel from source during the build stage (where compilers are available), upload it as an artifact, and download/install it in the test stage before running cuda.bindings tests.
Member
Author
|
/ok to test a7692b4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #2108 to the
12.9.xbranch so thatcuda-bindings12.9.x wheels are available for Python 3.15, which themainbranch needs in order to buildcuda-core.Changes
3.15/3.15tto the build matrix inbuild-wheel.ymlcpython-prereleasesupport)cpython-prereleasetoCIBW_ENABLE(v4.0 enables free-threading by default, socpython-freethreadingwas dropped)3.13tfrom build and test matrices (already removed onmain)link.exe(Git for Windows) shadowing MSVClink.exe— only affects pre-release Python on Windows where numpy must build from sourceAdaptation notes
The following changes from #2108 were not needed on
12.9.x:test-wheel-linux.yml— already hasallow-prereleases: truecuda_bindings/pyproject.toml—matplotlibwas already absent from test depscuda_core/pyproject.toml—cffiwas already absent from test depsCIBW_REPAIR_WHEEL_COMMAND_WINDOWS: ""— not needed because 12.9.x already sets an explicit delvewheel command that overrides the v4.0 default