diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 129311a96233..8092d802121d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -334,7 +334,7 @@ repos: (?x) ^pyproject[.]toml$ - repo: https://github.com/rapidsai/dependency-file-generator - rev: v1.21.0 + rev: v1.22.0 hooks: - id: rapids-dependency-file-generator args: ["--clean", "--warn-all", "--strict"] diff --git a/ci/cudf_pandas_scripts/run_tests.sh b/ci/cudf_pandas_scripts/run_tests.sh index bdd14aa502ad..b17cb7ba380d 100755 --- a/ci/cudf_pandas_scripts/run_tests.sh +++ b/ci/cudf_pandas_scripts/run_tests.sh @@ -22,7 +22,7 @@ PYLIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel CUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python cudf cudf --stable --cuda "$RAPIDS_CUDA_VERSION")") # generate constraints (possibly pinning to oldest support versions of dependencies) -rapids-generate-pip-constraints test_python_cudf_pandas ./constraints.txt +rapids-generate-pip-constraints test_python_cudf_pandas ./constraints.txt constraints # notes: # diff --git a/ci/test_cudf_polars_polars_tests.sh b/ci/test_cudf_polars_polars_tests.sh index b97264cf3159..c8526d11ed40 100755 --- a/ci/test_cudf_polars_polars_tests.sh +++ b/ci/test_cudf_polars_polars_tests.sh @@ -16,7 +16,7 @@ CUDF_STREAMING_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name CUDF_POLARS_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python cudf-polars cudf --pure --arch any --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-generate-pip-constraints py_test_cudf_polars "${PIP_CONSTRAINT}" constraints rapids-logger "Install libcudf, pylibcudf and cudf_polars" diff --git a/ci/test_wheel_cudf.sh b/ci/test_wheel_cudf.sh index deff898d4b9e..45e8f590d3a2 100755 --- a/ci/test_wheel_cudf.sh +++ b/ci/test_wheel_cudf.sh @@ -16,7 +16,7 @@ CUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_pyth rapids-logger "Install libcudf and verify its runtime dependencies in a virtual environment" # generate constraints (possibly pinning to oldest support versions of dependencies) -rapids-generate-pip-constraints py_test_cudf "${PIP_CONSTRAINT}" +rapids-generate-pip-constraints py_test_cudf "${PIP_CONSTRAINT}" constraints RESULTS_DIR=${RAPIDS_TESTS_DIR:-"$(mktemp -d)"} RAPIDS_TESTS_DIR=${RAPIDS_TESTS_DIR:-"${RESULTS_DIR}/test-results"}/ diff --git a/ci/test_wheel_cudf_polars.sh b/ci/test_wheel_cudf_polars.sh index 1869ec8800a9..5196f79c3fa6 100755 --- a/ci/test_wheel_cudf_polars.sh +++ b/ci/test_wheel_cudf_polars.sh @@ -18,7 +18,7 @@ LIBCUDF_STREAMING_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-na CUDF_STREAMING_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python cudf-streaming cudf --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-generate-pip-constraints py_test_cudf_polars "${PIP_CONSTRAINT}" constraints read -r -a VERSIONS <<< "$(python ci/utils/get_matrix_values.py dependencies.yaml test_cudf_polars_compat polars_compat_version)" diff --git a/ci/test_wheel_cudf_streaming.sh b/ci/test_wheel_cudf_streaming.sh index 8f2ec61323ed..b6f665f28203 100755 --- a/ci/test_wheel_cudf_streaming.sh +++ b/ci/test_wheel_cudf_streaming.sh @@ -15,7 +15,7 @@ LIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_c PYLIBCUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python pylibcudf cudf --stable --cuda "$RAPIDS_CUDA_VERSION")") # generate constraints (possibly pinning to oldest support versions of dependencies) -rapids-generate-pip-constraints py_test_cudf_streaming "${PIP_CONSTRAINT}" +rapids-generate-pip-constraints py_test_cudf_streaming "${PIP_CONSTRAINT}" constraints rapids-logger "Install libcudf_streaming and verify its runtime dependencies in a virtual environment" diff --git a/ci/test_wheel_dask_cudf.sh b/ci/test_wheel_dask_cudf.sh index 459b04a3a7bb..e39b6d825efe 100755 --- a/ci/test_wheel_dask_cudf.sh +++ b/ci/test_wheel_dask_cudf.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 set -euo pipefail @@ -17,7 +17,7 @@ CUDF_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_pyth 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 "${PIP_CONSTRAINT}" +rapids-generate-pip-constraints py_test_dask_cudf "${PIP_CONSTRAINT}" constraints # notes: # diff --git a/dependencies.yaml b/dependencies.yaml index 7a24c023a52d..3f9a793dc121 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -730,7 +730,7 @@ channels: dependencies: build_base: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - &cmake_ver cmake>=4.0 - ninja @@ -781,7 +781,7 @@ dependencies: # Align nvcomp version with rapids-cmake - libnvcomp-dev==5.3.0.16 specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: use_cuda_wheels: "false" @@ -802,31 +802,31 @@ dependencies: - nvidia-libnvcomp==5.3.0.16 rapids_build_skbuild: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - &rapids_build_backend rapids-build-backend>=0.4.0,<0.5.0 - output_types: conda packages: - scikit-build-core>=0.11.0 - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] packages: - scikit-build-core[pyproject]>=0.11.0 rapids_build_setuptools: common: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] packages: - *rapids_build_backend - setuptools>=77.0.0 - wheel build_python_common: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - cython>=3.2.2,<3.3.0a0 numpy_run: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - numpy>=2.0,<3.0 pyarrow_run: @@ -834,7 +834,7 @@ dependencies: - output_types: [conda] packages: - pyarrow>=19.0.0,<24 # https://github.com/NVIDIA/cudf/issues/22229 - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] packages: - pyarrow>=19.0.0,<24 # https://github.com/NVIDIA/cudf/issues/22229 # 'cuda_version' intentionally does not contain fallback entries... we want @@ -875,7 +875,7 @@ dependencies: cuda: "13.3" packages: - cuda-version=13.3 - - output_types: requirements + - output_types: [requirements, constraints] matrices: # if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels # (e.g. for DLFW and pip devcontainers) @@ -950,7 +950,7 @@ dependencies: - libcurand-dev - libnvjitlink-dev specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: # if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels # (e.g. for DLFW and pip devcontainers) @@ -1062,7 +1062,7 @@ dependencies: - python>=3.11 run_common: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - fsspec>=0.6.0 # pandas 3.0.4 segfaults constructing pd.Timedelta on Python 3.14, @@ -1072,12 +1072,12 @@ dependencies: - &pandas pandas>=3.0.0,<3.0.4a0 run_pylibcudf: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - nvtx>=0.2.1 depends_on_cuda_bindings: specific: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1089,7 +1089,7 @@ dependencies: - cuda-bindings>=13.0.1,<14.0 run_cudf: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - cachetools - &numba numba>=0.60.0,<0.65.0 @@ -1098,7 +1098,7 @@ dependencies: - rich run_cudf_polars: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: # 'nvidia-ml-py' provides the 'pynvml' module - &nvidia_ml_py nvidia-ml-py>=12 @@ -1107,12 +1107,12 @@ dependencies: - typing_extensions>=4.0.0 run_cudf_polars_dask: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - rapids-dask-dependency==26.10.*,>=0.0.0a0 run_dask_cudf: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - *nvidia_ml_py - rapids-dask-dependency==26.10.*,>=0.0.0a0 @@ -1121,10 +1121,10 @@ dependencies: - output_types: conda packages: - python-confluent-kafka - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - streamz - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] packages: - confluent-kafka test_cpp: @@ -1154,7 +1154,7 @@ dependencies: - boost test_python_common: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - pytest<9.1.0 - pytest-cov @@ -1162,7 +1162,7 @@ dependencies: test_python_cudf_common: specific: # Define additional constraints for testing with oldest dependencies. - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] matrices: - matrix: {dependencies: "oldest"} packages: @@ -1181,7 +1181,7 @@ dependencies: - cupy==14.0.1 - matrix: packages: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] matrices: - matrix: dependencies: "oldest" @@ -1195,7 +1195,7 @@ dependencies: - cuda-bindings==13.0.1 - matrix: packages: - - output_types: requirements + - output_types: [requirements, constraints] # Using --constraints for pip install, so we list cupy multiple times # cuPy 14 has a regression for cudf / cupy interop # See https://github.com/cupy/cupy/issues/9709 @@ -1223,7 +1223,7 @@ dependencies: packages: test_python_dask_cudf: specific: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] matrices: - matrix: dependencies: "oldest" @@ -1235,7 +1235,7 @@ dependencies: packages: test_python_pylibcudf: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - &fastavro fastavro>=0.22.9 - mmh3 @@ -1250,7 +1250,7 @@ dependencies: - xxhash test_python_s3: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: # Upper bound on aiobotocore to avoid build issues in CI # https://github.com/NVIDIA/cudf/issues/20843 @@ -1263,7 +1263,7 @@ dependencies: - moto>=4.0.8 test_python_cudf: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - cramjam - *fastavro @@ -1304,7 +1304,7 @@ dependencies: packages: test_python_cudf_polars: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - rich - pytest-httpserver @@ -1322,7 +1322,7 @@ dependencies: - gdb test_python_narwhals: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: # https://github.com/narwhals-dev/narwhals/blob/main/pyproject.toml#L67 - pytest-env @@ -1335,12 +1335,12 @@ dependencies: - output_types: conda packages: - &libcudf_unsuffixed libcudf==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1357,7 +1357,7 @@ dependencies: packages: [*libcudf_unsuffixed] depends_on_numba_cuda: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: # TODO: Remove after https://github.com/rapidsai/build-planning/issues/301 is resolved. - numba>=0.60.0,<0.65.0 @@ -1365,7 +1365,7 @@ dependencies: packages: - &numba_cuda numba-cuda>=0.22.2 specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1392,7 +1392,7 @@ dependencies: packages: - &numba_cuda_mlir numba-cuda-mlir>=0.3.0 specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1415,12 +1415,12 @@ dependencies: - output_types: conda packages: - &pylibcudf_unsuffixed pylibcudf==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1440,12 +1440,12 @@ dependencies: - output_types: conda packages: - &plc_unsuffixed pylibcudf==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1465,12 +1465,12 @@ dependencies: - output_types: conda packages: - &cudf_unsuffixed cudf==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1499,7 +1499,7 @@ dependencies: # other packages with -cu{nn}x suffixes in this file. # All RAPIDS wheel builds (including in devcontainers) expect cupy to be suffixed. specific: - - output_types: requirements + - output_types: [requirements, constraints] matrices: - matrix: cuda: "12.*" @@ -1561,11 +1561,11 @@ dependencies: - output_types: conda packages: - &libkvikio_unsuffixed libkvikio==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1586,12 +1586,12 @@ dependencies: - output_types: conda packages: - &librmm_unsuffixed librmm==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1612,12 +1612,12 @@ dependencies: - output_types: conda packages: - &rmm_unsuffixed rmm==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1638,12 +1638,12 @@ dependencies: - output_types: conda packages: - &libucxx_unsuffixed libucxx==0.52.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1664,12 +1664,12 @@ dependencies: - output_types: conda packages: - &ucxx_unsuffixed ucxx==0.52.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1690,12 +1690,12 @@ dependencies: - output_types: conda packages: - &rapidsmpf_unsuffixed rapidsmpf==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1716,12 +1716,12 @@ dependencies: - output_types: conda packages: - &librapidsmpf_unsuffixed librapidsmpf==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1742,12 +1742,12 @@ dependencies: - output_types: conda packages: - &libcudf_streaming_unsuffixed libcudf-streaming==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1768,12 +1768,12 @@ dependencies: - output_types: conda packages: - &cudf_streaming_unsuffixed cudf-streaming==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -1794,21 +1794,21 @@ dependencies: - output_types: conda packages: - ray-default>=2.55.1 - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] packages: - ray>=2.55.1 depends_on_rapids_logger: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - rapids-logger==0.3.* - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ test_python_pandas_cudf: common: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] packages: # dependencies to run pandas tests # https://github.com/pandas-dev/pandas/blob/main/environment.yml @@ -1824,7 +1824,7 @@ dependencies: - hypothesis>=6.131.7 test_python_cudf_pandas: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - ipykernel - ipython @@ -1856,13 +1856,15 @@ dependencies: - output_types: conda packages: - &dask_cuda_unsuffixed dask-cuda==26.10.*,>=0.0.0a0 - - output_types: requirements + - output_types: [requirements, constraints] packages: # pip recognizes the index as a global option for the requirements.txt file - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ + - output_types: constraints + packages: - *dask_cuda_unsuffixed specific: - - output_types: pyproject + - output_types: [requirements, pyproject] matrices: - matrix: cuda: "12.*" @@ -1900,17 +1902,17 @@ dependencies: - cudf-polars==26.10.*,>=0.0.0a0 depends_on_narwhals: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - narwhals==2.24.0 cudf_polars_trace: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - structlog test_cudf_pandas_compat: specific: - - output_types: requirements + - output_types: [requirements, constraints] matrices: - matrix: pandas_compat_version: "3.0" @@ -1921,7 +1923,7 @@ dependencies: packages: test_cudf_polars_compat: specific: - - output_types: requirements + - output_types: [requirements, constraints] matrices: - matrix: polars_compat_version: "1.35"