Repository navigation
cuda.bindings: rename CUDA 13 source root to cuda_bindings_13 - #3147
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. |
|
/ok to test ba4ebf1 |
|
| @@ -23,8 +23,26 @@ def test_checking_build_uses_final_local_output_as_docs_domain(tmp_path, monkeyp | |||
| helper.parent.mkdir(parents=True) | |||
| shutil.copyfile(BUILD_HELPER, helper) | |||
|
|
|||
There was a problem hiding this comment.
codex GPT-6.1-Sol ultra explanation for the changes in this file:
These changes make the existing docs-helper test exercise the source-directory mapping affected by this PR.
The helper checks that cuda.bindings, cuda.core, and cuda.pathfinder are imported from this checkout and that their versions agree with installed distribution metadata. Previously, it inferred each source directory from the distribution name by replacing hyphens with underscores. That inference stops working for bindings after this rename:
Distribution: cuda-bindings
Python import: cuda.bindings
Source directory: cuda_bindings_13
The helper now records the source directories explicitly. To cover that change, this test needs to execute the helper's import checks.
Previously, the test's fake python executable intercepted python - (execute a program from standard input), discarded the program with cat >/dev/null, and returned success. That bypassed the entire import-checking block. Leaving that stub in place would let the test pass even if the helper still expected the old cuda_bindings/ directory.
The added setup creates minimal Python packages under the expected source directories, supplies matching .dist-info/METADATA, and exposes those directories through PYTHONPATH. Removing the python - interception then lets the real interpreter execute the helper's checks against this temporary checkout.
Package installation remains stubbed out, and documentation generation remains simulated, so the test still runs without CUDA or Sphinx. Its existing assertions about the docs domain and copied output remain in place; it now also fails if the helper uses the wrong source directory.
|
Important Review skippedWe couldn't safely recover the incremental review. No full review was started, and the last reviewed checkpoint was preserved. Retry later, or explicitly request a full review by commenting You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 Summary
Priority: ⬇️ Low Change: Refactor Merge Risk: 🔵 Low · up to
|
There was a problem hiding this comment.
Actionable comments posted: 3
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Repository: NVIDIA/cuda-python/.coderabbit.yaml
- Review profile: CHILL
- Plan: Enterprise
- Run ID:
39093a49-fecc-4a59-8b55-d92ef1a9cb2b
⛔ Files ignored due to path filters: 4
benchmarks/cuda_bindings/pixi.lockis excluded by!**/*.lockcuda_bindings_13/docs/source/_static/images/Nsight-Compute-CLI-625x473.pngis excluded by!**/*.pngcuda_bindings_13/pixi.lockis excluded by!**/*.lockcuda_core/pixi.lockis excluded by!**/*.lock
📒 Files selected for processing: 285
.coderabbit.yaml.github/labeler.yml.github/workflows/build-docs.yml.github/workflows/build-wheel.yml.github/workflows/ci-pixi-source-test.yml.github/workflows/ci.yml.github/workflows/coverage.yml.github/workflows/test-sdist-linux.yml.github/workflows/test-sdist-windows.yml.gitignore.pre-commit-config.yamlAGENTS.mdCONTRIBUTING.mdREADME.mdbenchmarks/cuda_bindings/AGENTS.mdbenchmarks/cuda_bindings/pixi.tomlbenchmarks/cuda_core/pixi.tomlci/README.mdci/tools/build_docs_for_link_check.shci/tools/check_pixi_cuda_version.pyci/tools/check_release_notes.pyci/tools/compute_ci_plan.pyci/tools/env-varsci/tools/run-testsci/tools/tests/test_build_docs_for_link_check.pyci/tools/tests/test_check_release_notes.pyci/tools/tests/test_compute_ci_plan.pycontext7.jsoncuda_bindings_13/.git_archival.txtcuda_bindings_13/AGENTS.mdcuda_bindings_13/CLAUDE.mdcuda_bindings_13/DESCRIPTION.rstcuda_bindings_13/LICENSEcuda_bindings_13/MANIFEST.incuda_bindings_13/README.mdcuda_bindings_13/_build_shared.pycuda_bindings_13/build_hooks.pycuda_bindings_13/cuda/bindings/__init__.pxdcuda_bindings_13/cuda/bindings/__init__.pycuda_bindings_13/cuda/bindings/_internal/__init__.pycuda_bindings_13/cuda/bindings/_internal/_fast_enum.pycuda_bindings_13/cuda/bindings/_internal/cudla.pxdcuda_bindings_13/cuda/bindings/_internal/cudla_linux.pyxcuda_bindings_13/cuda/bindings/_internal/cudla_windows.pyxcuda_bindings_13/cuda/bindings/_internal/cufile.pxdcuda_bindings_13/cuda/bindings/_internal/cufile_linux.pyxcuda_bindings_13/cuda/bindings/_internal/driver.pxdcuda_bindings_13/cuda/bindings/_internal/driver_linux.pyxcuda_bindings_13/cuda/bindings/_internal/driver_windows.pyxcuda_bindings_13/cuda/bindings/_internal/nvfatbin.pxdcuda_bindings_13/cuda/bindings/_internal/nvfatbin_linux.pyxcuda_bindings_13/cuda/bindings/_internal/nvfatbin_windows.pyxcuda_bindings_13/cuda/bindings/_internal/nvjitlink.pxdcuda_bindings_13/cuda/bindings/_internal/nvjitlink_linux.pyxcuda_bindings_13/cuda/bindings/_internal/nvjitlink_windows.pyxcuda_bindings_13/cuda/bindings/_internal/nvml.pxdcuda_bindings_13/cuda/bindings/_internal/nvml_linux.pyxcuda_bindings_13/cuda/bindings/_internal/nvml_windows.pyxcuda_bindings_13/cuda/bindings/_internal/nvrtc.pxdcuda_bindings_13/cuda/bindings/_internal/nvrtc_linux.pyxcuda_bindings_13/cuda/bindings/_internal/nvrtc_windows.pyxcuda_bindings_13/cuda/bindings/_internal/nvvm.pxdcuda_bindings_13/cuda/bindings/_internal/nvvm_linux.pyxcuda_bindings_13/cuda/bindings/_internal/nvvm_windows.pyxcuda_bindings_13/cuda/bindings/_internal/runtime.pxdcuda_bindings_13/cuda/bindings/_internal/runtime_linux.pyxcuda_bindings_13/cuda/bindings/_internal/runtime_ptds.pxdcuda_bindings_13/cuda/bindings/_internal/runtime_ptds_linux.pyxcuda_bindings_13/cuda/bindings/_internal/runtime_ptds_windows.pyxcuda_bindings_13/cuda/bindings/_internal/runtime_windows.pyxcuda_bindings_13/cuda/bindings/_internal/utils.pxdcuda_bindings_13/cuda/bindings/_internal/utils.pyxcuda_bindings_13/cuda/bindings/_lib/__init__.pycuda_bindings_13/cuda/bindings/_lib/cyruntime/cyruntime.pxdcuda_bindings_13/cuda/bindings/_lib/cyruntime/cyruntime.pxicuda_bindings_13/cuda/bindings/_lib/dlfcn.pxdcuda_bindings_13/cuda/bindings/_lib/utils.pxdcuda_bindings_13/cuda/bindings/_lib/utils.pxicuda_bindings_13/cuda/bindings/_lib/windll.pxdcuda_bindings_13/cuda/bindings/_v2/__init__.pycuda_bindings_13/cuda/bindings/_v2/nvrtc.pxdcuda_bindings_13/cuda/bindings/_v2/nvrtc.pyxcuda_bindings_13/cuda/bindings/cudla.pxdcuda_bindings_13/cuda/bindings/cudla.pyxcuda_bindings_13/cuda/bindings/cufile.pxdcuda_bindings_13/cuda/bindings/cufile.pyxcuda_bindings_13/cuda/bindings/cycudla.pxdcuda_bindings_13/cuda/bindings/cycudla.pyxcuda_bindings_13/cuda/bindings/cycufile.pxdcuda_bindings_13/cuda/bindings/cycufile.pyxcuda_bindings_13/cuda/bindings/cydriver.pxdcuda_bindings_13/cuda/bindings/cydriver.pyxcuda_bindings_13/cuda/bindings/cynvfatbin.pxdcuda_bindings_13/cuda/bindings/cynvfatbin.pyxcuda_bindings_13/cuda/bindings/cynvjitlink.pxdcuda_bindings_13/cuda/bindings/cynvjitlink.pyxcuda_bindings_13/cuda/bindings/cynvml.pxdcuda_bindings_13/cuda/bindings/cynvml.pyxcuda_bindings_13/cuda/bindings/cynvrtc.pxdcuda_bindings_13/cuda/bindings/cynvrtc.pyxcuda_bindings_13/cuda/bindings/cynvvm.pxdcuda_bindings_13/cuda/bindings/cynvvm.pyxcuda_bindings_13/cuda/bindings/cyruntime.pxdcuda_bindings_13/cuda/bindings/cyruntime.pyxcuda_bindings_13/cuda/bindings/driver.pxdcuda_bindings_13/cuda/bindings/driver.pyxcuda_bindings_13/cuda/bindings/nvfatbin.pxdcuda_bindings_13/cuda/bindings/nvfatbin.pyxcuda_bindings_13/cuda/bindings/nvjitlink.pxdcuda_bindings_13/cuda/bindings/nvjitlink.pyxcuda_bindings_13/cuda/bindings/nvml.pxdcuda_bindings_13/cuda/bindings/nvml.pyxcuda_bindings_13/cuda/bindings/nvrtc.pxdcuda_bindings_13/cuda/bindings/nvrtc.pyxcuda_bindings_13/cuda/bindings/nvvm.pxdcuda_bindings_13/cuda/bindings/nvvm.pyxcuda_bindings_13/cuda/bindings/runtime.pxdcuda_bindings_13/cuda/bindings/runtime.pyxcuda_bindings_13/cuda/bindings/utils/__init__.pycuda_bindings_13/cuda/bindings/utils/_envvar.pycuda_bindings_13/cuda/bindings/utils/_nvvm_utils.pycuda_bindings_13/cuda/bindings/utils/_ptx_utils.pycuda_bindings_13/cuda/bindings/utils/_version_check.pycuda_bindings_13/docs/Makefilecuda_bindings_13/docs/README.mdcuda_bindings_13/docs/build_docs.shcuda_bindings_13/docs/make.batcuda_bindings_13/docs/nv-versions.jsoncuda_bindings_13/docs/source/_templates/main.htmlcuda_bindings_13/docs/source/api.rstcuda_bindings_13/docs/source/conduct.rstcuda_bindings_13/docs/source/conf.pycuda_bindings_13/docs/source/contribute.rstcuda_bindings_13/docs/source/environment_variables.rstcuda_bindings_13/docs/source/examples.rstcuda_bindings_13/docs/source/index.rstcuda_bindings_13/docs/source/install.rstcuda_bindings_13/docs/source/license.rstcuda_bindings_13/docs/source/module/cudla.rstcuda_bindings_13/docs/source/module/cufile.rstcuda_bindings_13/docs/source/module/driver.rstcuda_bindings_13/docs/source/module/nvfatbin.rstcuda_bindings_13/docs/source/module/nvjitlink.rstcuda_bindings_13/docs/source/module/nvml.rstcuda_bindings_13/docs/source/module/nvrtc.rstcuda_bindings_13/docs/source/module/nvvm.rstcuda_bindings_13/docs/source/module/runtime.rstcuda_bindings_13/docs/source/module/utils.rstcuda_bindings_13/docs/source/motivation.rstcuda_bindings_13/docs/source/overview.rstcuda_bindings_13/docs/source/release.rstcuda_bindings_13/docs/source/release/11.4.0-notes.rstcuda_bindings_13/docs/source/release/11.5.0-notes.rstcuda_bindings_13/docs/source/release/11.6.0-notes.rstcuda_bindings_13/docs/source/release/11.6.1-notes.rstcuda_bindings_13/docs/source/release/11.7.0-notes.rstcuda_bindings_13/docs/source/release/11.7.1-notes.rstcuda_bindings_13/docs/source/release/11.8.0-notes.rstcuda_bindings_13/docs/source/release/11.8.1-notes.rstcuda_bindings_13/docs/source/release/11.8.2-notes.rstcuda_bindings_13/docs/source/release/11.8.3-notes.rstcuda_bindings_13/docs/source/release/11.8.4-notes.rstcuda_bindings_13/docs/source/release/11.8.5-notes.rstcuda_bindings_13/docs/source/release/11.8.6-notes.rstcuda_bindings_13/docs/source/release/11.8.7-notes.rstcuda_bindings_13/docs/source/release/12.0.0-notes.rstcuda_bindings_13/docs/source/release/12.1.0-notes.rstcuda_bindings_13/docs/source/release/12.2.0-notes.rstcuda_bindings_13/docs/source/release/12.2.1-notes.rstcuda_bindings_13/docs/source/release/12.3.0-notes.rstcuda_bindings_13/docs/source/release/12.4.0-notes.rstcuda_bindings_13/docs/source/release/12.5.0-notes.rstcuda_bindings_13/docs/source/release/12.6.0-notes.rstcuda_bindings_13/docs/source/release/12.6.1-notes.rstcuda_bindings_13/docs/source/release/12.6.2-notes.rstcuda_bindings_13/docs/source/release/12.8.0-notes.rstcuda_bindings_13/docs/source/release/12.9.0-notes.rstcuda_bindings_13/docs/source/release/12.9.1-notes.rstcuda_bindings_13/docs/source/release/12.9.2-notes.rstcuda_bindings_13/docs/source/release/12.9.3-notes.rstcuda_bindings_13/docs/source/release/12.9.4-notes.rstcuda_bindings_13/docs/source/release/12.9.5-notes.rstcuda_bindings_13/docs/source/release/12.9.6-notes.rstcuda_bindings_13/docs/source/release/12.9.7-notes.rstcuda_bindings_13/docs/source/release/12.9.8-notes.rstcuda_bindings_13/docs/source/release/12.9.9-notes.rstcuda_bindings_13/docs/source/release/13.0.0-notes.rstcuda_bindings_13/docs/source/release/13.0.1-notes.rstcuda_bindings_13/docs/source/release/13.0.2-notes.rstcuda_bindings_13/docs/source/release/13.0.3-notes.rstcuda_bindings_13/docs/source/release/13.1.0-notes.rstcuda_bindings_13/docs/source/release/13.1.1-notes.rstcuda_bindings_13/docs/source/release/13.2.0-notes.rstcuda_bindings_13/docs/source/release/13.3.0-notes.rstcuda_bindings_13/docs/source/release/13.3.1-notes.rstcuda_bindings_13/docs/source/release/13.4.0-notes.rstcuda_bindings_13/docs/source/release/13.4.0b1-notes.rstcuda_bindings_13/docs/source/release/13.4.1-notes.rstcuda_bindings_13/docs/source/release/13.4.1a0-notes.rstcuda_bindings_13/docs/source/release/13.4.2-notes.rstcuda_bindings_13/docs/source/release/13.4.3-notes.rstcuda_bindings_13/docs/source/release/13.5.0-notes.rstcuda_bindings_13/docs/source/support.rstcuda_bindings_13/docs/source/tips_and_tricks.rstcuda_bindings_13/docs/versions.jsoncuda_bindings_13/pixi.tomlcuda_bindings_13/pyproject.tomlcuda_bindings_13/setup.pycuda_bindings_13/tests/conftest.pycuda_bindings_13/tests/cudla/conftest.pycuda_bindings_13/tests/cudla/test_cudla_bindings.pycuda_bindings_13/tests/cufile.jsoncuda_bindings_13/tests/cython/build_tests.batcuda_bindings_13/tests/cython/build_tests.pycuda_bindings_13/tests/cython/build_tests.shcuda_bindings_13/tests/cython/test_ccuda.pyxcuda_bindings_13/tests/cython/test_ccudart.pyxcuda_bindings_13/tests/cython/test_cython.pycuda_bindings_13/tests/cython/test_interoperability_cython.pyxcuda_bindings_13/tests/example_tests/run_samples.pycuda_bindings_13/tests/example_tests/test_args.jsoncuda_bindings_13/tests/example_tests/test_cuda_bindings_utils.pycuda_bindings_13/tests/example_tests/test_interactive_sample_configuration.pycuda_bindings_13/tests/example_tests/test_samples.pycuda_bindings_13/tests/legacy_api/README.mdcuda_bindings_13/tests/legacy_api/test_legacy_kernelParams.pycuda_bindings_13/tests/legacy_api/test_legacy_nvfatbin.pycuda_bindings_13/tests/legacy_api/test_legacy_nvjitlink.pycuda_bindings_13/tests/legacy_api/test_legacy_nvrtc.pycuda_bindings_13/tests/nvml/README.mdcuda_bindings_13/tests/nvml/__init__.pycuda_bindings_13/tests/nvml/conftest.pycuda_bindings_13/tests/nvml/test_compute_mode.pycuda_bindings_13/tests/nvml/test_cuda.pycuda_bindings_13/tests/nvml/test_device.pycuda_bindings_13/tests/nvml/test_gpu.pycuda_bindings_13/tests/nvml/test_init.pycuda_bindings_13/tests/nvml/test_nvlink.pycuda_bindings_13/tests/nvml/test_page_retirement.pycuda_bindings_13/tests/nvml/test_pci.pycuda_bindings_13/tests/nvml/test_pynvml.pycuda_bindings_13/tests/nvml/test_unit.pycuda_bindings_13/tests/nvml/test_util.pycuda_bindings_13/tests/nvml/util.pycuda_bindings_13/tests/test_basics.pycuda_bindings_13/tests/test_build_hooks.pycuda_bindings_13/tests/test_cuda.pycuda_bindings_13/tests/test_cudart.pycuda_bindings_13/tests/test_cufile.pycuda_bindings_13/tests/test_envvar.pycuda_bindings_13/tests/test_graphics_apis.pycuda_bindings_13/tests/test_interoperability.pycuda_bindings_13/tests/test_kernelParams.pycuda_bindings_13/tests/test_nvfatbin.pycuda_bindings_13/tests/test_nvjitlink.pycuda_bindings_13/tests/test_nvrtc.pycuda_bindings_13/tests/test_nvvm.pycuda_bindings_13/tests/test_utils.pycuda_bindings_13/tests/test_version_check.pycuda_bindings_13/tests/utils/check_cyclical_import.pycuda_core/AGENTS.mdcuda_core/_build_shared.pycuda_core/build_hooks.pycuda_core/pixi.tomlcuda_core/pyproject.tomlcuda_core/tests/AGENTS.mdcuda_core/tests/conftest.pycuda_core/tests/example_tests/test_sample_environment.pycuda_core/tests/test_build_hooks.pycuda_core/tests/test_driver_table.pycuda_core/tests/test_graphics.pycuda_core/tests/test_rt_layout.pycuda_python/AGENTS.mdcuda_python/docs/build_all_docs.shcuda_python_test_helpers/cuda_python_test_helpers/_pytest_plugin.pycuda_python_test_helpers/cuda_python_test_helpers/cython_cache.pycuda_python_test_helpers/cuda_python_test_helpers/graphics.pypixi.tomlpytest.iniruff.tomltoolshed/build_static_bitcode_input.pytoolshed/check_cython_not_none.pytoolshed/check_generated_file_seals.pytoolshed/check_spdx.pytoolshed/find_skipped_tests.py
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 9 remain after this review.
ba4ebf1 to
ac0e4bb
Compare
983ac75 to
1e5ecd1
Compare
1e5ecd1 to
6be5142
Compare
ac0e4bb to
284b006
Compare
6be5142 to
b361255
Compare
98638c6 to
4449081
Compare
5010c1e to
a7d8e47
Compare
4449081 to
fe8b78d
Compare
5192985 to
4af0921
Compare
Move the current bindings sources and update build, CI, documentation, and tooling paths. Preserve distribution and import names, samples, historical links, and the shared build-helper symlink. Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
4af0921 to
4fb18b9
Compare
mdboom
left a comment
There was a problem hiding this comment.
My concern is still that this creates many places that will need to be updated when we bump 13->14 and 12->13. (My grep counts 155 such places). It is not /yet/ the case that updating ci/versions.yaml alone will handle most of that for us.
However, my agent assures me that most of these /can/ be updated to use a single source of truth. For those that /can't/ (hardcoded paths in yaml files or .gitignore etc) judicious use of wildcards may help us.
So I am approving this with the suggestion that maybe the next step should be adding the ci/versions.yml in the new form you proposed and removing as much hardcoding to cuda_bindings_13 as we can. The check will be with watching rg --hidden -o cuda_bindings_13 | wc -l, hopefully in the single digits.
The broken GitHub blob links (due to the directory rename) is a real issue, but also one that I think is not particularly important. There is a way we can avoid it going forward (see #3164), but I don't think we can fix it for links we have already made out in the wild. #3164 can be handled completely independently of this.
|
Thanks for the approval!
That is solved comprehensively in #2737. This PR is deliberately a minimal mechanical step to — conceptually — set the stage for adding the content of #2737 on top. That will completely eliminate the renaming issue. I'll follow through with that with highest priority. |
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
|
/ok to test 991bbc8 |
Thanks also for opening #3164. Linking PyPI descriptions to the corresponding release tag makes sense and would keep those links stable across future source-directory moves. I'll keep this in mind as I bring over the changes from #2737 in layers. Please let me know if there's anything I can do to help coordinate the two efforts. |
juenglin
left a comment
There was a problem hiding this comment.
A few spots where the mechanical cuda_bindings -> cuda_bindings_13 substitution landed on prose/comments that refer to the version-neutral cuda-bindings package or import rather than the renamed source directory. Non-blocking; flagging for clarity since the _13 suffix implies a version-specificity that doesn't exist at the package level.
| # cuda_bindings -> cuda_pathfinder | ||
| # cuda_core -> cuda_pathfinder, cuda_bindings | ||
| # cuda_python -> cuda_pathfinder, cuda_bindings, cuda_core (meta package) | ||
| # cuda_bindings_13 -> cuda_pathfinder |
There was a problem hiding this comment.
This dependency graph (lines 125-131) is package-level — it's "verified in pyproject.toml files" — and the cuda-bindings package/import is version-neutral. The _13 suffix is the source-directory name, so applying it to the package dependencies reads as if a version-specific package existed. Consider keeping these nodes as cuda_bindings while only filesystem paths take the _13 suffix.
| "packaging>=24", | ||
| "docutils==0.23", | ||
| # Required by tests/test_graphics.py; pinned to match cuda_bindings. | ||
| # Required by tests/test_graphics.py; pinned to match cuda_bindings_13. |
There was a problem hiding this comment.
This pin parity is with the cuda-bindings package pin, not the source directory, so the _13 suffix is misleading here. Suggest "pinned to match cuda-bindings".
| """Shared GL helpers for graphics interop tests. | ||
|
|
||
| Both ``cuda_core`` and ``cuda_bindings`` graphics tests need to skip | ||
| Both ``cuda_core`` and ``cuda_bindings_13`` graphics tests need to skip |
There was a problem hiding this comment.
"cuda_bindings graphics tests" refers to the bindings package's test suite sharing this helper, not the source directory, so _13 is misleading. Same applies on line 138.
| compile into the `_<name>` extension (`_cpp/rt/` for `_rt`). | ||
| - **Build backend**: `build_hooks.py` handles Cython extension setup and build | ||
| dependency wiring. Logic shared with `cuda_bindings` (toolchain selection, | ||
| dependency wiring. Logic shared with `cuda_bindings_13` (toolchain selection, |
There was a problem hiding this comment.
The shared build logic is a property of the cuda-bindings package/build backend. The real file path on line 28 correctly keeps _13, but here "Logic shared with cuda_bindings_13" reads as version-specific; consider cuda-bindings.
|
|
||
| packages into `cuda_python_test_helpers` (both `cuda_core` and | ||
| `cuda_bindings` test environments already depend on it). | ||
| `cuda_bindings_13` test environments already depend on it). |
There was a problem hiding this comment.
"cuda_bindings test environments" is a package-level concept; _13 is the directory name. Suggest cuda-bindings here.
| # coming back to cu13 must not silently reuse the cu12 extension. | ||
| # | ||
| # cuda_core only: cuda_bindings cannot be source-built in its cu12 | ||
| # cuda_core only: cuda_bindings_13 cannot be source-built in its cu12 |
There was a problem hiding this comment.
This now reads as self-contradictory (cuda_bindings_13 ... "in its cu12 environment"). The statement is about the bindings package lacking a cu12 source build, so cuda.bindings/cuda-bindings is clearer than the _13 directory name.
Thanks for catching those! I'll take care of them right after this PR lands. — Unfortunately the CI is super slow today, I think it'll best to use the almost complete CI here to get the big rename done. |
The fixes were merged with PR #3165 (comment) |
Description
Following the discussion of #2737, the team requested a staged approach to supporting multiple CUDA bindings release lines on
main(#1199). This PR is the first preparatory step: give the existing CUDA 13 source root an explicit versioned name and update the plumbing that depends on it.This PR renames the CUDA 13 bindings source directory from
cuda_bindings/tocuda_bindings_13/, and updates the build, test, CI, documentation, and tooling paths that refer to it.Package names, Python imports, generated bindings, and the sample and benchmark directory names stay the same. The shared build-helper symlink is retargeted to the new directory, and release documentation retains support for locating the source root in older tags.
This is a standalone PR targeting
main. It uses the checkout-aware Lychee support merged in #3143 to validate repository links to the renamed directory before that directory exists on the default branch. This is a new iteration of #3116, which remains unchanged for reference.Review aid
Most of the diff consists of the directory move and repeated path substitutions. A two-commit review branch, built from the same
mainbase as this PR revision, makes the other adjustments easier to inspect. Read these two views in order:mainbase after replacingcuda_bindings_13withcuda_bindingsin file contents and symlink targets; all file and directory paths stay as in this PR.Directory moves remain visible in the first view. The intermediate commit is for review only and is not expected to build. Paths, modes, and contents were independently checked across all 1,158 tracked entries; normalization changes 61 blobs and 156 occurrences.
This review comment explains the changes in
ci/tools/tests/test_build_docs_for_link_check.py, including why the test now executes the helper's import checks.Validation
For the current standalone revision, after merging
mainatb288fc81fed8:mainis identical to the preceding revision, and that incoming changes frommainare preserved exactly. No additional rename adjustments were needed.pre-commit run --all-files --show-diff-on-failure: passed.Earlier end-to-end validation, before the subsequent
mainrefreshes:The full CI matrix has not been rerun for the current revision.
Checklist