From 5eea5f8c6f9b10a17872acb05ff6b4485538a888 Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Wed, 14 Oct 2026 15:57:04 -0400 Subject: [PATCH 1/2] Use new `constraints` type from DFG As of rapids-dependency-file-generator v1.22.0, a new output type, `constraints`, is supported, allowing constraints to be separated from requirements. Use this where possible. For now, be overzealous in turning on constraints wherever requirements is used. If we ever run into issues with constraints having extras, we can deal with it at that time. Contributes to rapidsai/build-planning#311 --- .pre-commit-config.yaml | 2 +- ci/test_wheel_cuvs.sh | 2 +- dependencies.yaml | 54 ++++++++++++++++++++--------------------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 02bf88d226..31a707c1dc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -219,7 +219,7 @@ repos: (?x) ^pyproject[.]toml$ - repo: https://github.com/rapidsai/dependency-file-generator - rev: v1.20.0 + rev: v1.22.0 hooks: - id: rapids-dependency-file-generator args: ["--clean", "--warn-all", "--strict"] diff --git a/ci/test_wheel_cuvs.sh b/ci/test_wheel_cuvs.sh index 51c755d87c..5cf6ccff04 100755 --- a/ci/test_wheel_cuvs.sh +++ b/ci/test_wheel_cuvs.sh @@ -13,7 +13,7 @@ LIBCUVS_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_c CUVS_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python cuvs cuvs --stable --cuda "$RAPIDS_CUDA_VERSION")") # generate constraints (possibly pinning to oldest support versions of dependencies) -rapids-generate-pip-constraints test_python "${PIP_CONSTRAINT}" +rapids-generate-pip-constraints test_python "${PIP_CONSTRAINT}" constraints python -m venv libcuvs-env . libcuvs-env/bin/activate diff --git a/dependencies.yaml b/dependencies.yaml index bedafbb05f..949bc2850a 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -268,10 +268,10 @@ channels: dependencies: build: 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] + - output_types: [conda, constraints] packages: - scikit-build-core>=0.11.0 - output_types: [requirements, pyproject] @@ -279,12 +279,12 @@ dependencies: - scikit-build-core[pyproject]>=0.11.0 build_cython: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - cython>=3.2.2 rapids_build: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - &cmake_ver cmake>=4.0 - ninja @@ -308,7 +308,7 @@ dependencies: - sysroot_linux-aarch64==2.28 rapids_build_setuptools: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - *rapids_build_backend - &setuptools setuptools>=77.0.0 @@ -320,7 +320,7 @@ dependencies: - dlpack>=0.8,<1.0 checks: common: - - output_types: [conda, requirements] + - output_types: [conda, requirements, constraints] packages: - pre-commit # cargo-fmt pre-commit hook requires a C compiler @@ -456,7 +456,7 @@ dependencies: packages: - cutile-python - cuda-tileiras - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -478,7 +478,7 @@ dependencies: # # nvJitLink has historically roughly followed the CTK's minor versioning scheme, # but check at https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: # skip this whole group if explicitly opting out of CUDA wheels - matrix: @@ -521,7 +521,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: constraints matrices: - matrix: cuda: "12.*" @@ -531,7 +531,7 @@ dependencies: - matrix: packages: - &cupy_cu13 cupy-cuda13x>=14.0.1,!=14.1.0 - - output_types: pyproject + - output_types: [requirements, pyproject] matrices: - matrix: cuda: "12.*" @@ -580,7 +580,7 @@ dependencies: - dlpack>=0.8,<1.0 build_wheels: common: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] packages: - *wheel - *setuptools @@ -605,22 +605,22 @@ dependencies: - python>=3.12 run_py_cuvs: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - &numpy numpy>=2.0,<3.0 run_py_libcuvs: common: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] packages: - cuda-pathfinder test_python_common: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - *pytest - pytest-cov specific: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] matrices: - matrix: dependencies: "oldest" @@ -636,7 +636,7 @@ dependencies: packages: test_py_cuvs: common: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] packages: - scikit-learn>=1.5 # TODO: we're seeing test failures with openblas > 0.3.30 on aarch64. For @@ -660,7 +660,7 @@ dependencies: - *openjdk bench: common: - - output_types: [conda, pyproject, requirements] + - output_types: [conda, pyproject, requirements, constraints] packages: - nlohmann_json>=3.12.0 - glog>=0.6.0 @@ -680,7 +680,7 @@ dependencies: packages: null bench_python: common: - - output_types: [conda, pyproject, requirements] + - output_types: [conda, pyproject, requirements, constraints] packages: - click - pandas @@ -690,12 +690,12 @@ dependencies: - output_types: [conda] packages: - matplotlib-base>=3.9 - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] packages: - matplotlib>=3.9 bench_elastic: common: - - output_types: [conda, pyproject, requirements] + - output_types: [conda, pyproject, requirements, constraints] packages: - elasticsearch>=8.0 bench_python_opensearch: @@ -711,7 +711,7 @@ dependencies: - tqdm depends_on_cuda_python: specific: - - output_types: [conda, requirements, pyproject] + - output_types: [conda, requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -737,7 +737,7 @@ dependencies: packages: - &libcuvs_unsuffixed libcuvs==26.12.*,>=0.0.0a0 specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -764,7 +764,7 @@ dependencies: packages: - &libraft_unsuffixed libraft==26.12.*,>=0.0.0a0 specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -786,7 +786,7 @@ dependencies: packages: - &librmm_unsuffixed librmm==26.12.*,>=0.0.0a0 specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -808,7 +808,7 @@ dependencies: packages: - &libkvikio_unsuffixed libkvikio==26.12.*,>=0.0.0a0 specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -830,7 +830,7 @@ dependencies: packages: - &pylibraft_unsuffixed pylibraft==26.12.*,>=0.0.0a0 specific: - - output_types: [requirements, pyproject] + - output_types: [requirements, constraints, pyproject] matrices: - matrix: cuda: "12.*" @@ -852,7 +852,7 @@ dependencies: packages: - nccl>=2.19 specific: - - output_types: [pyproject, requirements] + - output_types: [pyproject, requirements, constraints] matrices: - matrix: cuda: "12.*" From 93404c91a50148ef56b45e35f5af30f67d1b6d5f Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Wed, 14 Oct 2026 16:10:27 -0400 Subject: [PATCH 2/2] Fix --- dependencies.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.yaml b/dependencies.yaml index 949bc2850a..f18ad76aad 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -376,7 +376,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)