Declare uv conflicts for mutually exclusive CUDA version extras/groups#1802
Declare uv conflicts for mutually exclusive CUDA version extras/groups#1802rparolin wants to merge 1 commit intoNVIDIA:mainfrom
Conversation
|
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. |
There was a problem hiding this comment.
Pull request overview
Adds uv conflict metadata so CUDA 12 vs CUDA 13 dependency selections are treated as mutually exclusive, preventing uv lock/sync from attempting to co-resolve incompatible alternatives.
Changes:
- Add
[tool.uv].conflictsfor mutually exclusive CUDA 12/13 dependency groups incuda_pathfinder. - Add
[tool.uv].conflictsfor mutually exclusive CUDA 12/13 extras and test dependency groups incuda_core.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| cuda_pathfinder/pyproject.toml | Declares uv conflicts between cu12/cu13 and test-cu12/test-cu13 dependency groups. |
| cuda_core/pyproject.toml | Declares uv conflicts between cu12/cu13 extras and CUDA-versioned test dependency groups. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ], | ||
| [ | ||
| { group = "test-cu12" }, | ||
| { group = "test-cu13" }, |
There was a problem hiding this comment.
The conflicts list groups test-cu12, test-cu13, test-cu12-ft, and test-cu13-ft into a single mutually-exclusive set. This would prevent installing both test-cu12 and test-cu12-ft together (same CUDA major), even though they appear to be complementary (CupPy vs free-threaded variant). Consider splitting this into two conflict entries (test-cu12 vs test-cu13, and test-cu12-ft vs test-cu13-ft) so only cross-CUDA combinations are disallowed.
| { group = "test-cu13" }, | |
| { group = "test-cu13" }, | |
| ], | |
| [ |
|
Summary
[tool.uv] conflictstocuda_core/pyproject.tomlandcuda_pathfinder/pyproject.tomlsouvknows thatcu12/cu13extras and dependency groups are mutually exclusive alternatives, not co-installableuv syncanduv lockfail with unsatisfiable dependency errors becauseuvtries to resolve all extras simultaneously[tool.uv]section is only read byuv— pip, setuptools, and pixi ignore it, so existing workflows are unaffectedCloses #1247
Test plan
pyproject.tomlfiles validated withtomllib.load()uv locksucceeds oncuda_pathfinder(63 packages resolved)uv locksucceeds oncuda_corewithCUDA_HOMEset (41 packages resolved)