@@ -166,7 +166,7 @@ jobs:
166166 cuda-version : ${{ inputs.cuda-version }}
167167
168168 - name : Build cuda.bindings wheel
169- uses : pypa/cibuildwheel@294735312765b09d24a2fbec22660ce817587d55 # v4.1.0
169+ uses : pypa/cibuildwheel@4726cd35bb13f7bde50cf2761f2499ac7b3aa32c # v4.1.1
170170 with :
171171 package-dir : ./cuda_bindings/
172172 output-dir : ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}
@@ -234,7 +234,7 @@ jobs:
234234 if-no-files-found : error
235235
236236 - name : Build cuda.core wheel
237- uses : pypa/cibuildwheel@294735312765b09d24a2fbec22660ce817587d55 # v4.1.0
237+ uses : pypa/cibuildwheel@4726cd35bb13f7bde50cf2761f2499ac7b3aa32c # v4.1.1
238238 with :
239239 package-dir : ./cuda_core/
240240 output-dir : ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
@@ -338,13 +338,16 @@ jobs:
338338 id : setup-python2
339339 uses : actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
340340 with :
341- # TODO: Pin beta.2 precisely until cibuildwheel catches up (b4 broke ABI for Cython);
342- # this precise pin requires the explicit `freethreaded`.
343- # When 3.15 is officially supported we can also remove the `allow-prereleases` override.
344- python-version : ${{ startsWith(matrix.python-version, '3.15') && '3.15.0-beta.2' || matrix.python-version }}
345- freethreaded : ${{ endsWith(matrix.python-version, 't') }}
341+ python-version : ${{ matrix.python-version }}
342+ # TODO: remove allow-prereleases once 3.15 is officially supported
346343 allow-prereleases : ${{ startsWith(matrix.python-version, '3.15') }}
347344
345+ - name : Enable Scientific Python Nightly Wheels for Python 3.15
346+ if : ${{ startsWith(matrix.python-version, '3.15') }}
347+ run : |
348+ echo "PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" >> "$GITHUB_ENV"
349+ echo "PIP_ONLY_BINARY=numpy" >> "$GITHUB_ENV"
350+
348351 - name : verify free-threaded build
349352 if : endsWith(matrix.python-version, 't')
350353 run : python -c 'import sys; assert not sys._is_gil_enabled()'
@@ -370,64 +373,6 @@ jobs:
370373 mv "/c/Program Files/Git/usr/bin/link.exe" "/c/Program Files/Git/usr/bin/link.exe.bak"
371374 fi
372375
373- # TODO: remove the numpy pre-build steps once 3.15 is officially supported
374- # (numpy will publish pre-built 3.15 wheels at that point)
375- - name : Download and patch numpy sdist (pre-release Python)
376- if : ${{ startsWith(matrix.python-version, '3.15') }}
377- run : |
378- pip download --no-binary numpy --no-deps "numpy>=1.21.1" -d numpy-sdist/
379- cd numpy-sdist && tar xf numpy-*.tar.gz && rm numpy-*.tar.gz
380- # WAR: numpy 2.4.x ships [tool.cibuildwheel] config that is
381- # incompatible with cibuildwheel v4.0 (cpython-freethreading enable
382- # group, OpenBLAS before-build scripts, etc.). Strip the cibuildwheel
383- # sections but preserve [tool.meson-python] (vendored meson path).
384- python -c "
385- import glob
386- for f in glob.glob('numpy-*/pyproject.toml'):
387- lines, skip = open(f).readlines(), False
388- out = []
389- for line in lines:
390- hdr = line.strip()
391- if hdr.startswith('[tool.cibuildwheel') or hdr.startswith('[[tool.cibuildwheel'):
392- skip = True
393- continue
394- if skip and hdr.startswith('[') and 'cibuildwheel' not in hdr:
395- skip = False
396- if not skip:
397- out.append(line)
398- open(f, 'w').writelines(out)
399- "
400- echo "NUMPY_SRC_DIR=$(pwd)/$(ls -d numpy-*/)" >> $GITHUB_ENV
401-
402- - name : Build numpy wheel (pre-release Python)
403- if : ${{ startsWith(matrix.python-version, '3.15') }}
404- uses : pypa/cibuildwheel@294735312765b09d24a2fbec22660ce817587d55 # v4.1.0
405- env :
406- CIBW_BUILD : ${{ env.CIBW_BUILD }}
407- CIBW_SKIP : " *-musllinux* *-win32"
408- CIBW_ARCHS_LINUX : " native"
409- CIBW_BUILD_VERBOSITY : 1
410- CIBW_CONFIG_SETTINGS : " setup-args=-Dallow-noblas=true"
411- CIBW_CONFIG_SETTINGS_WINDOWS : " setup-args=--vsenv setup-args=-Dallow-noblas=true"
412- CIBW_BEFORE_BUILD_WINDOWS : " pip install delvewheel"
413- CIBW_REPAIR_WHEEL_COMMAND_WINDOWS : " delvewheel repair -w {dest_dir} {wheel}"
414- CIBW_ENABLE : " cpython-prerelease"
415- with :
416- package-dir : ${{ env.NUMPY_SRC_DIR }}
417- output-dir : numpy-wheel/
418-
419- - name : Upload numpy wheel
420- if : ${{ startsWith(matrix.python-version, '3.15') }}
421- uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
422- with :
423- name : numpy-python${{ env.PYTHON_VERSION_FORMATTED }}-${{ inputs.host-platform }}
424- path : numpy-wheel/*.whl
425- if-no-files-found : error
426-
427- - name : Install numpy wheel
428- if : ${{ startsWith(matrix.python-version, '3.15') }}
429- run : pip install numpy-wheel/*.whl
430-
431376 - name : Build cuda.bindings Cython tests
432377 run : |
433378 pip install ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}/*.whl --group ./cuda_bindings/pyproject.toml:test
@@ -508,7 +453,7 @@ jobs:
508453 rmdir $OLD_BASENAME
509454
510455 - name : Build cuda.core wheel
511- uses : pypa/cibuildwheel@294735312765b09d24a2fbec22660ce817587d55 # v4.1.0
456+ uses : pypa/cibuildwheel@4726cd35bb13f7bde50cf2761f2499ac7b3aa32c # v4.1.1
512457 with :
513458 package-dir : ./cuda_core/
514459 output-dir : ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
0 commit comments