Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
4843067
enforce a floor on libnvjitlink, build wheels with CUDA 13.0.x, test …
jameslamb Mar 5, 2026
395396e
more wheel-testing script changes
jameslamb Mar 5, 2026
48e4e5c
Merge branch 'main' into test-older-ctk
jameslamb Mar 5, 2026
7db1f07
ugh, left-behind URL
jameslamb Mar 5, 2026
2b01bbf
Merge branch 'main' into test-older-ctk
jameslamb Mar 5, 2026
876d693
Merge branch 'test-older-ctk' of github.com:jameslamb/cudf into test-…
jameslamb Mar 5, 2026
fa194a9
Merge branch 'main' into test-older-ctk
jameslamb Mar 9, 2026
43a3248
new commits, remove gha-tools fork
jameslamb Mar 9, 2026
0d3a5ea
Merge branch 'main' into test-older-ctk
jameslamb Mar 9, 2026
740a071
update raft commit
jameslamb Mar 9, 2026
fe2b973
Merge branch 'main' into test-older-ctk
jameslamb Mar 9, 2026
0b49084
use_cuda_wheels=true
jameslamb Mar 9, 2026
a5990ff
Merge branch 'main' of github.com:rapidsai/cudf into test-older-ctk
jameslamb Mar 9, 2026
0f6a2d0
Merge branch 'test-older-ctk' of github.com:jameslamb/cudf into test-…
jameslamb Mar 9, 2026
c058c43
use update rapids-get-pr-artifact
jameslamb Mar 10, 2026
5a9042e
merge main
jameslamb Mar 10, 2026
5c40135
merge release/26.04
jameslamb Mar 16, 2026
c47c986
update commits for dependencies
jameslamb Mar 16, 2026
23d0852
no gha-tools fork
jameslamb Mar 16, 2026
e789455
stricter libcudf floor
jameslamb Mar 16, 2026
4532fd4
ensure constraints actually make it into test environments
jameslamb Mar 17, 2026
d2fbb8c
remove testing and debugging stuff
jameslamb Mar 18, 2026
de2c879
add use_cuda_wheels short-circuit block
jameslamb Mar 18, 2026
9e773c7
Merge branch 'release/26.04' into test-older-ctk
jameslamb Mar 18, 2026
5fc6e47
just use libnvjitlink run exports, clearer requirement in pyproject.toml
jameslamb Mar 18, 2026
0602540
Merge branch 'test-older-ctk' of github.com:jameslamb/cudf into test-…
jameslamb Mar 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions ci/test_cudf_polars_polars_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,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
Expand Down Expand Up @@ -55,7 +65,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()
Expand Down
10 changes: 10 additions & 0 deletions ci/test_cudf_polars_with_rapidsmpf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,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)" \
Expand Down
17 changes: 12 additions & 5 deletions ci/test_wheel_cudf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,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"}/
Expand All @@ -25,9 +25,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]"
Expand All @@ -48,12 +55,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)" \
Expand Down
10 changes: 5 additions & 5 deletions ci/test_wheel_cudf_polars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,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)" \
Expand Down
8 changes: 4 additions & 4 deletions ci/test_wheel_dask_cudf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,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]" \
Expand Down
2 changes: 0 additions & 2 deletions conda/recipes/libcudf/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,6 @@ outputs:
run:
- ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }}
- cuda-nvrtc
- libnvjitlink >=${{ cuda_version }}
- if: linux and x86_64
then:
- libcufile
Expand All @@ -154,7 +153,6 @@ outputs:
- libcufile
- libcurand
- libkvikio
- libnvjitlink
- librdkafka
- libzlib
- librmm
Expand Down
81 changes: 77 additions & 4 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ files:
table: project.optional-dependencies
key: test
includes:
- cuda_version
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Just picking a place to have a threaded conversation (I don't think this particular line is to blame)... I'm seeing cuML-related conda tests segfaulting:

Fatal Python error: Segmentation fault
...
=========================== short test summary info ============================
FAILED python/cudf/cudf_pandas_tests/third_party_integration_tests/tests/test_cuml.py::test_clustering - worker 'gw4' crashed while running 'test_cuml.py::test_clustering'
FAILED python/cudf/cudf_pandas_tests/third_party_integration_tests/tests/test_cuml.py::test_pipeline - worker 'gw3' crashed while running 'test_cuml.py::test_pipeline'
FAILED python/cudf/cudf_pandas_tests/third_party_integration_tests/tests/test_cuml.py::test_linear_regression - worker 'gw0' crashed while running 'test_cuml.py::test_linear_regression'
FAILED python/cudf/cudf_pandas_tests/third_party_integration_tests/tests/test_cuml.py::test_random_forest - worker 'gw2' crashed while running 'test_cuml.py::test_random_forest'
FAILED python/cudf/cudf_pandas_tests/third_party_integration_tests/tests/test_cuml.py::test_logistic_regression - worker 'gw1' crashed while running 'test_cuml.py::test_logistic_regression'
========================= 5 failed, 3 passed in 7.02s ==========================

(third-part-pandas-integration-tests link)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

- test_python_common
- test_python_cudf_common
- test_python_cudf
Expand Down Expand Up @@ -352,6 +353,7 @@ files:
table: project.optional-dependencies
key: test
includes:
- cuda_version
- depends_on_dask_cuda
- numpy_run
- test_python_common
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -563,6 +566,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
Expand Down Expand Up @@ -591,6 +596,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]
Expand All @@ -604,14 +654,30 @@ 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.*"
use_cuda_wheels: "true"
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>=13.0
- *nvjitlink_cu13
develop:
common:
- output_types: [conda, requirements]
Expand Down Expand Up @@ -725,14 +791,21 @@ 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"
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: []}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion python/cudf/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion python/libcudf/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,6 @@ requires = [
"librmm==26.4.*,>=0.0.0a0",
"ninja",
"nvidia-libnvcomp==5.1.0.21",
"nvidia-nvjitlink>=13.0",
"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`.
Loading
Loading