From 4843067553fa3fd8daa13149ba6f1832f1feb715 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Thu, 5 Mar 2026 10:45:49 -0600 Subject: [PATCH 01/14] enforce a floor on libnvjitlink, build wheels with CUDA 13.0.x, test wheels against mix of CTK versions --- .github/workflows/build.yaml | 10 +-- .github/workflows/pr.yaml | 10 +-- ci/build_wheel_cudf.sh | 3 + ci/build_wheel_cudf_polars.sh | 3 + ci/build_wheel_dask_cudf.sh | 3 + ci/build_wheel_libcudf.sh | 3 + ci/build_wheel_pylibcudf.sh | 3 + ci/test_wheel_cudf.sh | 3 + ci/test_wheel_cudf_polars.sh | 3 + ci/test_wheel_dask_cudf.sh | 3 + ci/use_wheels_from_prs.sh | 65 +++++++++++++++ conda/recipes/libcudf/recipe.yaml | 2 +- dependencies.yaml | 83 ++++++++++++++++++- .../dependencies.yaml | 51 +++++++++++- python/cudf/pyproject.toml | 2 +- python/libcudf/pyproject.toml | 2 +- 16 files changed, 228 insertions(+), 21 deletions(-) create mode 100644 ci/use_wheels_from_prs.sh diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b14fc74ecc6..8466eccc7af 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -104,7 +104,7 @@ jobs: wheel-build-libcudf: needs: [telemetry-setup] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk with: # build for every combination of arch and CUDA version, but only for the latest Python matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) @@ -130,7 +130,7 @@ jobs: wheel-build-pylibcudf: needs: [telemetry-setup, wheel-build-libcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -157,7 +157,7 @@ jobs: wheel-build-cudf: needs: [telemetry-setup, wheel-build-pylibcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -184,7 +184,7 @@ jobs: wheel-build-dask-cudf: needs: [telemetry-setup, wheel-build-cudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -211,7 +211,7 @@ jobs: wheel-build-cudf-polars: needs: [telemetry-setup, wheel-build-pylibcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 34bafa18337..abdd8bdf8ee 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -418,7 +418,7 @@ jobs: wheel-build-libcudf: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk with: # build for every combination of arch and CUDA version, but only for the latest Python matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) @@ -430,7 +430,7 @@ jobs: wheel-build-pylibcudf: needs: [checks, wheel-build-libcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk with: build_type: pull-request node_type: cpu8 @@ -442,7 +442,7 @@ jobs: wheel-build-cudf: needs: wheel-build-pylibcudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk with: build_type: pull-request node_type: cpu8 @@ -464,7 +464,7 @@ jobs: wheel-build-cudf-polars: needs: wheel-build-pylibcudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -508,7 +508,7 @@ jobs: wheel-build-dask-cudf: needs: wheel-build-cudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@python-3.14 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) diff --git a/ci/build_wheel_cudf.sh b/ci/build_wheel_cudf.sh index 3623172c9f3..b48feea98d8 100755 --- a/ci/build_wheel_cudf.sh +++ b/ci/build_wheel_cudf.sh @@ -6,6 +6,9 @@ set -euo pipefail source rapids-init-pip +# TODO(jameslamb): revert before merging +source ci/use_wheels_from_prs.sh + package_dir="python/cudf" RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" diff --git a/ci/build_wheel_cudf_polars.sh b/ci/build_wheel_cudf_polars.sh index 5c2ce824b05..9825a63ca6c 100755 --- a/ci/build_wheel_cudf_polars.sh +++ b/ci/build_wheel_cudf_polars.sh @@ -6,6 +6,9 @@ set -euo pipefail source rapids-init-pip +# TODO(jameslamb): revert before merging +source ci/use_wheels_from_prs.sh + package_dir="python/cudf_polars" ./ci/build_wheel.sh cudf-polars ${package_dir} diff --git a/ci/build_wheel_dask_cudf.sh b/ci/build_wheel_dask_cudf.sh index 65e16c34bc8..91a8a16d29e 100755 --- a/ci/build_wheel_dask_cudf.sh +++ b/ci/build_wheel_dask_cudf.sh @@ -6,6 +6,9 @@ set -euo pipefail source rapids-init-pip +# TODO(jameslamb): revert before merging +source ci/use_wheels_from_prs.sh + package_dir="python/dask_cudf" ./ci/build_wheel.sh dask-cudf ${package_dir} diff --git a/ci/build_wheel_libcudf.sh b/ci/build_wheel_libcudf.sh index 3680f1ebe10..e465d92092d 100755 --- a/ci/build_wheel_libcudf.sh +++ b/ci/build_wheel_libcudf.sh @@ -6,6 +6,9 @@ set -euo pipefail source rapids-init-pip +# TODO(jameslamb): revert before merging +source ci/use_wheels_from_prs.sh + package_name="libcudf" package_dir="python/libcudf" diff --git a/ci/build_wheel_pylibcudf.sh b/ci/build_wheel_pylibcudf.sh index 0c49aba0997..90c8be2495a 100755 --- a/ci/build_wheel_pylibcudf.sh +++ b/ci/build_wheel_pylibcudf.sh @@ -6,6 +6,9 @@ set -euo pipefail source rapids-init-pip +# TODO(jameslamb): revert before merging +source ci/use_wheels_from_prs.sh + package_dir="python/pylibcudf" RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" diff --git a/ci/test_wheel_cudf.sh b/ci/test_wheel_cudf.sh index a890c11f88d..c7384382534 100755 --- a/ci/test_wheel_cudf.sh +++ b/ci/test_wheel_cudf.sh @@ -6,6 +6,9 @@ set -euo pipefail source rapids-init-pip +# TODO(jameslamb): revert before merging +source ci/use_wheels_from_prs.sh + RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" # Download the cudf, libcudf, and pylibcudf built in the previous step diff --git a/ci/test_wheel_cudf_polars.sh b/ci/test_wheel_cudf_polars.sh index abdaeebd165..44fcf307bc6 100755 --- a/ci/test_wheel_cudf_polars.sh +++ b/ci/test_wheel_cudf_polars.sh @@ -6,6 +6,9 @@ set -euo pipefail source rapids-init-pip +# TODO(jameslamb): revert before merging +source ci/use_wheels_from_prs.sh + rapids-logger "Download wheels" RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" diff --git a/ci/test_wheel_dask_cudf.sh b/ci/test_wheel_dask_cudf.sh index 636ced077d7..e14548a441e 100755 --- a/ci/test_wheel_dask_cudf.sh +++ b/ci/test_wheel_dask_cudf.sh @@ -6,6 +6,9 @@ set -euo pipefail source rapids-init-pip +# TODO(jameslamb): revert before merging +source ci/use_wheels_from_prs.sh + RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" DASK_CUDF_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="dask_cudf_${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-download-wheels-from-github python) diff --git a/ci/use_wheels_from_prs.sh b/ci/use_wheels_from_prs.sh new file mode 100644 index 00000000000..e575eb706bf --- /dev/null +++ b/ci/use_wheels_from_prs.sh @@ -0,0 +1,65 @@ +#!/bin/bash +# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION. +# SPDX-License-Identifier: Apache-2.0 + +# initialize PIP_CONSTRAINT +source rapids-init-pip + +RAPIDS_PY_CUDA_SUFFIX=$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}") + +# download wheels, store the directories holding them in variables +https://github.com/rapidsai/kvikio/pull/942/commits/b71d3beaca46a0ec8d54a948c1c9bca5e4359b53 +KVIKIO_COMMIT=b71d3beaca46a0ec8d54a948c1c9bca5e4359b53 +LIBKVIKIO_WHEELHOUSE=$( + RAPIDS_PY_WHEEL_NAME="libkvikio_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact kvikio 942 cpp wheel "${KVIKIO_COMMIT}" +) +KVIKIO_WHEELHOUSE=$( + rapids-get-pr-artifact kvikio 942 python wheel --pkg_name kvikio --stable "${KVIKIO_COMMIT}" +) + +RMM_COMMIT=af96977c404565bbb0657c490d407a561cedc3fc +LIBRMM_WHEELHOUSE=$( + RAPIDS_PY_WHEEL_NAME="librmm_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact rmm 2270 cpp wheel "${RMM_COMMIT}" +) +RMM_WHEELHOUSE=$( + rapids-get-pr-artifact rmm 2270 python wheel --pkg_name rmm --stable "${RMM_COMMIT}" +) + +RAFT_COMMIT=b7b9c53d7c492937cc9214cbd292039d6551d996 +LIBRAFT_WHEELHOUSE=$( + RAPIDS_PY_WHEEL_NAME="libraft_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact raft 2971 cpp wheel "${RAFT_COMMIT}" +) +PYLIBRAFT_WHEELHOUSE=$( + rapids-get-pr-artifact raft 2971 python wheel --pkg_name pylibraft --stable "${RAFT_COMMIT}" +) +RAFT_DASK_WHEELHOUSE=$( + rapids-get-pr-artifact raft 2971 python wheel --pkg_name raft_dask --stable "${RAFT_COMMIT}" +) + +UCXX_COMMIT=b1e5230d5b1ac47a11cc2d421b3af91be50b39e4 +DISTRIBUTED_UCXX_WHEELHOUSE=$( + RAPIDS_PY_WHEEL_NAME="${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-get-pr-artifact --pkg_name distributed-ucxx ucxx 604 python wheel +) +LIBUCXX_WHEELHOUSE=$( + RAPIDS_PY_WHEEL_NAME="libucxx_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact ucxx 604 cpp wheel "${UCXX_COMMIT}" +) +UCXX_WHEELHOUSE=$( + rapids-get-pr-artifact ucxx 604 python wheel --pkg_name ucxx --stable "${UCXX_COMMIT}" +) + +# write a pip constraints file saying e.g. "whenever you encounter a requirement for 'librmm-cu12', use this wheel" +cat >> "${PIP_CONSTRAINT}" <=${{ cuda_version }} + - ${{ pin_compatible("libnvjitlink", lower_bound="x.x", upper_bound="x") }} - if: linux and x86_64 then: - libcufile diff --git a/dependencies.yaml b/dependencies.yaml index 2f3e79ff2be..deed93e90a8 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -556,6 +556,8 @@ dependencies: - output_types: [requirements, pyproject] packages: - pyarrow>=19.0.0 + # 'cuda_version' intentionally does not contain fallback entries... we want + # a loud error if an unsupported 'cuda' value is passed cuda_version: specific: - output_types: conda @@ -584,6 +586,51 @@ dependencies: cuda: "13.1" packages: - cuda-version=13.1 + - output_types: requirements + matrices: + # if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels + # (e.g. for DLFW and pip devcontainers) + - matrix: + use_cuda_wheels: "false" + packages: + - matrix: + arch: aarch64 + cuda: "12.2" + use_cuda_wheels: "true" + packages: + # some components (like nvidia-cublas-cu12 and nvidia-cuda-nvcc-cu12) didn't have + # aarch64 wheels until CTK 12.3, so allow a slightly looser bound here + - cuda-toolkit>=12.2,<12.4 + - matrix: + cuda: "12.2" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==12.2.* + - matrix: + cuda: "12.5" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==12.5.* + - matrix: + cuda: "12.8" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==12.8.* + - matrix: + cuda: "12.9" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==12.9.* + - matrix: + cuda: "13.0" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==13.0.* + - matrix: + cuda: "13.1" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==13.1.* cuda: common: - output_types: [conda] @@ -597,14 +644,40 @@ dependencies: specific: - output_types: [requirements, pyproject] matrices: + # if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels + # (e.g. for DLFW and pip devcontainers) - matrix: - cuda: "12.*" + use_cuda_wheels: "false" packages: - - nvidia-nvjitlink-cu12>=12.9 - # fallback to CUDA 13 versions if 'cuda' is '13.*' or not provided + # We always want nvJitLink >= whatever minor version was available in the build environment + # nvJitLink tends to follow the CTK's minor versions, but check at https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html + # + # ref: https://github.com/rapidsai/cudf/pull/20873 + - matrix: + cuda: "12.9" + use_cuda_wheels: "true" + packages: + - nvidia-nvjitlink-cu12>=12.9,<13 + - matrix: + cuda: "13.0" + use_cuda_wheels: "true" + packages: + - nvidia-nvjitlink>=13.0,<14 + - matrix: + cuda: "13.1" + use_cuda_wheels: "true" + packages: + - &nvjitlink_cu13 nvidia-nvjitlink>=13.1,<14 + - matrix: + cuda: "13.*" + use_cuda_wheels: "true" + packages: + - *nvjitlink_cu13 + # if no matching matrix selectors passed, list the unsuffixed packages + # (just as a source of documentation, as this populates pyproject.toml in source control) - matrix: packages: - - nvidia-nvjitlink>=13.0 + - nvidia-nvjitlink>=12,<14 develop: common: - output_types: [conda, requirements] @@ -730,11 +803,13 @@ dependencies: - matrix: cuda: "12.*" cuda_suffixed: "true" + use_cuda_wheels: "true" packages: - cuda-toolkit[nvcc,nvrtc]==12.* - matrix: cuda: "13.*" cuda_suffixed: "true" + use_cuda_wheels: "true" packages: - cuda-toolkit[nvcc,nvrtc]==13.* - {matrix: null, packages: []} diff --git a/python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml b/python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml index 0c49aee2acb..8437fe47478 100644 --- a/python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml +++ b/python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml @@ -138,14 +138,12 @@ dependencies: - output_types: conda packages: - pre-commit + # 'cuda_version' intentionally does not contain fallback entries... we want + # a loud error if an unsupported 'cuda' value is passed cuda_version: specific: - output_types: conda matrices: - - matrix: - cuda: "12.0" - packages: - - cuda-version=12.0 - matrix: cuda: "12.2" packages: @@ -170,6 +168,51 @@ dependencies: cuda: "13.1" packages: - cuda-version=13.1 + - output_types: requirements + matrices: + # if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels + # (e.g. for DLFW and pip devcontainers) + - matrix: + use_cuda_wheels: "false" + packages: + - matrix: + arch: aarch64 + cuda: "12.2" + use_cuda_wheels: "true" + packages: + # some components (like nvidia-cublas-cu12 and nvidia-cuda-nvcc-cu12) didn't have + # aarch64 wheels until CTK 12.3, so allow a slightly looser bound here + - cuda-toolkit>=12.2,<12.4 + - matrix: + cuda: "12.2" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==12.2.* + - matrix: + cuda: "12.5" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==12.5.* + - matrix: + cuda: "12.8" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==12.8.* + - matrix: + cuda: "12.9" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==12.9.* + - matrix: + cuda: "13.0" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==13.0.* + - matrix: + cuda: "13.1" + use_cuda_wheels: "true" + packages: + - cuda-toolkit==13.1.* py_version: specific: - output_types: conda diff --git a/python/cudf/pyproject.toml b/python/cudf/pyproject.toml index 4313b6992a0..17447bbbb09 100644 --- a/python/cudf/pyproject.toml +++ b/python/cudf/pyproject.toml @@ -121,7 +121,7 @@ xfail_strict = true [tool.rapids-build-backend] build-backend = "scikit_build_core.build" dependencies-file = "../../dependencies.yaml" -matrix-entry = "cuda_suffixed=true" +matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true" requires = [ "cmake>=3.30.4", "cython>=3.2.2", diff --git a/python/libcudf/pyproject.toml b/python/libcudf/pyproject.toml index 173b3e36d24..d44287af8c2 100644 --- a/python/libcudf/pyproject.toml +++ b/python/libcudf/pyproject.toml @@ -73,6 +73,6 @@ requires = [ "librmm==26.4.*,>=0.0.0a0", "ninja", "nvidia-libnvcomp==5.1.0.21", - "nvidia-nvjitlink>=13.0", + "nvidia-nvjitlink>=12,<14", "rapids-logger==0.2.*,>=0.0.0a0", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. From 395396ecedfd7847cf341324d9e8a15e95e2c0c8 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Thu, 5 Mar 2026 11:49:43 -0600 Subject: [PATCH 02/14] more wheel-testing script changes --- ci/test_cudf_polars_polars_tests.sh | 34 +++++++++++++++++++++++++-- ci/test_cudf_polars_with_rapidsmpf.sh | 20 ++++++++++++++++ ci/test_wheel_cudf.sh | 24 +++++++++++++++---- ci/test_wheel_cudf_polars.sh | 17 ++++++++++---- ci/test_wheel_dask_cudf.sh | 15 ++++++++---- 5 files changed, 94 insertions(+), 16 deletions(-) diff --git a/ci/test_cudf_polars_polars_tests.sh b/ci/test_cudf_polars_polars_tests.sh index f8365c1dc5b..63d24fa1177 100755 --- a/ci/test_cudf_polars_polars_tests.sh +++ b/ci/test_cudf_polars_polars_tests.sh @@ -4,8 +4,18 @@ set -euo pipefail +# TODO(jameslamb): revert before merging +git clone --branch generate-pip-constraints \ + https://github.com/rapidsai/gha-tools.git \ + /tmp/gha-tools + +export PATH="/tmp/gha-tools/tools:${PATH}" + source rapids-init-pip +# TODO(jameslamb): revert before merging +source ci/use_wheels_from_prs.sh + rapids-logger "Download wheels" RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" @@ -13,14 +23,24 @@ CUDF_POLARS_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="cudf_polars_${RAPIDS_PY_CUDA_SUFF LIBCUDF_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libcudf_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp) PYLIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-package-name "wheel_python" pylibcudf --stable --cuda "$RAPIDS_CUDA_VERSION")") +# generate constraints (possibly pinning to oldest support versions of dependencies) +rapids-generate-pip-constraints py_test_cudf_polars "${PIP_CONSTRAINT}" + rapids-logger "Install libcudf, pylibcudf and cudf_polars" + +# notes: +# +# * echo to expand wildcard before adding `[test]` requires for pip +# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because +# that environment variable is ignored if any other --constraint are passed via the CLI +# rapids-pip-retry install \ -v \ + --constraint "${PIP_CONSTRAINT}" \ "$(echo "${CUDF_POLARS_WHEELHOUSE}"/cudf_polars_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test]" \ "$(echo "${LIBCUDF_WHEELHOUSE}"/libcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \ "$(echo "${PYLIBCUDF_WHEELHOUSE}"/pylibcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" - TAG=$(python -c 'import polars; print(f"py-{polars.__version__}")') rapids-logger "Clone polars to ${TAG}" git clone https://github.com/pola-rs/polars.git --branch "${TAG}" --depth 1 @@ -55,7 +75,17 @@ sed -i 's/^pandas-stubs/pandas-stubs<3/' polars/py-polars/requirements-dev.txt # existing dependency to rewrite. echo "pyparsing>=3.0.0,<3.3.0" >> polars/py-polars/requirements-dev.txt -rapids-pip-retry install -r polars/py-polars/requirements-dev.txt -r polars/py-polars/requirements-ci.txt +# notes: +# +# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because +# that environment variable is ignored if any other --constraint are passed via the CLI +# +rapids-pip-retry install \ + -v \ + --prefer-binary \ + --constraint "${PIP_CONSTRAINT}" \ + -r polars/py-polars/requirements-dev.txt \ + -r polars/py-polars/requirements-ci.txt # shellcheck disable=SC2317 function set_exitcode() diff --git a/ci/test_cudf_polars_with_rapidsmpf.sh b/ci/test_cudf_polars_with_rapidsmpf.sh index 6e9ad45afe3..08207b47d8a 100755 --- a/ci/test_cudf_polars_with_rapidsmpf.sh +++ b/ci/test_cudf_polars_with_rapidsmpf.sh @@ -4,8 +4,18 @@ set -euo pipefail +# TODO(jameslamb): revert before merging +git clone --branch generate-pip-constraints \ + https://github.com/rapidsai/gha-tools.git \ + /tmp/gha-tools + +export PATH="/tmp/gha-tools/tools:${PATH}" + source rapids-init-pip +# TODO(jameslamb): revert before merging +source ci/use_wheels_from_prs.sh + rapids-logger "Download wheels" RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" @@ -15,8 +25,18 @@ PYLIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-package-name "wheel rapids-logger "Installing cudf_polars and its dependencies (including rapidsmpf)" +# generate constraints (possibly pinning to oldest support versions of dependencies) +rapids-generate-pip-constraints py_test_cudf_polars "${PIP_CONSTRAINT}" + +# notes: +# +# * echo to expand wildcard before adding `[test]` requires for pip +# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because +# that environment variable is ignored if any other --constraint are passed via the CLI +# rapids-pip-retry install \ -v \ + --prefer-binary \ --constraint "${PIP_CONSTRAINT}" \ "$(echo "${CUDF_POLARS_WHEELHOUSE}"/cudf_polars_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test,experimental,rapidsmpf]" \ "$(echo "${LIBCUDF_WHEELHOUSE}"/libcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \ diff --git a/ci/test_wheel_cudf.sh b/ci/test_wheel_cudf.sh index c7384382534..b5904c1f2d9 100755 --- a/ci/test_wheel_cudf.sh +++ b/ci/test_wheel_cudf.sh @@ -4,6 +4,13 @@ set -euo pipefail +# TODO(jameslamb): revert before merging +git clone --branch generate-pip-constraints \ + https://github.com/rapidsai/gha-tools.git \ + /tmp/gha-tools + +export PATH="/tmp/gha-tools/tools:${PATH}" + source rapids-init-pip # TODO(jameslamb): revert before merging @@ -19,7 +26,7 @@ PYLIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-package-name "wheel rapids-logger "Install pylibcudf and its basic dependencies in a virtual environment" # generate constraints (possibly pinning to oldest support versions of dependencies) -rapids-generate-pip-constraints py_test_cudf ./constraints.txt +rapids-generate-pip-constraints py_test_cudf "${PIP_CONSTRAINT}" RESULTS_DIR=${RAPIDS_TESTS_DIR:-"$(mktemp -d)"} RAPIDS_TESTS_DIR=${RAPIDS_TESTS_DIR:-"${RESULTS_DIR}/test-results"}/ @@ -28,9 +35,16 @@ mkdir -p "${RAPIDS_TESTS_DIR}" # To test pylibcudf without its optional dependencies, we create a virtual environment python -m venv env . env/bin/activate + +# notes: +# +# * echo to expand wildcard before adding `[test]` requires for pip +# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because +# that environment variable is ignored if any other --constraint are passed via the CLI +# rapids-pip-retry install \ -v \ - --constraint ./constraints.txt \ + --prefer-binary \ --constraint "${PIP_CONSTRAINT}" \ "$(echo "${LIBCUDF_WHEELHOUSE}"/libcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \ "$(echo "${PYLIBCUDF_WHEELHOUSE}"/pylibcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test]" @@ -51,12 +65,12 @@ rapids-logger "Install cudf, pylibcudf, and test requirements" # notes: # # * echo to expand wildcard before adding `[test]` requires for pip -# * need to provide --constraint="${PIP_CONSTRAINT}" because that environment variable is -# ignored if any other --constraint are passed via the CLI +# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because +# that environment variable is ignored if any other --constraint are passed via the CLI # rapids-pip-retry install \ -v \ - --constraint ./constraints.txt \ + --prefer-binary \ --constraint "${PIP_CONSTRAINT}" \ "$(echo "${CUDF_WHEELHOUSE}"/cudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test]" \ "$(echo "${LIBCUDF_WHEELHOUSE}"/libcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \ diff --git a/ci/test_wheel_cudf_polars.sh b/ci/test_wheel_cudf_polars.sh index 44fcf307bc6..b5f4ba50899 100755 --- a/ci/test_wheel_cudf_polars.sh +++ b/ci/test_wheel_cudf_polars.sh @@ -4,6 +4,13 @@ set -euo pipefail +# TODO(jameslamb): revert before merging +git clone --branch generate-pip-constraints \ + https://github.com/rapidsai/gha-tools.git \ + /tmp/gha-tools + +export PATH="/tmp/gha-tools/tools:${PATH}" + source rapids-init-pip # TODO(jameslamb): revert before merging @@ -21,17 +28,17 @@ PYLIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-package-name "wheel rapids-logger "Installing cudf_polars and its dependencies" # generate constraints (possibly pinning to oldest support versions of dependencies) -rapids-generate-pip-constraints py_test_cudf_polars ./constraints.txt +rapids-generate-pip-constraints py_test_cudf_polars "${PIP_CONSTRAINT}" # notes: # -# * echo to expand wildcard before adding `[test,experimental]` requires for pip -# * need to provide --constraint="${PIP_CONSTRAINT}" because that environment variable is -# ignored if any other --constraint are passed via the CLI +# * echo to expand wildcard before adding `[test]` requires for pip +# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because +# that environment variable is ignored if any other --constraint are passed via the CLI # rapids-pip-retry install \ -v \ - --constraint ./constraints.txt \ + --prefer-binary \ --constraint "${PIP_CONSTRAINT}" \ "$(echo "${CUDF_POLARS_WHEELHOUSE}"/cudf_polars_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test,experimental]" \ "$(echo "${LIBCUDF_WHEELHOUSE}"/libcudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \ diff --git a/ci/test_wheel_dask_cudf.sh b/ci/test_wheel_dask_cudf.sh index e14548a441e..d0de1f11903 100755 --- a/ci/test_wheel_dask_cudf.sh +++ b/ci/test_wheel_dask_cudf.sh @@ -4,6 +4,13 @@ set -euo pipefail +# TODO(jameslamb): revert before merging +git clone --branch generate-pip-constraints \ + https://github.com/rapidsai/gha-tools.git \ + /tmp/gha-tools + +export PATH="/tmp/gha-tools/tools:${PATH}" + source rapids-init-pip # TODO(jameslamb): revert before merging @@ -20,17 +27,17 @@ PYLIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-package-name "wheel rapids-logger "Install dask_cudf, cudf, pylibcudf, and test requirements" # generate constraints (possibly pinning to oldest support versions of dependencies) -rapids-generate-pip-constraints py_test_dask_cudf ./constraints.txt +rapids-generate-pip-constraints py_test_dask_cudf "${PIP_CONSTRAINT}" # notes: # # * echo to expand wildcard before adding `[test]` requires for pip -# * need to provide --constraint="${PIP_CONSTRAINT}" because that environment variable is -# ignored if any other --constraint are passed via the CLI +# * just providing --constraint="${PIP_CONSTRAINT}" to be explicit, and because +# that environment variable is ignored if any other --constraint are passed via the CLI # rapids-pip-retry install \ -v \ - --constraint ./constraints.txt \ + --prefer-binary \ --constraint "${PIP_CONSTRAINT}" \ "$(echo "${CUDF_WHEELHOUSE}"/cudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)" \ "$(echo "${DASK_CUDF_WHEELHOUSE}"/dask_cudf_"${RAPIDS_PY_CUDA_SUFFIX}"*.whl)[test]" \ From 7db1f079777b81cde8db375a9087ea8470974fc4 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Thu, 5 Mar 2026 12:58:28 -0600 Subject: [PATCH 03/14] ugh, left-behind URL --- ci/use_wheels_from_prs.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/ci/use_wheels_from_prs.sh b/ci/use_wheels_from_prs.sh index e575eb706bf..bda4c4e50f7 100644 --- a/ci/use_wheels_from_prs.sh +++ b/ci/use_wheels_from_prs.sh @@ -8,7 +8,6 @@ source rapids-init-pip RAPIDS_PY_CUDA_SUFFIX=$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}") # download wheels, store the directories holding them in variables -https://github.com/rapidsai/kvikio/pull/942/commits/b71d3beaca46a0ec8d54a948c1c9bca5e4359b53 KVIKIO_COMMIT=b71d3beaca46a0ec8d54a948c1c9bca5e4359b53 LIBKVIKIO_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="libkvikio_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact kvikio 942 cpp wheel "${KVIKIO_COMMIT}" From 43a32484c3f4884c88e0dcf2622e1f54fad23a60 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Mon, 9 Mar 2026 10:05:25 -0500 Subject: [PATCH 04/14] new commits, remove gha-tools fork --- ci/test_cudf_polars_polars_tests.sh | 7 ------- ci/test_cudf_polars_with_rapidsmpf.sh | 7 ------- ci/test_wheel_cudf.sh | 7 ------- ci/test_wheel_cudf_polars.sh | 7 ------- ci/test_wheel_dask_cudf.sh | 7 ------- ci/use_wheels_from_prs.sh | 8 ++++---- 6 files changed, 4 insertions(+), 39 deletions(-) diff --git a/ci/test_cudf_polars_polars_tests.sh b/ci/test_cudf_polars_polars_tests.sh index 63d24fa1177..7a1abe75c89 100755 --- a/ci/test_cudf_polars_polars_tests.sh +++ b/ci/test_cudf_polars_polars_tests.sh @@ -4,13 +4,6 @@ set -euo pipefail -# TODO(jameslamb): revert before merging -git clone --branch generate-pip-constraints \ - https://github.com/rapidsai/gha-tools.git \ - /tmp/gha-tools - -export PATH="/tmp/gha-tools/tools:${PATH}" - source rapids-init-pip # TODO(jameslamb): revert before merging diff --git a/ci/test_cudf_polars_with_rapidsmpf.sh b/ci/test_cudf_polars_with_rapidsmpf.sh index 08207b47d8a..82a347425ab 100755 --- a/ci/test_cudf_polars_with_rapidsmpf.sh +++ b/ci/test_cudf_polars_with_rapidsmpf.sh @@ -4,13 +4,6 @@ set -euo pipefail -# TODO(jameslamb): revert before merging -git clone --branch generate-pip-constraints \ - https://github.com/rapidsai/gha-tools.git \ - /tmp/gha-tools - -export PATH="/tmp/gha-tools/tools:${PATH}" - source rapids-init-pip # TODO(jameslamb): revert before merging diff --git a/ci/test_wheel_cudf.sh b/ci/test_wheel_cudf.sh index b5904c1f2d9..490b7c2a5e3 100755 --- a/ci/test_wheel_cudf.sh +++ b/ci/test_wheel_cudf.sh @@ -4,13 +4,6 @@ set -euo pipefail -# TODO(jameslamb): revert before merging -git clone --branch generate-pip-constraints \ - https://github.com/rapidsai/gha-tools.git \ - /tmp/gha-tools - -export PATH="/tmp/gha-tools/tools:${PATH}" - source rapids-init-pip # TODO(jameslamb): revert before merging diff --git a/ci/test_wheel_cudf_polars.sh b/ci/test_wheel_cudf_polars.sh index b5f4ba50899..b0a82e97b80 100755 --- a/ci/test_wheel_cudf_polars.sh +++ b/ci/test_wheel_cudf_polars.sh @@ -4,13 +4,6 @@ set -euo pipefail -# TODO(jameslamb): revert before merging -git clone --branch generate-pip-constraints \ - https://github.com/rapidsai/gha-tools.git \ - /tmp/gha-tools - -export PATH="/tmp/gha-tools/tools:${PATH}" - source rapids-init-pip # TODO(jameslamb): revert before merging diff --git a/ci/test_wheel_dask_cudf.sh b/ci/test_wheel_dask_cudf.sh index d0de1f11903..96e685a2085 100755 --- a/ci/test_wheel_dask_cudf.sh +++ b/ci/test_wheel_dask_cudf.sh @@ -4,13 +4,6 @@ set -euo pipefail -# TODO(jameslamb): revert before merging -git clone --branch generate-pip-constraints \ - https://github.com/rapidsai/gha-tools.git \ - /tmp/gha-tools - -export PATH="/tmp/gha-tools/tools:${PATH}" - source rapids-init-pip # TODO(jameslamb): revert before merging diff --git a/ci/use_wheels_from_prs.sh b/ci/use_wheels_from_prs.sh index bda4c4e50f7..e265a4dacf5 100644 --- a/ci/use_wheels_from_prs.sh +++ b/ci/use_wheels_from_prs.sh @@ -8,7 +8,7 @@ source rapids-init-pip RAPIDS_PY_CUDA_SUFFIX=$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}") # download wheels, store the directories holding them in variables -KVIKIO_COMMIT=b71d3beaca46a0ec8d54a948c1c9bca5e4359b53 +KVIKIO_COMMIT=3d53f6a63d9ca8cb17b8fc89645b67f2bf1c012f LIBKVIKIO_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="libkvikio_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact kvikio 942 cpp wheel "${KVIKIO_COMMIT}" ) @@ -16,7 +16,7 @@ KVIKIO_WHEELHOUSE=$( rapids-get-pr-artifact kvikio 942 python wheel --pkg_name kvikio --stable "${KVIKIO_COMMIT}" ) -RMM_COMMIT=af96977c404565bbb0657c490d407a561cedc3fc +RMM_COMMIT=0465f7cbc3acfa95dc5b83bdc6682db108e8b1b2 LIBRMM_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="librmm_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact rmm 2270 cpp wheel "${RMM_COMMIT}" ) @@ -24,7 +24,7 @@ RMM_WHEELHOUSE=$( rapids-get-pr-artifact rmm 2270 python wheel --pkg_name rmm --stable "${RMM_COMMIT}" ) -RAFT_COMMIT=b7b9c53d7c492937cc9214cbd292039d6551d996 +RAFT_COMMIT=5258ae71a6e0e0b10308329957b13358d3585b84 LIBRAFT_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="libraft_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact raft 2971 cpp wheel "${RAFT_COMMIT}" ) @@ -35,7 +35,7 @@ RAFT_DASK_WHEELHOUSE=$( rapids-get-pr-artifact raft 2971 python wheel --pkg_name raft_dask --stable "${RAFT_COMMIT}" ) -UCXX_COMMIT=b1e5230d5b1ac47a11cc2d421b3af91be50b39e4 +UCXX_COMMIT=8b6e2e45b2c1962dd58fd95e1f5e43db5d953a41 DISTRIBUTED_UCXX_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-get-pr-artifact --pkg_name distributed-ucxx ucxx 604 python wheel ) From 740a0716fdd03705210502df5740022648b7c586 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Mon, 9 Mar 2026 13:10:34 -0500 Subject: [PATCH 05/14] update raft commit --- ci/use_wheels_from_prs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/use_wheels_from_prs.sh b/ci/use_wheels_from_prs.sh index e265a4dacf5..9e44b28ae84 100644 --- a/ci/use_wheels_from_prs.sh +++ b/ci/use_wheels_from_prs.sh @@ -24,7 +24,7 @@ RMM_WHEELHOUSE=$( rapids-get-pr-artifact rmm 2270 python wheel --pkg_name rmm --stable "${RMM_COMMIT}" ) -RAFT_COMMIT=5258ae71a6e0e0b10308329957b13358d3585b84 +RAFT_COMMIT=ceff7637e1567c2efb0942d5bc67b27100a21387 LIBRAFT_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="libraft_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact raft 2971 cpp wheel "${RAFT_COMMIT}" ) From 0b490840a60afbe8eb4bdf3530b7900629991020 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Mon, 9 Mar 2026 15:36:54 -0500 Subject: [PATCH 06/14] use_cuda_wheels=true --- python/pylibcudf/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/pylibcudf/pyproject.toml b/python/pylibcudf/pyproject.toml index a3b3e6ea33d..81387c6886d 100644 --- a/python/pylibcudf/pyproject.toml +++ b/python/pylibcudf/pyproject.toml @@ -118,7 +118,7 @@ xfail_strict = true [tool.rapids-build-backend] build-backend = "scikit_build_core.build" dependencies-file = "../../dependencies.yaml" -matrix-entry = "cuda_suffixed=true" +matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true" requires = [ "cmake>=3.30.4", "cython>=3.2.2", From c058c439a34a3f8b7efaa2f8408c309ef61ec319 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Mon, 9 Mar 2026 20:44:50 -0500 Subject: [PATCH 07/14] use update rapids-get-pr-artifact --- ci/use_wheels_from_prs.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ci/use_wheels_from_prs.sh b/ci/use_wheels_from_prs.sh index 9e44b28ae84..f6f1a10e9df 100644 --- a/ci/use_wheels_from_prs.sh +++ b/ci/use_wheels_from_prs.sh @@ -5,6 +5,17 @@ # initialize PIP_CONSTRAINT source rapids-init-pip +# TODO(jameslamb): remove this before merging +if [[ ! -d /tmp/gha-tools ]]; then + git clone \ + --depth 1 \ + --branch no-empty-run-id \ + https://github.com/rapidsai/gha-tools.git \ + /tmp/gha-tools + + export PATH="/tmp/gha-tools/tools:${PATH}" +fi + RAPIDS_PY_CUDA_SUFFIX=$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}") # download wheels, store the directories holding them in variables @@ -35,7 +46,7 @@ RAFT_DASK_WHEELHOUSE=$( rapids-get-pr-artifact raft 2971 python wheel --pkg_name raft_dask --stable "${RAFT_COMMIT}" ) -UCXX_COMMIT=8b6e2e45b2c1962dd58fd95e1f5e43db5d953a41 +UCXX_COMMIT=b9406fa336ebc302cac4773c2262a392c16631cc DISTRIBUTED_UCXX_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-get-pr-artifact --pkg_name distributed-ucxx ucxx 604 python wheel ) From c47c9863c2c0d82634c625d65fe1f4833fc2837b Mon Sep 17 00:00:00 2001 From: James Lamb Date: Sun, 15 Mar 2026 21:38:32 -0500 Subject: [PATCH 08/14] update commits for dependencies --- ci/use_wheels_from_prs.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/use_wheels_from_prs.sh b/ci/use_wheels_from_prs.sh index f6f1a10e9df..1c8dded7b53 100644 --- a/ci/use_wheels_from_prs.sh +++ b/ci/use_wheels_from_prs.sh @@ -19,7 +19,7 @@ fi RAPIDS_PY_CUDA_SUFFIX=$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}") # download wheels, store the directories holding them in variables -KVIKIO_COMMIT=3d53f6a63d9ca8cb17b8fc89645b67f2bf1c012f +KVIKIO_COMMIT=5c9e2564a701b87aa01a4ac99863b00fb5483078 LIBKVIKIO_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="libkvikio_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact kvikio 942 cpp wheel "${KVIKIO_COMMIT}" ) @@ -27,7 +27,7 @@ KVIKIO_WHEELHOUSE=$( rapids-get-pr-artifact kvikio 942 python wheel --pkg_name kvikio --stable "${KVIKIO_COMMIT}" ) -RMM_COMMIT=0465f7cbc3acfa95dc5b83bdc6682db108e8b1b2 +RMM_COMMIT=e36df7200d5c05302c8fefbcb94a89aa634ef2b7 LIBRMM_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="librmm_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact rmm 2270 cpp wheel "${RMM_COMMIT}" ) @@ -35,7 +35,7 @@ RMM_WHEELHOUSE=$( rapids-get-pr-artifact rmm 2270 python wheel --pkg_name rmm --stable "${RMM_COMMIT}" ) -RAFT_COMMIT=ceff7637e1567c2efb0942d5bc67b27100a21387 +RAFT_COMMIT=c285d96d34b6f86415bd1502d6f2d232317bed98 LIBRAFT_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="libraft_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact raft 2971 cpp wheel "${RAFT_COMMIT}" ) @@ -46,7 +46,7 @@ RAFT_DASK_WHEELHOUSE=$( rapids-get-pr-artifact raft 2971 python wheel --pkg_name raft_dask --stable "${RAFT_COMMIT}" ) -UCXX_COMMIT=b9406fa336ebc302cac4773c2262a392c16631cc +UCXX_COMMIT=347de3a7c1c694fe8509ee7a6aa3d11f5e674476 DISTRIBUTED_UCXX_WHEELHOUSE=$( RAPIDS_PY_WHEEL_NAME="${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-get-pr-artifact --pkg_name distributed-ucxx ucxx 604 python wheel ) From 23d0852b79e2b53feb9f948b2e3e892d7cfb0707 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Sun, 15 Mar 2026 22:07:38 -0500 Subject: [PATCH 09/14] no gha-tools fork --- ci/use_wheels_from_prs.sh | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/ci/use_wheels_from_prs.sh b/ci/use_wheels_from_prs.sh index 1c8dded7b53..d8e159f70f2 100644 --- a/ci/use_wheels_from_prs.sh +++ b/ci/use_wheels_from_prs.sh @@ -5,17 +5,6 @@ # initialize PIP_CONSTRAINT source rapids-init-pip -# TODO(jameslamb): remove this before merging -if [[ ! -d /tmp/gha-tools ]]; then - git clone \ - --depth 1 \ - --branch no-empty-run-id \ - https://github.com/rapidsai/gha-tools.git \ - /tmp/gha-tools - - export PATH="/tmp/gha-tools/tools:${PATH}" -fi - RAPIDS_PY_CUDA_SUFFIX=$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}") # download wheels, store the directories holding them in variables From e789455667ceb0a1e8a21a866992f4a30c248065 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Mon, 16 Mar 2026 07:04:40 -0500 Subject: [PATCH 10/14] stricter libcudf floor --- conda/recipes/libcudf/recipe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda/recipes/libcudf/recipe.yaml b/conda/recipes/libcudf/recipe.yaml index 64cdcb60d7d..777e25fb27c 100644 --- a/conda/recipes/libcudf/recipe.yaml +++ b/conda/recipes/libcudf/recipe.yaml @@ -129,7 +129,7 @@ outputs: run: - ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }} - cuda-nvrtc - - ${{ pin_compatible("libnvjitlink", lower_bound="x.x", upper_bound="x") }} + - ${{ pin_compatible("libnvjitlink", lower_bound="x.x.x", upper_bound="x") }} - if: linux and x86_64 then: - libcufile From 4532fd40163cf9918ed40745d87b91b904e87252 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Mon, 16 Mar 2026 22:51:38 -0500 Subject: [PATCH 11/14] ensure constraints actually make it into test environments --- dependencies.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dependencies.yaml b/dependencies.yaml index 02453ef47ca..42c4b42a336 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -204,6 +204,7 @@ files: table: project.optional-dependencies key: test includes: + - cuda_version - test_python_common - test_python_cudf_common - test_python_cudf @@ -352,6 +353,7 @@ files: table: project.optional-dependencies key: test includes: + - cuda_version - depends_on_dask_cuda - numpy_run - test_python_common @@ -390,6 +392,7 @@ files: table: project.optional-dependencies key: test includes: + - cuda_version - depends_on_dask_cuda - test_python_common - test_python_cudf_common From d2fbb8ce0c1c079c79a7c24ef73c39262d5fdec3 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Wed, 18 Mar 2026 12:10:57 -0500 Subject: [PATCH 12/14] remove testing and debugging stuff --- .github/workflows/build.yaml | 10 ++--- .github/workflows/pr.yaml | 10 ++--- ci/build_wheel_cudf.sh | 3 -- ci/build_wheel_cudf_polars.sh | 3 -- ci/build_wheel_dask_cudf.sh | 3 -- ci/build_wheel_libcudf.sh | 3 -- ci/build_wheel_pylibcudf.sh | 3 -- ci/test_cudf_polars_polars_tests.sh | 3 -- ci/test_cudf_polars_with_rapidsmpf.sh | 3 -- ci/test_wheel_cudf.sh | 3 -- ci/test_wheel_cudf_polars.sh | 3 -- ci/test_wheel_dask_cudf.sh | 3 -- ci/use_wheels_from_prs.sh | 64 --------------------------- dependencies.yaml | 12 +---- 14 files changed, 11 insertions(+), 115 deletions(-) delete mode 100644 ci/use_wheels_from_prs.sh diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6b93dd02f96..2ee7a1a71a5 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -104,7 +104,7 @@ jobs: wheel-build-libcudf: needs: [telemetry-setup] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/26.04 with: # build for every combination of arch and CUDA version, but only for the latest Python matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) @@ -130,7 +130,7 @@ jobs: wheel-build-pylibcudf: needs: [telemetry-setup, wheel-build-libcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/26.04 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -157,7 +157,7 @@ jobs: wheel-build-cudf: needs: [telemetry-setup, wheel-build-pylibcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/26.04 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -184,7 +184,7 @@ jobs: wheel-build-dask-cudf: needs: [telemetry-setup, wheel-build-cudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/26.04 with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -211,7 +211,7 @@ jobs: wheel-build-cudf-polars: needs: [telemetry-setup, wheel-build-pylibcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/26.04 with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 022fe8d80d2..594dcb94b52 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -416,7 +416,7 @@ jobs: wheel-build-libcudf: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/26.04 with: # build for every combination of arch and CUDA version, but only for the latest Python matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) @@ -428,7 +428,7 @@ jobs: wheel-build-pylibcudf: needs: [checks, wheel-build-libcudf] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/26.04 with: build_type: pull-request node_type: cpu8 @@ -440,7 +440,7 @@ jobs: wheel-build-cudf: needs: wheel-build-pylibcudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/26.04 with: build_type: pull-request node_type: cpu8 @@ -460,7 +460,7 @@ jobs: wheel-build-cudf-polars: needs: wheel-build-pylibcudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/26.04 with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) @@ -504,7 +504,7 @@ jobs: wheel-build-dask-cudf: needs: wheel-build-cudf secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@build-wheels-old-ctk + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/26.04 with: # This selects "ARCH=amd64 + the latest supported Python + CUDA". matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) diff --git a/ci/build_wheel_cudf.sh b/ci/build_wheel_cudf.sh index b48feea98d8..3623172c9f3 100755 --- a/ci/build_wheel_cudf.sh +++ b/ci/build_wheel_cudf.sh @@ -6,9 +6,6 @@ set -euo pipefail source rapids-init-pip -# TODO(jameslamb): revert before merging -source ci/use_wheels_from_prs.sh - package_dir="python/cudf" RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" diff --git a/ci/build_wheel_cudf_polars.sh b/ci/build_wheel_cudf_polars.sh index 9825a63ca6c..5c2ce824b05 100755 --- a/ci/build_wheel_cudf_polars.sh +++ b/ci/build_wheel_cudf_polars.sh @@ -6,9 +6,6 @@ set -euo pipefail source rapids-init-pip -# TODO(jameslamb): revert before merging -source ci/use_wheels_from_prs.sh - package_dir="python/cudf_polars" ./ci/build_wheel.sh cudf-polars ${package_dir} diff --git a/ci/build_wheel_dask_cudf.sh b/ci/build_wheel_dask_cudf.sh index 91a8a16d29e..65e16c34bc8 100755 --- a/ci/build_wheel_dask_cudf.sh +++ b/ci/build_wheel_dask_cudf.sh @@ -6,9 +6,6 @@ set -euo pipefail source rapids-init-pip -# TODO(jameslamb): revert before merging -source ci/use_wheels_from_prs.sh - package_dir="python/dask_cudf" ./ci/build_wheel.sh dask-cudf ${package_dir} diff --git a/ci/build_wheel_libcudf.sh b/ci/build_wheel_libcudf.sh index e465d92092d..3680f1ebe10 100755 --- a/ci/build_wheel_libcudf.sh +++ b/ci/build_wheel_libcudf.sh @@ -6,9 +6,6 @@ set -euo pipefail source rapids-init-pip -# TODO(jameslamb): revert before merging -source ci/use_wheels_from_prs.sh - package_name="libcudf" package_dir="python/libcudf" diff --git a/ci/build_wheel_pylibcudf.sh b/ci/build_wheel_pylibcudf.sh index 90c8be2495a..0c49aba0997 100755 --- a/ci/build_wheel_pylibcudf.sh +++ b/ci/build_wheel_pylibcudf.sh @@ -6,9 +6,6 @@ set -euo pipefail source rapids-init-pip -# TODO(jameslamb): revert before merging -source ci/use_wheels_from_prs.sh - package_dir="python/pylibcudf" RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" diff --git a/ci/test_cudf_polars_polars_tests.sh b/ci/test_cudf_polars_polars_tests.sh index 7a1abe75c89..72b683fc459 100755 --- a/ci/test_cudf_polars_polars_tests.sh +++ b/ci/test_cudf_polars_polars_tests.sh @@ -6,9 +6,6 @@ set -euo pipefail source rapids-init-pip -# TODO(jameslamb): revert before merging -source ci/use_wheels_from_prs.sh - rapids-logger "Download wheels" RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" diff --git a/ci/test_cudf_polars_with_rapidsmpf.sh b/ci/test_cudf_polars_with_rapidsmpf.sh index 82a347425ab..5072373e536 100755 --- a/ci/test_cudf_polars_with_rapidsmpf.sh +++ b/ci/test_cudf_polars_with_rapidsmpf.sh @@ -6,9 +6,6 @@ set -euo pipefail source rapids-init-pip -# TODO(jameslamb): revert before merging -source ci/use_wheels_from_prs.sh - rapids-logger "Download wheels" RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" diff --git a/ci/test_wheel_cudf.sh b/ci/test_wheel_cudf.sh index 490b7c2a5e3..3c8e3b84a1f 100755 --- a/ci/test_wheel_cudf.sh +++ b/ci/test_wheel_cudf.sh @@ -6,9 +6,6 @@ set -euo pipefail source rapids-init-pip -# TODO(jameslamb): revert before merging -source ci/use_wheels_from_prs.sh - RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" # Download the cudf, libcudf, and pylibcudf built in the previous step diff --git a/ci/test_wheel_cudf_polars.sh b/ci/test_wheel_cudf_polars.sh index b0a82e97b80..b67f8fd9f7b 100755 --- a/ci/test_wheel_cudf_polars.sh +++ b/ci/test_wheel_cudf_polars.sh @@ -6,9 +6,6 @@ set -euo pipefail source rapids-init-pip -# TODO(jameslamb): revert before merging -source ci/use_wheels_from_prs.sh - rapids-logger "Download wheels" RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" diff --git a/ci/test_wheel_dask_cudf.sh b/ci/test_wheel_dask_cudf.sh index 96e685a2085..8930d85eab3 100755 --- a/ci/test_wheel_dask_cudf.sh +++ b/ci/test_wheel_dask_cudf.sh @@ -6,9 +6,6 @@ set -euo pipefail source rapids-init-pip -# TODO(jameslamb): revert before merging -source ci/use_wheels_from_prs.sh - RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" DASK_CUDF_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="dask_cudf_${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-download-wheels-from-github python) diff --git a/ci/use_wheels_from_prs.sh b/ci/use_wheels_from_prs.sh deleted file mode 100644 index d8e159f70f2..00000000000 --- a/ci/use_wheels_from_prs.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION. -# SPDX-License-Identifier: Apache-2.0 - -# initialize PIP_CONSTRAINT -source rapids-init-pip - -RAPIDS_PY_CUDA_SUFFIX=$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}") - -# download wheels, store the directories holding them in variables -KVIKIO_COMMIT=5c9e2564a701b87aa01a4ac99863b00fb5483078 -LIBKVIKIO_WHEELHOUSE=$( - RAPIDS_PY_WHEEL_NAME="libkvikio_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact kvikio 942 cpp wheel "${KVIKIO_COMMIT}" -) -KVIKIO_WHEELHOUSE=$( - rapids-get-pr-artifact kvikio 942 python wheel --pkg_name kvikio --stable "${KVIKIO_COMMIT}" -) - -RMM_COMMIT=e36df7200d5c05302c8fefbcb94a89aa634ef2b7 -LIBRMM_WHEELHOUSE=$( - RAPIDS_PY_WHEEL_NAME="librmm_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact rmm 2270 cpp wheel "${RMM_COMMIT}" -) -RMM_WHEELHOUSE=$( - rapids-get-pr-artifact rmm 2270 python wheel --pkg_name rmm --stable "${RMM_COMMIT}" -) - -RAFT_COMMIT=c285d96d34b6f86415bd1502d6f2d232317bed98 -LIBRAFT_WHEELHOUSE=$( - RAPIDS_PY_WHEEL_NAME="libraft_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact raft 2971 cpp wheel "${RAFT_COMMIT}" -) -PYLIBRAFT_WHEELHOUSE=$( - rapids-get-pr-artifact raft 2971 python wheel --pkg_name pylibraft --stable "${RAFT_COMMIT}" -) -RAFT_DASK_WHEELHOUSE=$( - rapids-get-pr-artifact raft 2971 python wheel --pkg_name raft_dask --stable "${RAFT_COMMIT}" -) - -UCXX_COMMIT=347de3a7c1c694fe8509ee7a6aa3d11f5e674476 -DISTRIBUTED_UCXX_WHEELHOUSE=$( - RAPIDS_PY_WHEEL_NAME="${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-get-pr-artifact --pkg_name distributed-ucxx ucxx 604 python wheel -) -LIBUCXX_WHEELHOUSE=$( - RAPIDS_PY_WHEEL_NAME="libucxx_${RAPIDS_PY_CUDA_SUFFIX}" rapids-get-pr-artifact ucxx 604 cpp wheel "${UCXX_COMMIT}" -) -UCXX_WHEELHOUSE=$( - rapids-get-pr-artifact ucxx 604 python wheel --pkg_name ucxx --stable "${UCXX_COMMIT}" -) - -# write a pip constraints file saying e.g. "whenever you encounter a requirement for 'librmm-cu12', use this wheel" -cat >> "${PIP_CONSTRAINT}" <=12.9,<13 - - matrix: - cuda: "13.0" - use_cuda_wheels: "true" - packages: - - nvidia-nvjitlink>=13.0,<14 - - matrix: - cuda: "13.1" - use_cuda_wheels: "true" - packages: - - &nvjitlink_cu13 nvidia-nvjitlink>=13.1,<14 - matrix: cuda: "13.*" use_cuda_wheels: "true" packages: - - *nvjitlink_cu13 + - nvidia-nvjitlink>=13.0,<14 # if no matching matrix selectors passed, list the unsuffixed packages # (just as a source of documentation, as this populates pyproject.toml in source control) - matrix: From de2c8799d5ee5e927924e88923f615cac9271238 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Wed, 18 Mar 2026 12:14:08 -0500 Subject: [PATCH 13/14] add use_cuda_wheels short-circuit block --- dependencies.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dependencies.yaml b/dependencies.yaml index 2527758e35b..f254c8454a2 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -791,6 +791,11 @@ dependencies: specific: - output_types: [requirements, pyproject] matrices: + # if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels + # (e.g. for DLFW and pip devcontainers) + - matrix: + use_cuda_wheels: "false" + packages: - matrix: cuda: "12.*" cuda_suffixed: "true" From 5fc6e47cee2bd2f84464becc76a6dc3f157aeee9 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Wed, 18 Mar 2026 13:43:41 -0500 Subject: [PATCH 14/14] just use libnvjitlink run exports, clearer requirement in pyproject.toml --- conda/recipes/libcudf/recipe.yaml | 2 -- dependencies.yaml | 6 +++--- python/libcudf/pyproject.toml | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/conda/recipes/libcudf/recipe.yaml b/conda/recipes/libcudf/recipe.yaml index 777e25fb27c..67f921d9a67 100644 --- a/conda/recipes/libcudf/recipe.yaml +++ b/conda/recipes/libcudf/recipe.yaml @@ -129,7 +129,6 @@ outputs: run: - ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }} - cuda-nvrtc - - ${{ pin_compatible("libnvjitlink", lower_bound="x.x.x", upper_bound="x") }} - if: linux and x86_64 then: - libcufile @@ -154,7 +153,6 @@ outputs: - libcufile - libcurand - libkvikio - - libnvjitlink - librdkafka - libzlib - librmm diff --git a/dependencies.yaml b/dependencies.yaml index f254c8454a2..f8d1dabadbe 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -672,12 +672,12 @@ dependencies: cuda: "13.*" use_cuda_wheels: "true" packages: - - nvidia-nvjitlink>=13.0,<14 - # if no matching matrix selectors passed, list the unsuffixed packages + - &nvjitlink_cu13 nvidia-nvjitlink>=13.0,<14 + # if no matching matrix selectors passed, list the CUDA 13 requirement # (just as a source of documentation, as this populates pyproject.toml in source control) - matrix: packages: - - nvidia-nvjitlink>=12,<14 + - *nvjitlink_cu13 develop: common: - output_types: [conda, requirements] diff --git a/python/libcudf/pyproject.toml b/python/libcudf/pyproject.toml index d44287af8c2..f3d9ecd58be 100644 --- a/python/libcudf/pyproject.toml +++ b/python/libcudf/pyproject.toml @@ -73,6 +73,6 @@ requires = [ "librmm==26.4.*,>=0.0.0a0", "ninja", "nvidia-libnvcomp==5.1.0.21", - "nvidia-nvjitlink>=12,<14", + "nvidia-nvjitlink>=13.0,<14", "rapids-logger==0.2.*,>=0.0.0a0", ] # This list was generated by `rapids-dependency-file-generator`. To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`.