Repository navigation
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. |
808952c to
6e5682c
Compare
bdbd76b to
84f7a85
Compare
84f7a85 to
2f59a5e
Compare
7f25950 to
7598449
Compare
7598449 to
9b8ac76
Compare
|
/ok to test 9b8ac76 |
|
/ok to test 19865b0 |
d20b7f2 to
45ffc98
Compare
|
codex GPT-6.1-Sol ultra on behalf of Ralf: Thanks for the detailed review. The updated #3174–#3176 review group is now published, with these changes:
Two suggested simplifications remain follow-ups. The synthetic version bootstrap is temporarily retained with its actual callers in #3175: introducing a retained maintenance milestone should follow landing the validated per-line SCM configuration, after which the helper and its callers can be removed. No retained tag was pushed. Extracting the duplicated build blocks into a composite action would also change the sequencing around toolkit switching, Core wheel merging, artifact reuse, and extension cleanup; that refactor is deferred. The verbose Markdown plan table is gone. Concise component/major job names remain to meet the requested visibility in the PR checks view; the workplan summary exposes expandable JSON, and tests do not depend on the cosmetic names. The stack is rebased onto main |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to GitHub limitations.

Major · important: Install or resolve the published pathfinder before… · test-wheel-linux.yml:384-387
.github/workflows/test-wheel-linux.yml:384-387
🩺 Stability & Availability | 🟠 Major | ⚡ Quick winimportant: Install or resolve the published pathfinder before reading its installed version.
When
PATHFINDER_SOURCEis notartifact, the metapackage install step callsversion("cuda-pathfinder")without a prior pathfinder install. A metapackage-only workplan can select apublishedpathfinder source while it skips the pathfinder, bindings, and Core suites. No earlier step installscuda-pathfinderfor that source. The lookup then raisesPackageNotFoundError, and the install step fails. The Windows workflow has the same call at line 370.Use the published version from the workplan or configuration, or install the published pathfinder before this step.
🧹 Nitpick comments: 1
ci/tools/tests/test_test_sources.py: 1
96-96:Trivial · Maintainability & Code Quality · Quick win suggestion: Assert the selected bindings version, not the pip command.
The pip stub only records text, so this assertion checks an exact command rather than the effective bindings version. Keep coverage for an incorrect floor if that result could be silent, but make the fixture record the selected installation outcome and assert it. As per coding guidelines, “Assert those outcomes rather than ... intermediate command order”; the guidance also identifies “exact pip command lines” as unsuitable test targets.
Source: Coding guidelines

Review info
-
Run configuration-
- Source mode: Auto
- Repository: NVIDIA/cuda-python
- Branch: rwgk/cb12-on-main-05-ci-tests-docs
- File: .coderabbit.yaml
- Commit: 45ffc98
- Layers: Repository YAML
- Review profile: CHILL
- Plan: Enterprise
- Run ID:
8b7d3dc2-67ca-4e0f-baa8-4715b2463e7e
Files ignored due to path filters: 1-
cuda_bindings_13/pixi.lockis excluded by!**/*.lock
Files selected for processing: 18-
.github/workflows/test-wheel-linux.yml.github/workflows/test-wheel-windows.ymlCONTRIBUTING.mdci/README.mdci/ci-pipeline.mmdci/tools/lookup-run-idci/tools/select_test_matrix.pyci/tools/tests/test_merge_cuda_core_wheels.pyci/tools/tests/test_select_test_matrix.pyci/tools/tests/test_test_sources.pycuda_bindings_12/docs/README.mdcuda_bindings_12/docs/source/install.mdcuda_bindings_13/README.mdcuda_bindings_13/docs/README.mdcuda_bindings_13/docs/source/install.rstcuda_bindings_13/docs/source/support.rstcuda_core/docs/source/install.rstcuda_python/docs/README.md
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.
-
|
Fable 5.1 "from scratch" review (claude session ID: Review complete. Everything below is based only on Defects and risks in 3174 to 3176Ordered by severity. Nothing I found is a hard blocker; the first three deserve a decision before the group merges.
Things I checked that hold up: the planner's release-tag routing and both tag flows, Windows path handling in the Python build-environment writer, Documentation and agent-instruction gaps
|
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Relocate the established hardware, driver, visibility and timing accommodations from the source-integration layer. Preserve their contents exactly; the FieldId correction moves with the test maintenance. 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>
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>
(cherry picked from commit 5f93b1a) 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>
45ffc98 to
feb25b1
Compare
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to GitHub limitations.

Minor · 🗄️ Data Integrity & Integration · ci-pixi-source-test.yml:242-248
.github/workflows/ci-pixi-source-test.yml:242-248
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick winimportant: Build CUDA 12 documentation from the selected checkout.
The CUDA 12 docs environment installs published
cuda-bindings = "12.9.*", while Sphinx autodoc importscuda.bindingsfrom that environment. Source or API changes in the selected checkout can therefore remain untested. Use the same path dependency as CUDA 13.- cuda-bindings = "12.9.*" + cuda-bindings = { path = "." }

Review info
-
Run configuration-
- Source mode: Auto
- Repository: NVIDIA/cuda-python
- Branch: rwgk/cb12-on-main-05-ci-tests-docs
- File: .coderabbit.yaml
- Commit: feb25b1
- Layers: Repository YAML
- Review profile: CHILL
- Plan: Enterprise
- Run ID:
9890f696-7945-4ded-9cdd-cb3aac27c0ca
Files ignored due to path filters: 1-
cuda_bindings_13/pixi.lockis excluded by!**/*.lock
Files selected for processing: 7-
.github/workflows/ci-nightly.yml.github/workflows/ci-pixi-source-test.ymlCONTRIBUTING.mdci/README.mdcuda_bindings_12/docs/source/release/12.X.Y-notes.rstcuda_bindings_12/tests/test_cuda.pycuda_bindings_13/tests/test_cuda.py
Files skipped from review as they are similar to previous changes: 1-
- ci/README.md
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.
-
|
codex GPT-6.1-Sol ultra on behalf of Ralf: Following up on the Fable 5.1 review: thanks for the thorough review. The actionable fixes are now in their owning layers, and the descriptions distinguish the review boundaries, compatibility changes, and evidence. Packaging and support policy (#3174). Keeping the smaller wheel payload is intentional. The source comment and upcoming maintenance notes now say that wheels omit implementation sources/templates while retaining Cython declarations/includes; sdists retain the build inputs. An audit of the actual Linux cp312 candidate wheel found all 38 historical declaration/include filenames, with all 34 package-owned dependency edges resolving. A separate sdist-only build retained all 76 tracked Cython/template inputs and the packaging helpers. This was an archive audit, not another native build. The notes also record Python >=3.11. Python 3.14/3.15 support was already released, so it is not presented as new. The CUDA 12 driver guidance is a documentation correction, not a new runtime gate. Updated notes. Hosted coverage. Full CI passed at the refreshed #3176 head Hosted artifact-reuse rehearsals. Two temporary draft PRs use the production resolver unchanged against successful baseline run 40426114619, at
Both complete hosted workflows passed on their first attempts, including documentation/link checks and their final aggregates. No fixes or retries were needed. These probes cover the two scenarios above; no separate Core-only or metapackage-only hosted probe is claimed. Full hosted CI also passed for the complete stack at the unchanged #3182 head Historical docs and nightly rollout (#3176). The CI guide now gives an actual Instructions and counterpart checks (#3174). CUDA 12 now gets its standalone AGENTS guide at the first layer, and both bindings READMEs use SCM decision. Retain the temporary local-only bridge through the first integration group, then make the explicit retained-milestone decision on validated main history and remove the bridge in a follow-up. Before the group lands, main still has broad tag selectors and the old CUDA 12 prerelease parser; introducing the shared milestone there would be premature. The lifecycle instructions now reserve preview targets across all release branches, explain what to do if an unreachable branch release consumes a target, and require matching milestones when moving minor selectors. No retained tag was created or pushed. Lifecycle policy. Remaining small findings. Removed the obsolete Core-floor trigger, narrowed the large-file exceptions, and deleted the dead Python 3.10/Windows ARM64 branch. Pixi GPU full-test now prepares maintenance SCM before source builds and explicitly installs the required dependency, matching CPU build-smoke. The sdist fallback test is unchanged: the installed SCM backend does not search arbitrary ancestor repositories, and that proposed contamination did not reproduce. That test still checks real PKG-INFO fallback without a pretend version. The descriptions also state that the CI-tool suite runs in a full Git checkout, including Git-based Pixi workspace discovery; it is not an archive-only suite. #3174-#3176 remain one integration group with separate review scopes. The later release, policy, and optional runtime layers remain separate. Hosted release publication/backport execution and instrumented proof of the optional coredump ownership fix are not claimed by these checks. |
Summary
Exercise the CUDA 12 and CUDA 13 wheels built from
main, with explicit component and dependency-source coverage in the PR checks view.meta12andmeta13.lookup-run-id --artifactoption and reduce CI-tool tests to silent-failure outcomes. Scoped test guidance records this policy; package/runtime tests retain their own rules.format-patch/git am, using a compatible first nightly artifact source, and rerunning historical releases/docs from their historical workflow revision. Correct the documented CUDA 12 driver baseline; this adds no runtime driver-version gate.Shared GPU jobs keep runner usage bounded; their names and coverage summaries expose which suites actually run.
CUDA 12 NVML test maintenance accompanies CI activation: device visibility, PCI-information and Orin/Thor naming accommodations (#1590, #2065, #2437, #2788); serialized initialization and the driver 13.4 refcount skip (#2229, #2512); removal of the unstable energy-timing assertion (#2644); and the field-enum spelling correction (#2560). Driver probing occurs during test execution. These changes affect tests and their helper, not the installed runtime.
Process-global coredump tests are serialized for free-threaded runs, carrying Mike's #3226 fix and the matching CUDA 12 marker. Tests that only manipulate local helper storage remain parallel. This addresses the coredump setting race seen in the previous full runs without serializing unrelated tests.
Reading the Test Coverage
bindings PRmeans the selected root's artifact supplied by this CI run; the workplan identifies whether it was rebuilt or reused from the exact baseline.bindings floormeans the oldest published bindings supported by the Core wheel for that CUDA major. Floor rows test Core or the selected nightly integration, without running the bindings or metapackage suites.wheelsversuslocal CTKdescribes how toolkit libraries are supplied, independently of the bindings source.Development documentation builds the current CUDA 13 API from the checkout. The local CUDA 12 Pixi docs environment defaults to a published
12.9.*bindings package; install a matching source build when documenting API changes in the checkout. It needs a separate environment because both roots install the same package. Tagged releases publish their selected version without replacing sharedlatestpages or version selectors; the full publication procedure follows in #3178.Stack / Review Boundary
Previous: #3175. Next: #3177. The stack overview lists all six open PRs and the intended workflow.
#3174 through #3176 are intended to land together, with separate review scopes and cumulative CI at #3176; the first two are incomplete intermediate states. Release routing (#3177), maintenance policy (#3178), and the runtime fixes (#3182) follow that group. The complete proposed source tree is at #3182.
Baseline: main b4a5e5513a1f.
Release Boundary
Future CUDA 13 releases tagged from this state retain the existing release flow. The transitional
backport_branchfield keeps legacy release-note and backport consumers working; toolkit selection uses the package-root registry. Releasing CUDA 12 frommainis enabled separately by #3177.Starting at this layer, release-documentation reruns and dry-runs against pre-registry tags require compatible historical tooling: the new docs workflow reads package configuration from the release tag. The historical rerun recipe explicitly dispatches
release.ymlfrom13.4.xfor its releases, including av13.4.4documentation dry run.Nightly artifact auto-detection needs the first successful, complete main CI run containing the new registry and both bindings majors. Until then it reports an incompatible older source instead of guessing its layout. The rollout instructions also describe using a successful compatible run explicitly; the override selects both artifacts and their source revision.
Suggested Review Order
Counterpart Review
Inspected both bindings roots' test setup, README, install/support documentation, coredump tests, and documentation environments, plus Core floor testing and the shared Linux/Windows matrix rules. Both READMEs now use the same
--group testrecipe. CUDA 12 preserves its legacy sample/NVML layout and requires its own environment. All three marked pytest-bootstrap blocks and all four shared build-helper copies match byte-for-byte.Validation
Full hosted CI passed for this exact head,
feb25b1b3d3c1744b680bf54ff10986ed4e59953: run 40426114619. This validates the cumulative #3174-#3176 integration, including native builds, GPU tests, source/sdist checks, and documentation.328 CI-tool tests pass in a full Git checkout, with full local
pre-commit run --all-files, including actionlint, Lychee, generated-file seals, registry checks, mypy, and security checks. The suite includes Git-based Pixi workspace discovery; it is not an archive-only test suite.Local semantic checks cover plan selection, release routing, SCM milestones, Core ABI variants, bindings-source selection, and mandatory local-wheel coverage. A one-time comparison matched the former jq selector across platforms and run modes; the workflow-control helper was also exercised with an older artifact source that lacks it. Six extracted shell cases cover Pixi environment selection and nightly-source diagnostics, alongside 15 existing SCM/registry cases. These shell cases do not constitute a separate hosted nightly run.
Hosted artifact-reuse rehearsals. Two temporary draft PRs use the production resolver unchanged against successful baseline run 40426114619, at
feb25b1b3d3c1744b680bf54ff10986ed4e59953. Both actual workplans exactly match the expected selective plans; neither fell back to a full rebuild.Both complete hosted workflows passed on their first attempts, including documentation/link checks and their final aggregates. No fixes or retries were needed. These probes cover the two scenarios above; no separate Core-only or metapackage-only hosted probe is claimed.
Full hosted CI also passed for the complete stack at the unchanged #3182 head
775392e1a6b372b8d046a95466513bd114b05f6a: run 40456627846, attempt 2. The only retry was a self-hosted H100 runner disconnect during driver setup, before package tests began. Its replacement passed, together with the final gate; exact-head auxiliary checks are also green or intentionally skipped. This tests the cumulative stack, rather than hosted release publication or backport automation.Checklist