Repository navigation
Add build dependency groups for editable development - #3274
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. |
|
codex on behalf of Ralf: /ok to test 90d80e2 |
|
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes.
|
| Layer / File(s) | Summary |
|---|---|
Define build dependencies cuda_bindings_13/pyproject.toml, cuda_core/pyproject.toml, cuda_pathfinder/pyproject.toml |
The three configurations add a build dependency group with setuptools and related build requirements. Comments document synchronization with build-system requirements; the cuda_bindings_13 and cuda_core groups also note that local cuda-pathfinder installation is separate. |
Possibly related issues
cuda-bindings13.4.3 & 12.9.10 release checklist #3094: The issue checklist covers dependency requirements forcuda-bindingsreleases. This change updates thecuda_bindings_13build dependency group, but does not establish that the checklist is complete.
Possibly related PRs
- NVIDIA/cuda-python#3272: Adds a
cuda_corebuild-system requirement that must stay coordinated with thedependency-groups.builddeclaration updated here.
Suggested labels: enhancement, cuda.bindings, cuda.core, cuda.pathfinder
Suggested reviewers: seberg
Priority:
Change: Feature
Merge Risk: 
Minimal · previous review 7f171
-
No actionable merge-blocking risk remains in the reviewed changes.
Comment @coderabbitai help to get the list of available commands.
Restore the original test groups while retaining explicit build groups for editable development without build isolation. Test environments keep their existing requirements without gaining package build tools. Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
|
codex on behalf of Ralf: Addressed in 7f171e8. The new The documented |
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
|
The inline comments will do for now. Long-term wise, we should explore solutions such as Renovate App to automate and keep them in-sync. |
codex on behalf of Ralf:
Description
When building CUDA Python packages from the same checkout, pip’s isolated build environments do not reuse dependencies already installed editably in the active environment. A build can therefore select
cuda-pathfinderorcuda-bindingsfrom PyPI instead of using the local sources.CI addresses this with constraint files that select the intended locally built dependency wheels while preserving build isolation. For editable development, however, this approach can require both an editable installation and a separate dependency-wheel build.
This PR enables an alternative using
--no-build-isolation: prepare the external build tools first, then install pathfinder, bindings, and core editably in dependency order. Each build can then use the local dependencies already installed in the environment, avoiding separate dependency-wheel builds.The new
builddependency groups make that preparation explicit and convenient. Thetestgroups are unchanged, and synchronization comments keep the tooling lists aligned with the unchanged isolated-build requirements.For example, from the repository root in an activated virtual environment, with the CUDA toolkit configured and submodules initialized:
python -m pip install \ --group cuda_pathfinder/pyproject.toml:build \ --group cuda_bindings_13/pyproject.toml:build \ --group cuda_core/pyproject.toml:build python -m pip install --no-build-isolation -e ./cuda_pathfinder python -m pip install --no-build-isolation -e ./cuda_bindings_13 python -m pip install --no-build-isolation -e ./cuda_coreThe separate installation commands ensure that each local dependency is available before the next package builds.
Validation
Build-group installation in a fresh environment and
pip checkpassed. Verified that the groups match the existing external build requirements and preserve project metadata.SKIP=lychee pre-commit run --all-filespassed.Checklist