Skip to content

cuda.core: carry the cuda-bindings floors through minimal-sysctk12/13 extras - #3460

Draft
leofang wants to merge 2 commits into
NVIDIA:mainfrom
leofang:cuda-core-minimal-sysctk
Draft

leofang wants to merge 2 commits into
NVIDIA:mainfrom
leofang:cuda-core-minimal-sysctk

Conversation

@leofang

@leofang leofang commented Nov 13, 2026 •

Copy link
Copy Markdown
Member

Description

Closes #3459.

Moves the cuda-bindings floors from the cu12/cu13 extras into new minimal-sysctk12/minimal-sysctk13 extras, which cu12/cu13 include by self-reference. A package that depends on cuda-core[minimal-sysctk12] (or [cu12]) now passes the floor to pip and uv.

The floor readers (floors_from_extras and the CI wheel-floor reader) still read the floor of each cu<N> extra; they now follow a cuda-core[...] self-reference and skip an unversioned cuda-bindings[all]. The existing tests of the cu<N> form are unchanged, and new tests cover the self-reference.

Two additions beyond the issue:

  • The check-cuda-core-bindings-floor hook also checks that each cu<N> extra lists cuda-core[minimal-sysctk<N>], so the floor is written only in minimal-sysctk<N>.
  • [tool.uv].conflicts declares the new extras as conflicting across majors; without it uv lock fails.

A CUDA 12 wheel built from this branch carries the floors under extra == "minimal-sysctk12"/"minimal-sysctk13", and pip install --dry-run "cuda-core[cu12] @ <wheel>" cuda-bindings==12.9.3 (likewise [minimal-sysctk12]) is now rejected at resolve time instead of failing at import.

Checklist

  • I have read the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

-- Leo's bot

The floors lived only in the cu12/cu13 extras, so a package that depends
on plain cuda-core never passed them to pip or uv, and an older
cuda-bindings failed only at import (NVIDIA#3459).

Declare the floors in new minimal-sysctk12/13 extras, include them from
cu12/cu13, and depend on cuda-bindings without a version. The floor
parser, the CI wheel-floor reader, the pre-commit hook and the docs read
the new extras.
@copy-pr-bot

copy-pr-bot Bot commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@leofang
leofang requested a review from Andy-Jost November 13, 2026 19:23
@leofang leofang added cuda.core Everything related to the cuda.core module packaging Anything related to wheels or Conda packages labels Nov 13, 2026
@github-actions github-actions Bot added the CI/CD CI/CD infrastructure label Nov 13, 2026
Drop the unversioned cuda-bindings from the base dependencies, so a
plain cuda-core install keeps asking for an extra.

Keep the floor readers on the cu<N> extras, as before, and teach them
to follow a cuda-core[...] self-reference and to skip an unversioned
cuda-bindings[all]. The cu<N> layout then yields the floor written in
minimal-sysctk<N>, and the existing tests of the cu<N> form stay as
they are. New tests cover the self-reference.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD CI/CD infrastructure cuda.core Everything related to the cuda.core module packaging Anything related to wheels or Conda packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cuda.core: carry the cuda-bindings floors to pip/uv through minimal-sysctk12/13 extras, and yank 1.3.0

1 participant