[doc-only] cuda.{core,bindings,pathfinder}: nightly install docs and unify "Development environment" structure#2187
Conversation
…y (top-of-tree) builds Extends the cuda.core change in NVIDIA#2175 to the remaining cuda-python components named in NVIDIA#2166 (which also covers cuda.bindings and cuda.pathfinder). cuda_bindings: - Add a new "Development environment" section to install.rst with a "Installing the latest nightly (top-of-tree builds)" subsection, matching the cuda.core layout. Artifact pattern includes the CUDA major (cuda13*) since cuda-bindings wheels are CUDA-versioned. cuda_pathfinder: - Add a new install.rst (PyPI / Conda / Development environment with nightly subsection / Source). cuda.pathfinder previously had no standalone install page. Nightly uses the single pure-Python cuda-pathfinder-wheel artifact (no python/platform/CUDA selection needed). - Wire install.rst into the toctree in index.rst.
…rce" under "Development environment" Make "Installing from Source" consistently a subsection of "Development environment" across all three components instead of a top-level sibling, matching the intent of the developer-workflow group introduced in NVIDIA#2175. - cuda.core: drop "Installing from Source" from --- to ~~~ (now under Development environment, as a sibling of nightly / uv / pixi). - cuda.bindings: drop "Installing from Source" from --- to ~~~, and drop its "Requirements" and "Editable Install" subsections from ~~~ to ^^^ accordingly. - cuda.pathfinder: drop "Installing from Source" from --- to ~~~ in the new install.rst added earlier in this branch. Also bump SPDX copyright headers on touched existing files to 2025-2026; the new cuda_pathfinder install.rst uses 2026.
|
/ok to test c3e158c |
This comment has been minimized.
This comment has been minimized.
|
@rparolin this is ready |
mdboom
left a comment
There was a problem hiding this comment.
My comments are just nice-to-haves / follow-ups.
| ----------------------- | ||
|
|
||
| The sections above cover end-user installation. The section below focuses on | ||
| a repeatable *development* workflow (editable installs and running tests). |
There was a problem hiding this comment.
What are the advantages of an editable install when it's almost 100% compiled code? Personally, I find them more confusing/trouble than a regular install, since you have to recompile for virtually every change anyway.
There was a problem hiding this comment.
For many Cython-based projects like CuPy, editable install works the same as pure Python projects, in that if a Cython module is not touched, it would not get re-compiled and local development is fast. However, my impression has been that it doesn't quite work for cuda-bindings for whatever reason. I am hoping that dropping Tempita might be the solution, but we'll see.
| $ # Find the latest successful CI run on main: | ||
| $ RUN_ID=$(gh run list -R NVIDIA/cuda-python -w ci.yml -b main -s success -L1 --json databaseId -q '.[0].databaseId') | ||
|
|
||
| $ # Download the wheel (pick your Python version and platform): | ||
| $ gh run download "$RUN_ID" -R NVIDIA/cuda-python -p "cuda-bindings-python312-cuda13*-linux-64-*" | ||
|
|
||
| $ # Install the downloaded wheel: | ||
| $ pip install cuda-bindings-python312-cuda13*-linux-64-*/cuda_bindings*.whl[all] |
There was a problem hiding this comment.
It would be great to put these three lines in a script in toolshed. Something like toolshed/install-latest-wheel cuda_bindings.
There was a problem hiding this comment.
I thought we do not want to document anything from toolshed?
|
Thanks, Mike! |
|
What
Extends #2175 to the remaining components named in #2166 (which covers all three of cuda.pathfinder, cuda.bindings, and cuda.core — the original PR only added the nightly recipe for cuda.core), and unifies the install-doc structure across all three components.
Commit 1 — nightly recipes for the other two components
cuda_bindings/docs/source/install.rst: add a new Development environment section with an Installing the latest nightly (top-of-tree builds) subsection, between Installing from Conda and Installing from Source. Mirrors the cuda.core layout. The artifact pattern includes the CUDA major (cuda13*) because cuda-bindings wheels are CUDA-versioned.cuda_pathfinder/docs/source/install.rst(NEW): cuda.pathfinder previously had no install page. Adds a minimal install.rst (PyPI / Conda / Development environment → nightly / Source). Nightly uses the single pure-Pythoncuda-pathfinder-wheelartifact — no python/platform/CUDA selection needed.cuda_pathfinder/docs/source/index.rst: wireinstallinto the toctree.Commit 2 — consistent nesting of "Installing from Source"
---to~~~so it lives under Development environment as a sibling of the nightly / uv / pixi subsections (instead of as a top-level sibling of Development environment).~~~to^^^so the depth still works.2025-2026; the new cuda_pathfinderinstall.rstcarries2026.Why
#2166 asks for the top-of-tree install recipe to be documented in the developer guide for all components. #2175 only covered cuda.core; this PR closes the gap for the other two and additionally unifies the section nesting so the developer-workflow group reads consistently across all three install pages.
Tested
gh run list -R NVIDIA/cuda-python -w ci.yml -b main -s success -L1resolves cleanly against the live repo.sphinx-buildof all three docs sets (cuda_core/docs,cuda_bindings/docs,cuda_pathfinder/docs) succeeds with no new warnings on the changed/added install.rst files. Pre-existing autosummary warnings in cuda_pathfinder (the package isn't installed in the build env) are unchanged.ci/tools/env-vars(cuda-bindings-python{PY}-cuda{CUDA_VER}-{PLATFORM}-{SHA}) and the cuda.pathfinder upload step (cuda-pathfinder-wheel, single artifact per run).Notes