Skip to content

switch from 'cuda-python' to specific components (e.g. 'cuda-bindings')#8314

Merged
rapids-bot[bot] merged 2 commits into
rapidsai:mainfrom
jameslamb:drop-cuda-python
Jul 7, 2026
Merged

switch from 'cuda-python' to specific components (e.g. 'cuda-bindings')#8314
rapids-bot[bot] merged 2 commits into
rapidsai:mainfrom
jameslamb:drop-cuda-python

Conversation

@jameslamb

@jameslamb jameslamb commented Jul 2, 2026

Copy link
Copy Markdown
Member

Description

Contributes to rapidsai/build-planning#285

cuda-python is a metapackage and sometimes pulls in components that RAPIDS libraries don't need. This PR is part of a series dropping direct use of cuda-python in favor of depending only on those specific components.

  • drops dependency on cuda-python
  • adds explicit dependencies on components:
    • cuda-bindings >=12.9.2,<13.0 (CUDA 12), cuda-bindings >=13.0.1,<14.0 (CUDA 13)
  • adds explicit testing of oldest cuda-bindings in CI

Notes for Reviewers

Why these specific bounds?

This PR has dependencies

@jameslamb jameslamb added DO NOT MERGE Hold off on merging; see PR for details improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Jul 2, 2026
@copy-pr-bot

copy-pr-bot Bot commented Jul 2, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@jameslamb

Copy link
Copy Markdown
Member Author

/ok to test

@github-actions github-actions Bot added conda conda issue Cython / Python Cython or Python issue labels Jul 2, 2026
@jameslamb jameslamb changed the title WIP: switch from 'cuda-python' to specific components (e.g. 'cuda-bindings') switch from 'cuda-python' to specific components (e.g. 'cuda-bindings') Jul 6, 2026
@jameslamb jameslamb removed the DO NOT MERGE Hold off on merging; see PR for details label Jul 6, 2026
@jameslamb jameslamb marked this pull request as ready for review July 6, 2026 20:51
@jameslamb jameslamb requested a review from a team as a code owner July 6, 2026 20:51
@jameslamb jameslamb requested a review from msarahan July 6, 2026 20:51
@coderabbitai

coderabbitai Bot commented Jul 6, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR replaces the cuda-python dependency with cuda-bindings across the codebase, keeping identical version bounds. Changes span generated conda environment YAML files, the cuml conda recipe, dependencies.yaml selector logic and test matrices, and pyproject.toml dependency lists.

Changes

cuda-python to cuda-bindings migration

Layer / File(s) Summary
Central dependency selector and test matrices
dependencies.yaml
depends_on_cuda_python selector switches package name to cuda-bindings for CUDA 12 and 13/fallback cases; new "oldest" test matrices pin cuda-bindings versions for CUDA 12 and 13.
Conda recipe requirement blocks
conda/recipes/cuml/recipe.yaml
Two conditional dependency blocks switch from cuda-python to cuda-bindings, preserving version bounds for cuda_major == "12" and the else branch.
Generated conda environment files
conda/environments/all_cuda-129_arch-aarch64.yaml, conda/environments/all_cuda-129_arch-x86_64.yaml, conda/environments/all_cuda-133_arch-aarch64.yaml, conda/environments/all_cuda-133_arch-x86_64.yaml
CUDA 12.9 and 13.3 environment files for aarch64/x86_64 replace cuda-python entries with equivalent cuda-bindings version constraints.
Python package build/runtime dependencies
python/cuml/pyproject.toml
Main dependencies list and tool.rapids-build-backend.requires replace cuda-python>=13.0.1,<14.0 with cuda-bindings>=13.0.1,<14.0.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested labels: CUDA/C++, ci

Suggested reviewers: jcrist, bdice, jakirkham

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly reflects the main change: replacing cuda-python with specific CUDA components like cuda-bindings.
Description check ✅ Passed The description is directly related to the changeset and accurately summarizes the dependency switch and added CI coverage.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
dependencies.yaml (1)

745-756: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Rename the selector to match cuda-bindings
If this block now installs cuda-bindings, depends_on_cuda_python is misleading. Rename it to depends_on_cuda_bindings and update the includes: references in this file.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@dependencies.yaml` around lines 745 - 756, The selector name in the
cuda-python dependency block no longer matches the package it installs. Rename
depends_on_cuda_python to depends_on_cuda_bindings in the dependency definition,
and update every includes reference in this file that points to the old selector
so they resolve to the new name. Keep the matrix/package entries in that block
unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@dependencies.yaml`:
- Around line 745-756: The selector name in the cuda-python dependency block no
longer matches the package it installs. Rename depends_on_cuda_python to
depends_on_cuda_bindings in the dependency definition, and update every includes
reference in this file that points to the old selector so they resolve to the
new name. Keep the matrix/package entries in that block unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 94a29e83-6641-4139-944f-5af68bd56602

📥 Commits

Reviewing files that changed from the base of the PR and between 8d76894 and c2bd8af.

📒 Files selected for processing (7)
  • conda/environments/all_cuda-129_arch-aarch64.yaml
  • conda/environments/all_cuda-129_arch-x86_64.yaml
  • conda/environments/all_cuda-133_arch-aarch64.yaml
  • conda/environments/all_cuda-133_arch-x86_64.yaml
  • conda/recipes/cuml/recipe.yaml
  • dependencies.yaml
  • python/cuml/pyproject.toml

@jakirkham jakirkham left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks James! 🙏

@jameslamb

Copy link
Copy Markdown
Member Author

/merge

@rapids-bot rapids-bot Bot merged commit 9699777 into rapidsai:main Jul 7, 2026
108 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conda conda issue Cython / Python Cython or Python issue improvement Improvement / enhancement to an existing function non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants