Skip to content

Commit 8dfd06e

Browse files
committed
Merge branch 'main' into leof/ci-custom-driver-versions
Conflict resolution in .github/workflows/test-wheel-{linux,windows}.yml: combined upstream's new `continue-on-error: ${{ startsWith(matrix.PY_VER, '3.15') }}` (added in #2108 for Python 3.15) with this branch's switch from matrix.DRIVER to matrix.RUNNER_DRIVER on the runs-on line.
2 parents fa7940a + 4bb52eb commit 8dfd06e

140 files changed

Lines changed: 10838 additions & 669 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
- name: Checkout ${{ github.event.repository.name }}
4848
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
4949
with:
50-
fetch-depth: 0
50+
fetch-depth: 1
5151
ref: ${{ inputs.git-tag }}
5252

5353
- name: Read build CTK version

.github/workflows/build-wheel.yml

Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ jobs:
3434
- "3.13"
3535
- "3.14"
3636
- "3.14t"
37+
- "3.15"
38+
- "3.15t"
3739
name: py${{ matrix.python-version }}
3840
runs-on: ${{ (inputs.host-platform == 'linux-64' && 'linux-amd64-cpu8') ||
3941
(inputs.host-platform == 'linux-aarch64' && 'linux-arm64-cpu8') ||
@@ -42,7 +44,10 @@ jobs:
4244
- name: Checkout ${{ github.event.repository.name }}
4345
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
4446
with:
47+
# Treeless clone: setuptools-scm needs the commit graph (`git describe`)
48+
# but not historical blobs.
4549
fetch-depth: 0
50+
filter: blob:none
4651

4752
- name: Install latest rapidsai/sccache
4853
if: ${{ startsWith(inputs.host-platform, 'linux') }}
@@ -162,12 +167,17 @@ jobs:
162167
cuda-version: ${{ inputs.cuda-version }}
163168

164169
- name: Build cuda.bindings wheel
165-
uses: pypa/cibuildwheel@8d2b08b68458a16aeb24b64e68a09ab1c8e82084 # v3.4.1
170+
uses: pypa/cibuildwheel@54327ab9d35de03b359ac25c97de9417d94639c0 # v4.0.0rc1
166171
with:
167172
package-dir: ./cuda_bindings/
168173
output-dir: ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}
169174
env:
170175
CIBW_BUILD: ${{ env.CIBW_BUILD }}
176+
# TODO: remove cpython-prerelease once 3.15 is officially supported
177+
# Allow CPython pre-release builds (currently 3.15 / 3.15t). This is a
178+
# no-op for stable Python versions because CIBW_BUILD still filters
179+
# the target version.
180+
CIBW_ENABLE: cpython-prerelease
171181
# CIBW mounts the host filesystem under /host
172182
CIBW_ENVIRONMENT_LINUX: >
173183
CUDA_PATH=/host/${{ env.CUDA_PATH }}
@@ -226,12 +236,17 @@ jobs:
226236
if-no-files-found: error
227237

228238
- name: Build cuda.core wheel
229-
uses: pypa/cibuildwheel@8d2b08b68458a16aeb24b64e68a09ab1c8e82084 # v3.4.1
239+
uses: pypa/cibuildwheel@54327ab9d35de03b359ac25c97de9417d94639c0 # v4.0.0rc1
230240
with:
231241
package-dir: ./cuda_core/
232242
output-dir: ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
233243
env:
234244
CIBW_BUILD: ${{ env.CIBW_BUILD }}
245+
# TODO: remove cpython-prerelease once 3.15 is officially supported
246+
# Allow CPython pre-release builds (currently 3.15 / 3.15t). This is a
247+
# no-op for stable Python versions because CIBW_BUILD still filters
248+
# the target version.
249+
CIBW_ENABLE: cpython-prerelease
235250
# CIBW mounts the host filesystem under /host
236251
CIBW_ENVIRONMENT_LINUX: >
237252
CUDA_PATH=/host/${{ env.CUDA_PATH }}
@@ -327,6 +342,8 @@ jobs:
327342
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
328343
with:
329344
python-version: ${{ matrix.python-version }}
345+
# TODO: remove allow-prereleases once 3.15 is officially supported
346+
allow-prereleases: ${{ startsWith(matrix.python-version, '3.15') }}
330347

331348
- name: verify free-threaded build
332349
if: endsWith(matrix.python-version, 't')
@@ -346,6 +363,71 @@ jobs:
346363
run: |
347364
pip install cuda_pathfinder/*.whl
348365
366+
- name: Hide GNU link.exe so Meson finds MSVC link.exe
367+
if: ${{ startsWith(inputs.host-platform, 'win') }}
368+
run: |
369+
if [ -f "/c/Program Files/Git/usr/bin/link.exe" ]; then
370+
mv "/c/Program Files/Git/usr/bin/link.exe" "/c/Program Files/Git/usr/bin/link.exe.bak"
371+
fi
372+
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@54327ab9d35de03b359ac25c97de9417d94639c0 # v4.0.0rc1
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+
349431
- name: Build cuda.bindings Cython tests
350432
run: |
351433
pip install ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}/*.whl --group ./cuda_bindings/pyproject.toml:test
@@ -411,12 +493,17 @@ jobs:
411493
rmdir $OLD_BASENAME
412494
413495
- name: Build cuda.core wheel
414-
uses: pypa/cibuildwheel@8d2b08b68458a16aeb24b64e68a09ab1c8e82084 # v3.4.1
496+
uses: pypa/cibuildwheel@54327ab9d35de03b359ac25c97de9417d94639c0 # v4.0.0rc1
415497
with:
416498
package-dir: ./cuda_core/
417499
output-dir: ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
418500
env:
419501
CIBW_BUILD: ${{ env.CIBW_BUILD }}
502+
# TODO: remove cpython-prerelease once 3.15 is officially supported
503+
# Allow CPython pre-release builds (currently 3.15 / 3.15t). This is a
504+
# no-op for stable Python versions because CIBW_BUILD still filters
505+
# the target version.
506+
CIBW_ENABLE: cpython-prerelease
420507
# CIBW mounts the host filesystem under /host
421508
CIBW_ENVIRONMENT_LINUX: >
422509
CUDA_PATH=/host/${{ env.CUDA_PATH }}

.github/workflows/ci.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- name: Checkout repository
3737
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
3838
with:
39-
fetch-depth: 0
39+
fetch-depth: 1
4040
- name: Get CUDA build versions
4141
id: get-vars
4242
run: |
@@ -107,7 +107,10 @@ jobs:
107107
- name: Checkout repository
108108
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
109109
with:
110+
# Treeless clone: commit graph is needed for `git merge-base` and
111+
# `git diff --name-only` below, but historical blobs aren't.
110112
fetch-depth: 0
113+
filter: blob:none
111114

112115
# copy-pr-bot pushes every PR (whether it targets main or a backport
113116
# branch such as 12.9.x) to pull-request/<N>, so the base branch

.github/workflows/cleanup-pr-previews.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ jobs:
3030
- name: Checkout repository
3131
uses: actions/checkout@v6.0.3
3232
with:
33-
# Fetch all history and branches for worktree operations
33+
# Treeless clone: `git worktree add gh-pages` needs the commit graph,
34+
# but historical blobs aren't required.
3435
fetch-depth: 0
36+
filter: blob:none
3537

3638
- name: Configure git identity
3739
run: |

.github/workflows/coverage.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,10 @@ jobs:
6666
- name: Checkout ${{ github.event.repository.name }}
6767
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
6868
with:
69+
# Treeless clone: setuptools-scm needs the commit graph (`git describe`)
70+
# but not historical blobs.
6971
fetch-depth: 0
72+
filter: blob:none
7073

7174
- name: Fix workspace ownership
7275
run: |
@@ -198,7 +201,10 @@ jobs:
198201
- name: Checkout ${{ github.event.repository.name }}
199202
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
200203
with:
204+
# Treeless clone: setuptools-scm needs the commit graph (`git describe`)
205+
# but not historical blobs.
201206
fetch-depth: 0
207+
filter: blob:none
202208

203209
- name: Set up Python
204210
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
@@ -269,7 +275,7 @@ jobs:
269275
- name: Checkout ${{ github.event.repository.name }}
270276
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
271277
with:
272-
fetch-depth: 0
278+
fetch-depth: 1
273279

274280
- name: Setup proxy cache
275281
uses: nv-gha-runners/setup-proxy-cache@main

.github/workflows/release-cuda-pathfinder.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ jobs:
6161
6262
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
6363
with:
64-
fetch-depth: 0
64+
# lookup-run-id resolves the git tag to a SHA; we need tags but not history.
65+
fetch-depth: 1
66+
fetch-tags: true
6567
# Resolve only the exact tag ref; checkout fails if the tag does not exist.
6668
ref: refs/tags/${{ steps.vars.outputs.tag }}
6769

@@ -161,7 +163,7 @@ jobs:
161163
steps:
162164
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
163165
with:
164-
fetch-depth: 0
166+
fetch-depth: 1
165167
ref: ${{ needs.prepare.outputs.tag }}
166168

167169
- name: Create source archive

.github/workflows/release-upload.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
- name: Checkout Source
4444
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
4545
with:
46-
fetch-depth: 0
46+
fetch-depth: 1
4747
ref: ${{ inputs.git-tag }}
4848

4949
- name: Create Release Directory

.github/workflows/release.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ jobs:
4343
- name: Checkout Source
4444
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
4545
with:
46-
# fetch-depth: 0 is required so the lookup-run-id script can access all git tags
47-
fetch-depth: 0
46+
# lookup-run-id resolves the git tag to a SHA; we need tags but not history.
47+
fetch-depth: 1
48+
fetch-tags: true
4849

4950
- name: Determine Run ID
5051
id: lookup-run-id
@@ -62,7 +63,7 @@ jobs:
6263
- name: Checkout Source
6364
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
6465
with:
65-
fetch-depth: 0
66+
fetch-depth: 1
6667

6768
- name: Check or create draft release for the tag
6869
env:

.github/workflows/test-sdist-linux.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ jobs:
2828
- name: Checkout ${{ github.event.repository.name }}
2929
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
3030
with:
31+
# Treeless clone: setuptools-scm (invoked via `python -m build`) needs
32+
# the commit graph (`git describe`) but not historical blobs.
3133
fetch-depth: 0
34+
filter: blob:none
3235

3336
- name: Set up Python
3437
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0

.github/workflows/test-sdist-windows.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ jobs:
3434
- name: Checkout ${{ github.event.repository.name }}
3535
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
3636
with:
37+
# Treeless clone: setuptools-scm (invoked via `python -m build`) needs
38+
# the commit graph (`git describe`) but not historical blobs.
3739
fetch-depth: 0
40+
filter: blob:none
3841

3942
- name: Set up Python
4043
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0

0 commit comments

Comments
 (0)