Skip to content

ci: retire legacy branch-based bindings maintenance - #3322

Open
rwgk wants to merge 9 commits into
rwgk/cb12-staged-06-planningfrom
rwgk/cb12-staged-07-retirement
Open

rwgk wants to merge 9 commits into
rwgk/cb12-staged-06-planningfrom
rwgk/cb12-staged-07-retirement

Conversation

@rwgk

@rwgk rwgk commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

— codex GPT-6 on behalf of Ralf —

Layer 7 of 7 of the staged "CUDA 12 bindings on main" stack. Previous: #3321. Stack map at the bottom.

What this PR does

Removes what the previous six layers made obsolete, and writes down how the two roots are maintained from now on.

  • ci/versions.yml moves to schema 2: cuda.bindings.package_roots with toolkit_version and release_status; backport_branch, cuda.build, and cuda.prev_build are gone. bindings_config.py still reads the old format, because nightly may point at an older artifact source and release dry runs may point at retained CUDA 13 tags.
  • New pre-commit hook check-bindings-config: each root's setuptools-scm selector must be v<major>.* for its CUDA major, the metapackage selector table must agree, and Core's cu12/cu13 bindings floors must not exceed the pinned toolkits. The old floor hook in toolshed/ is narrowed to extras and docs.
  • The Pixi pin hook now checks Core's maintenance environment as well as its current environment.
  • backport.yml becomes manual-only: a merged PR number plus an existing target branch, with validation. No more automatic backports on the to-be-backported label. Dependabot's 12.9.x entry is removed.
  • ci-nightly.yml extracts only ci/versions.yml from the artifact-source archive: schema-2 sources take the new route, older sources the legacy route (legacy-backport-branch). The legacy artifact aliases (cuda-python-wheel, <core artifact>-tests) are no longer produced.
  • Docs: CONTRIBUTING.md (selector table, transferring a fix between roots with git format-patch --relative and git am --directory, CUDA-major artifact flow, release branches), ci/README.md (registry, SCM milestones, nightly rollout, how to read CI job names, historical reruns, maintaining both roots, changing the supported lines), AGENTS.md (SYNCED blocks), cuda_bindings_12/MAINTENANCE.md (new), install page driver baseline correction (Linux 525.60.13, Windows 528.33), CI diagram.

After this merges

  • The 12.9.x branch is frozen except for emergency fixes; routine CUDA 12 work happens in cuda_bindings_12/ on main.
  • The retained v12.9.11a0 milestone is already on main; both alternatives are restacked onto it and contain no temporary SCM bootstrap.
  • Remove the legacy nightly route after the first schema-2 main run succeeds.

Where to look

All changes (36 files, +977 / -377)

Config and hooks: ci/versions.yml, .pre-commit-config.yaml (new hook; floor hook narrowed), ci/tools/bindings_config.py (metadata checks), toolshed/check_cuda_core_bindings_floor.py, cuda_core/cuda/core/_bindings_floor.py (comment), cuda_core/tests/test_bindings_floor.py, ci/tools/tests/test_bindings_metadata.py (new), ci/tools/check_pixi_cuda_version.py, ci/tools/tests/test_bindings_config.py.

CI workaround: cuda_core/tests/test_memory.py runs supported pool-trim cases serially for the known driver synchronization issue #3350.

Workflows: backport.yml, .github/dependabot.yml, ci-nightly.yml, coverage.yml (registry-driven), build-wheel.yml (aliases removed), test-wheel-linux.yml, test-wheel-windows.yml (legacy-backport-branch input).

Docs: AGENTS.md, CONTRIBUTING.md, README.md, ci/README.md, ci/ci-pipeline.mmd, .github/RELEASE-bindings.md, cuda_bindings_12/{AGENTS.md,MAINTENANCE.md,README.md,docs/README.md,docs/source/contribute.md,docs/source/install.md,docs/source/release/12.X.Y-notes.rst}, cuda_bindings_13/{AGENTS.md,README.md,docs/README.md,docs/source/install.rst,docs/source/support.rst}, cuda_core/AGENTS.md.

Validation
  • Not exercised: the manual backport workflow against a live branch, and the nightly workflow against a schema-2 artifact source (there is none until this stack is on main).
  • 374 CI-tool tests passed locally; full pre-commit passed at 126ed74fb5bbfbc91a04e50557cf936efef4da7f.
  • Full CI on earlier head 126ed74fb5bbfbc91a04e50557cf936efef4da7f passed: 105 successful jobs and one expected skip.
  • The Windows 3.14t/A100-MCDM regression job passed on driver 596.36. DeviceMR and PinnedMR pool-trim cases ran serially and passed; ManagedMR had its normal unsupported-device skip.
Stack map: what main can do after each layer merges
Layer PR After it merges, main ...
1 #3314 behaves exactly as before; CI has one reader for the two bindings roots; CUDA 13 versions can no longer match a v12.* tag
2 #3315 lets a developer build, test, and document cuda_bindings_12/; the PR-time CPU source-build smoke covers both roots; three CUDA 12 runtime fixes are in
3 #3317 builds the CUDA 12 bindings wheel itself and runs its GPU tests; cuda.core and the metapackage still consume 12.9.x artifacts
4 #3318 uses same-run CUDA 12 wheels everywhere; PR CI no longer reads the 12.9.x branch
5 #3319 can release CUDA 12 from a v12.9.N tag on main; CUDA 13 releases are unchanged
6 #3321 builds and tests only what a change needs, per bindings root, reusing baseline artifacts
7 #3322 carries the schema-2 registry, a manual-only backport workflow, a metadata consistency hook, and the maintenance docs; 12.9.x is frozen

Every layer was designed to be mergeable on its own and had a green full CI run at its pre-rebase head on 2026-10-31. The stack is the "individually mergeable pieces" alternative to #3174-#3182; both stacks reach the same end state except that this one keeps compatibility routes for older artifact sources and retained CUDA 13 tags.

@copy-pr-bot

copy-pr-bot Bot commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

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.

@rwgk
rwgk added this pull request to stack #3316 October 31, 2026 06:04
@github-actions github-actions Bot added CI/CD CI/CD infrastructure cuda.bindings Everything related to the cuda.bindings module cuda.core Everything related to the cuda.core module labels Oct 31, 2026
@rwgk rwgk added this to the cuda.bindings next milestone Oct 31, 2026
@rwgk rwgk added enhancement Any code-related improvements and removed cuda.core Everything related to the cuda.core module labels Oct 31, 2026
@rwgk rwgk self-assigned this Oct 31, 2026
@rwgk
rwgk force-pushed the rwgk/cb12-staged-07-retirement branch from c42bcf9 to 1c13b86 Compare October 31, 2026 07:49
@github-actions github-actions Bot added the cuda.core Everything related to the cuda.core module label Oct 31, 2026
@rwgk
rwgk force-pushed the rwgk/cb12-staged-07-retirement branch from 1c13b86 to e91c0cb Compare October 31, 2026 08:03

rwgk commented Oct 31, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test e91c0cb

@github-actions

Copy link
Copy Markdown
Contributor

@rwgk
rwgk force-pushed the rwgk/cb12-staged-07-retirement branch 2 times, most recently from 197e95c to 26c9902 Compare November 2, 2026 04:53
@rwgk
rwgk marked this pull request as ready for review November 2, 2026 04:57
@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Explain Change →

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • Resume reviews
  • Trigger review
Summary

Summary by CodeRabbit

  • Documentation

    • Clarified CUDA 12 installation requirements, optional Toolkit components, and the distinction between installing cuda-python and cuda-bindings.
    • Updated guidance for selecting CUDA 12 or 13 source builds, installing nightly wheels, and building documentation for each release line.
    • Documented that CUDA 12.9 and CUDA 13 release lines are maintained on the main branch, and clarified CUDA 12 driver compatibility guidance.
    • Expanded guidance for maintaining and releasing both CUDA bindings lines.
  • Release and CI

    • Tag-triggered builds now validate and package the selected CUDA bindings release line.
    • Backport pull requests are created through manual workflow dispatch with an explicit release branch and pull request number.
    • Nightly wheel tests now support release-specific configuration and legacy backport branches.

The PR registers CUDA 12 and CUDA 13 bindings roots and updates CI configuration, workflows, release procedures, and package guidance to use them. It adds metadata checks, updates nightly and coverage selection, and changes legacy backport and artifact handling.

Changes: Dual Bindings and Release Workflows

Layer / File(s) Summary
Bindings registry and metadata validation
ci/versions.yml, ci/tools/bindings_config.py, .pre-commit-config.yaml, ci/tools/check_pixi_cuda_version.py, ci/tools/tests/*, cuda_core/AGENTS.md, cuda_core/cuda/core/_bindings_floor.py, cuda_core/tests/test_bindings_floor.py, toolshed/check_cuda_core_bindings_floor.py
The registry identifies CUDA 12 as maintenance and CUDA 13 as current. New checks validate toolkit floors and package selectors. The Core floor hook now checks package declarations and documentation rather than CI toolkit pins.
Nightly, coverage, and wheel-test selection
.github/workflows/ci-nightly.yml, .github/workflows/coverage.yml, .github/workflows/test-wheel-linux.yml, .github/workflows/test-wheel-windows.yml, .github/workflows/build-wheel.yml
Nightly jobs read configuration from the resolved source revision and pass bindings settings to test jobs. Coverage jobs resolve the active bindings root. Legacy wheel tests take an explicit backport branch, and legacy artifact aliases are removed.
Release and backport workflow
.github/RELEASE-bindings.md, .github/workflows/backport.yml, .github/dependabot.yml
Backports now use manual dispatch with validated PR and target-branch inputs. Release guidance describes tag-specific bindings selection. The 12.9.x Actions Dependabot configuration is removed.
Cross-root maintenance and contribution guidance
AGENTS.md, CONTRIBUTING.md, README.md, cuda_bindings_12/AGENTS.md, cuda_bindings_12/MAINTENANCE.md, cuda_bindings_13/AGENTS.md, cuda_bindings_13/docs/source/support.rst, cuda_core/AGENTS.md, ci/README.md
Guidance covers transferring handwritten fixes, checking synchronized snippets, and maintaining both roots. Routine CUDA 12 work is directed to main; the historical 12.9.x branch is reserved for emergency fixes.
Bindings installation and documentation guides
cuda_bindings_12/README.md, cuda_bindings_12/docs/*, cuda_bindings_13/README.md, cuda_bindings_13/docs/*
The package guides distinguish the CUDA 12 and CUDA 13 source roots and documentation environments. CUDA 12 installation guidance updates driver baselines and lists optional Toolkit components.
CI planning and release documentation
ci/README.md, ci/ci-pipeline.mmd, CONTRIBUTING.md
The CI documentation and diagram describe registry-based package selection, nightly artifact paths, workplans, release reruns, and release-line changes. The contribution guide updates Pixi lockfile and CI workflow guidance.

Possibly related issues

Possibly related PRs

  • NVIDIA/cuda-python#3176 — Adds registry-based testing for both bindings majors. This PR continues that transition with schema-2 configuration and legacy nightly artifact compatibility.
  • NVIDIA/cuda-python#3275 — Introduces setup-hardened-python, which this PR uses to set up Python for bindings configuration in coverage CI.

Suggested labels: github_actions, documentation

Suggested reviewers: mdboom

Change: Feature

Merge Risk: Low · previous review bf9b3

The sample-test instructions still omit the NVRTC requirement, so those tests can fail in an environment without NVRTC. Two CI jobs also install tooling while checkout credentials are available. These are localized risks; merge with them understood.

Security architecture risk: Low · up to bf9b3

The inspected workflows preserve package identity and strengthen backport validation. No introduced security concern was established, but private downstream compatibility and recovery after partial backport failure remain unverified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • observed — The relevant authority includes repository writes through backport automation and execution of selected test sources on GPU runners. Linux test containers run as root with seccomp unconfined; custom-driver rows additionally use privileged mode and the host PID namespace. That runner configuration and SHA-selected source checkout already existed at the PR base.

Security Findings and Attack Paths

  • observed — An explicit nightly run override still resolves its SHA without checking workflow identity, successful conclusion, or main-branch provenance in that override path. This behavior predates the PR; the head adds positive-integer validation and removes direct shell interpolation of the input. It is an existing trust assumption, not an established introduced vulnerability.

Trust Boundaries and Controls

  • observed — Nightly configuration parsing uses safe YAML loading, rejects unsupported schema versions, validates the emitted current toolkit format, and validates historical branch refs before writing routing outputs. The shared parser also requires exactly one current and one maintenance package with distinct CUDA majors.

Resilience and Maintainability Implications

  • observed — Backports with the same source PR and target branch are serialized without canceling an active run, and a non-successful action result fails the workflow with manual recovery guidance. Those controls do not establish idempotent repetition or cleanup of partially created branches or PRs; the unchanged external action's implementation was not verified.
- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3


Review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 718fd32 and 26c9902.

Files selected for processing: 35
  • .github/RELEASE-bindings.md
  • .github/dependabot.yml
  • .github/workflows/backport.yml
  • .github/workflows/build-wheel.yml
  • .github/workflows/ci-nightly.yml
  • .github/workflows/coverage.yml
  • .github/workflows/test-wheel-linux.yml
  • .github/workflows/test-wheel-windows.yml
  • .pre-commit-config.yaml
  • AGENTS.md
  • CONTRIBUTING.md
  • README.md
  • ci/README.md
  • ci/ci-pipeline.mmd
  • ci/tools/bindings_config.py
  • ci/tools/check_pixi_cuda_version.py
  • ci/tools/tests/test_bindings_config.py
  • ci/tools/tests/test_bindings_metadata.py
  • ci/versions.yml
  • cuda_bindings_12/AGENTS.md
  • cuda_bindings_12/MAINTENANCE.md
  • cuda_bindings_12/README.md
  • cuda_bindings_12/docs/README.md
  • cuda_bindings_12/docs/source/contribute.md
  • cuda_bindings_12/docs/source/install.md
  • cuda_bindings_12/docs/source/release/12.X.Y-notes.rst
  • cuda_bindings_13/AGENTS.md
  • cuda_bindings_13/README.md
  • cuda_bindings_13/docs/README.md
  • cuda_bindings_13/docs/source/install.rst
  • cuda_bindings_13/docs/source/support.rst
  • cuda_core/AGENTS.md
  • cuda_core/cuda/core/_bindings_floor.py
  • cuda_core/tests/test_bindings_floor.py
  • toolshed/check_cuda_core_bindings_floor.py
Files with no reviewable changes: 2
  • .github/workflows/build-wheel.yml
  • .github/dependabot.yml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review.

Comment on lines +92 to +93
- name: Install CI tool dependencies
run: python -m pip install -e ./ci

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor · Security & Privacy · Quick win

important: Remove the persisted checkout credential before installing CI dependencies.

find-wheels now runs pip install -e ./ci after a checkout that retains its credential. A dependency build script can access that credential. Set persist-credentials: false on the checkout and give find-wheels only the contents: read and actions: read permissions it needs. (github.com)

Based on learnings: jobs that run dependency build tooling should use persist-credentials: false and minimal permissions. As per path instructions: “focus on least-privilege permissions” for workflows.

Tools
zizmor (1.30.1)

[warning] 15-468: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)


[warning] 72-165: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)

Sources: Path instructions, Learnings

Comment on lines +34 to +35
- name: Install CI tool dependencies
run: python3 -m pip install -e ./ci

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor · Security & Privacy · Quick win

important: Remove the persisted checkout credential from coverage-vars.

coverage-vars now installs CI dependencies after a checkout that retains its credential. A dependency build script can access that credential. Set persist-credentials: false on this checkout and declare contents: read for coverage-vars. (github.com)

Based on learnings: jobs that run dependency build tooling should use persist-credentials: false and minimal permissions. As per path instructions: “focus on least-privilege permissions” for workflows.

Tools
zizmor (1.30.1)

[warning] 5-623: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)


[warning] 19-45: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)

Sources: Path instructions, Learnings

Comment thread cuda_bindings_12/README.md Outdated
Testing dependencies can be installed using the `[test]` optional dependency identifier. For example, `pip install -v -e .[test]`.
Run the commands below from `cuda_bindings_12/`, in an environment containing
the CUDA 12 bindings. Install the package and its `test` dependency group with
`python -m pip install -v -e . --group test`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor · Functional Correctness · Quick win

important: --group was added in pip 25.1, but this setup command does not require or upgrade pip. With pip 25.0 or older, the command fails before installing the package. Add a pip>=25.1 prerequisite or retain the [test] extra; apply the same correction to cuda_bindings_13/README.md Line 25. (pip.pypa.io)

rwgk commented Nov 4, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test 178997a

rwgk commented Nov 4, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test 126ed74

@rwgk
rwgk marked this pull request as ready for review November 4, 2026 07:42
@rwgk
rwgk force-pushed the rwgk/cb12-staged-07-retirement branch from ea67d84 to bf9b3c2 Compare November 6, 2026 18:02

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between ea67d84 and bf9b3c2.

Files selected for processing: 5

  • .github/workflows/build-wheel.yml
  • .github/workflows/coverage.yml
  • CONTRIBUTING.md
  • ci/README.md
  • cuda_bindings_12/README.md
Files with no reviewable changes: 1

  • .github/workflows/build-wheel.yml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

Comment thread CONTRIBUTING.md
Comment on lines +201 to +202
$ git format-patch -1 --stdout --relative=cuda_bindings_13 COMMIT -- cuda_bindings_13 > bindings-fix.patch
$ git am --directory=cuda_bindings_12 bindings-fix.patch

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor · Functional Correctness · Quick win

Supported by static analysis

Script executed:

git diff 058b3df25172e5da257919bea31b733be1ccbd40 bf9b3c26c324a81f15933c2f351ab30bd1848b4e -- CONTRIBUTING.md | sed -n '1,240p'
printf '\n--- current contribution instructions ---\n'
nl -ba CONTRIBUTING.md | sed -n '155,225p'
printf '\n--- git format-patch documentation ---\n'
git --version
git format-patch -h 2>&1 | sed -n '1,90p'
printf '\n--- merge practice references ---\n'
rg -n -i 'squash.merge|merge.commit|format-patch|cherry.pick|backport' CONTRIBUTING.md .github ci/README.md | sed -n '1,160p'

Repository: NVIDIA/cuda-python

Length of output: 27027


Web query:

git format-patch documentation --no-merges merge commit -1

Result:

Sources consulted:
- Git - git-format-patch Documentation — https://git-scm.com/docs/git-format-patch
- git-format-patch(1) — https://www.kernel.org/pub/software/scm/git/docs/git-format-patch.html
- Git - git-format-patch Documentation — https://git-scm.com/docs/git-format-patch.html
- git/Documentation/git-format-patch.adoc at master · git/git · GitHub — https://github.com/git/git/blob/master/Documentation/git-format-patch.adoc
- Git - git-format-patch Documentation — https://git-scm.dev/docs/git-format-patch
- …and 18 more

Script executed:

printf '%s\n' '--- candidate merge commits affecting CUDA 13 ---'
git log bf9b3c26c324a81f15933c2f351ab30bd1848b4e --merges --format='%H %s' -n 5 -- cuda_bindings_13
printf '%s\n' '--- format-patch output for first candidate ---'
merge=$(git log bf9b3c26c324a81f15933c2f351ab30bd1848b4e --merges --format='%H' -n 1 -- cuda_bindings_13)
if [ -n "$merge" ]; then
  printf 'merge=%s\n' "$merge"
  git show -s --format='parents=%P%nsubject=%s' "$merge"
  git format-patch -1 --stdout --relative=cuda_bindings_13 "$merge" -- cuda_bindings_13 | sed -n '1,25p'
fi

Repository: NVIDIA/cuda-python

Length of output: 254


Script executed:

printf '%s\n' '--- merge candidates ---'
git log bf9b3c26c324a81f15933c2f351ab30bd1848b4e --merges --format='%H %s' -n 8
merge=$(git log bf9b3c26c324a81f15933c2f351ab30bd1848b4e --merges --format='%H' -n 1)
if [ -n "$merge" ]; then
  printf '\nmerge=%s\n' "$merge"
  git show -s --format='parents=%P%nsubject=%s' "$merge"
  printf '%s\n' '--- exact documented command output header ---'
  git format-patch -1 --stdout --relative=cuda_bindings_13 "$merge" -- cuda_bindings_13 | sed -n '1,25p'
else
  printf '%s\n' 'No merge commits in accessible history.'
fi

Repository: NVIDIA/cuda-python

Length of output: 1124


Script executed:

merge=716fc74291e36079fa95a817150156be066d17b2
printf '%s\n' '--- first-parent changed files in selected merge ---'
git diff --name-only "$merge^1" "$merge" | sed -n '1,25p'
printf '%s\n' '--- unfiltered -1 format-patch output ---'
git format-patch -1 --stdout "$merge" | sed -n '1,20p'
printf '%s\n' '--- tracked root trees at merge ---'
git ls-tree --name-only "$merge" | sed -n '1,50p'

Repository: NVIDIA/cuda-python

Length of output: 1905


Script executed:

merge=716fc74291e36079fa95a817150156be066d17b2
printf '%s\n' '--- root-restricted command for merge ---'
git format-patch -1 --stdout --relative=cuda_bindings "$merge" -- cuda_bindings | sed -n '1,32p'
printf '%s\n' '--- first-parent changes under root ---'
git diff --stat "$merge^1" "$merge" -- cuda_bindings
printf '%s\n' '--- merge and emitted commit metadata ---'
git show -s --format='%H %P %s' "$merge" 972ee3b15f4f120f0f99e9d698a75f0e19331b0e

Repository: NVIDIA/cuda-python

Length of output: 2544


important: Require a non-merge COMMIT.

git format-patch does not serialize the merge commit itself. With the documented command, a merge commit can produce an unrelated non-merge patch or no patch, so the intended source-root fix may not transfer.

Suggested documentation fix

-`COMMIT` with the reviewed source commit:
+`COMMIT` with the reviewed non-merge source commit:

Comment on lines +93 to +94
* `python -m pytest examples/` against editable installations
* `pytest examples/` against installed packages

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor · Functional Correctness · Quick win

Supported by static analysis

Script executed:

git diff 058b3df25172e5da257919bea31b733be1ccbd40 bf9b3c26c324a81f15933c2f351ab30bd1848b4e -- cuda_bindings_12/README.md
printf '\n--- README ---\n'
nl -ba cuda_bindings_12/README.md | sed -n '1,130p'
printf '\n--- sample ---\n'
nl -ba cuda_bindings_12/examples/extra/jit_program_test.py | sed -n '1,240p'
printf '\n--- dependency and setup references ---\n'
rg -n -i 'nvrtc|dependency-groups|\[.*test.*\]|cuda.toolkit|cuda toolkit|cuda.path|cuda_path' cuda_bindings_12/pyproject.toml cuda_bindings_12/setup.py cuda_bindings_12/setup.cfg cuda_bindings_12/examples cuda_bindings_12/tests/conftest.py pixi.toml 2>/dev/null

Repository: NVIDIA/cuda-python

Length of output: 19029


Script executed:

printf '%s\n' '--- dependencies ---'
nl -ba cuda_bindings_12/pyproject.toml | sed -n '1,100p'
printf '%s\n' '--- pytest configuration ---'
nl -ba cuda_bindings_12/examples/pytest.ini
rg -n -F -e 'KernelHelper(' -e 'jit_program_test' -e 'pytest_collect' -e 'python_files' -- cuda_bindings_12/examples cuda_bindings_12/pyproject.toml
printf '%s\n' '--- example test and helper ---'
nl -ba cuda_bindings_12/examples/0_Introduction/clock_nvrtc_test.py | sed -n '1,180p'
nl -ba cuda_bindings_12/examples/common/common.py | sed -n '1,105p'
printf '%s\n' '--- sample conftest files ---'
rg --files cuda_bindings_12/examples -g '*conftest.py' -g 'pytest.ini'
printf '%s\n' '--- nvrtc loading ---'
rg -n -F -e 'load_nvidia_dynamic_lib' -e 'nvrtcCreateProgram' -e 'libnvrtc.so' -- cuda_bindings_12/cuda/bindings | sed -n '1,95p'
printf '%s\n' '--- CUDA 12 pixi setup ---'
rg -n -i -e 'nvrtc' -e 'cuda-version' -e 'cuda-toolkit' -e 'cuda-nvcc' -- cuda_bindings_12/pixi.toml

Repository: NVIDIA/cuda-python

Length of output: 21826


Script executed:

printf '%s\n' '--- NVRTC loader and call ---'
nl -ba cuda_bindings_12/cuda/bindings/_internal/nvrtc_linux.pyx | sed -n '88,138p;350,380p;410,425p'
printf '%s\n' '--- pathfinder loader definitions ---'
rg -n -F -e 'def load_nvidia_dynamic_lib' -e 'DynamicLibNotFoundError' -- cuda_pathfinder
printf '%s\n' '--- pytest root configuration ---'
rg -n -F -e '[tool.pytest.ini_options]' -e '[pytest]' -e 'python_functions' -- pyproject.toml cuda_bindings_12/pyproject.toml cuda_bindings_12/examples/pytest.ini 2>/dev/null

Repository: NVIDIA/cuda-python

Length of output: 10272


Script executed:

rg -n -F -e '_check_or_init_nvrtc' -e '_cyb___py_nvrtc_init' -- cuda_bindings_12/cuda/bindings/_internal/nvrtc_linux.pyx
nl -ba cuda_bindings_12/cuda/bindings/_internal/nvrtc_linux.pyx | sed -n '240,285p'
nl -ba cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_nvidia_dynamic_lib.py | sed -n '203,250p'
rg --files -g 'pytest.ini' -g 'pyproject.toml' -g 'tox.ini' -g 'setup.cfg' | grep -E '^(pytest.ini|pyproject.toml|tox.ini|setup.cfg|cuda_bindings_12/(pytest.ini|pyproject.toml|tox.ini|setup.cfg|examples/pytest.ini))$'

Repository: NVIDIA/cuda-python

Length of output: 5836


important: Document the NVRTC requirement for samples.

The test group does not install NVRTC. If NVRTC is unavailable, jit_program_test.py can fail at nvrtcCreateProgram. Document that the samples need CUDA 12 NVRTC.

@rwgk
rwgk force-pushed the rwgk/cb12-staged-07-retirement branch 3 times, most recently from 8ac49d5 to 9907587 Compare November 6, 2026 21:38
rwgk added 9 commits November 7, 2026 09:44
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
@rwgk
rwgk force-pushed the rwgk/cb12-staged-07-retirement branch from 9907587 to 206f247 Compare November 7, 2026 17:49
@copy-pr-bot

copy-pr-bot Bot commented Nov 7, 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.

rwgk commented Nov 7, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test 206f247

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.bindings Everything related to the cuda.bindings module cuda.core Everything related to the cuda.core module enhancement Any code-related improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant