@@ -13,6 +13,7 @@ reproducers, documentation improvements, and code changes are welcome.
1313 - [ Updating your clone] ( #updating-your-clone )
1414 - [ Why the clone matters] ( #why-the-clone-matters )
1515 - [ Symptoms of a bad clone] ( #symptoms-of-a-bad-clone )
16+ - [ Transferring fixes between bindings roots] ( #transferring-fixes-between-bindings-roots )
1617 - [ Development on Windows] ( #development-on-windows )
1718 - [ Enabling git symlinks] ( #enabling-git-symlinks )
1819 - [ Type stubs for cuda.core] ( #type-stubs-for-cudacore )
@@ -28,7 +29,7 @@ reproducers, documentation improvements, and code changes are welcome.
2829 - [ CI infrastructure overview] ( #ci-infrastructure-overview )
2930 - [ CI Pipeline Flow] ( #ci-pipeline-flow )
3031 - [ CUDA-major Artifact Flow] ( #cuda-major-artifact-flow )
31- - [ Release Branches ] ( #release-branches )
32+ - [ Integration on main ] ( #integration-on-main )
3233 - [ Code coverage] ( #code-coverage )
3334
3435
@@ -127,17 +128,19 @@ correct.** Packages select tags for their own release line:
127128| --- | --- |
128129| ` cuda-bindings ` from ` cuda_bindings_12/ ` | ` v12.* ` (e.g. ` v12.9.10 ` ) |
129130| ` cuda-bindings ` from ` cuda_bindings_13/ ` | ` v13.* ` (e.g. ` v13.4.2 ` ) |
130- | ` cuda-python ` | The matching bindings selector, chosen explicitly with ` CUDA_PYTHON_BUILD_MAJOR=12 ` or ` 13 ` , or inferred as described below |
131+ | ` cuda-python ` | The matching bindings selector, chosen explicitly with ` CUDA_PYTHON_BUILD_MAJOR=12 ` or ` 13 ` |
131132| ` cuda-core ` | ` cuda-core-v* ` (e.g. ` cuda-core-v1.1.0 ` ) |
132133| ` cuda-pathfinder ` | ` cuda-pathfinder-v* ` (e.g. ` cuda-pathfinder-v1.6.0 ` ) |
133134
134- Git source builds of ` cuda-python ` honor ` CUDA_PYTHON_BUILD_MAJOR=12 ` or ` 13 `
135- when set. Without it, an exact ` v12.* ` tag at ` HEAD ` selects CUDA 12 when no
136- ` v13.* ` tag points to that commit. Untagged commits and commits tagged for
137- both majors default to CUDA 13.
135+ Building ` cuda-python ` from a checkout or VCS archive requires
136+ ` CUDA_PYTHON_BUILD_MAJOR=12 ` or ` 13 ` , including at commits tagged for both
137+ majors. For example, build the CUDA 12 metapackage from the repository root
138+ with ` CUDA_PYTHON_BUILD_MAJOR=12 python -m pip wheel ./cuda_python ` .
139+ The selected major must match the version resolved from the source.
138140The resolved version determines dependencies: CUDA 12 depends on matching
139141bindings, while CUDA 13 also depends on Core and Pathfinder. A standalone
140- sdist retains its version and dependency major without requiring this variable.
142+ sdist retains its fixed version and dependency major and does not need this
143+ selector.
141144
142145The selectors are recorded in the bindings roots' ` pyproject.toml ` files and
143146the metapackage's ` pyproject.toml ` ; the metadata check keeps them aligned with
@@ -158,10 +161,6 @@ need all of the following:
1581614 . ** The CCCL submodule** when building ` cuda.core ` . That package compiles
159162 against the headers pinned in ` cuda_core/third_party/cccl ` .
160163
161- CUDA 12 builds on ` main ` use the retained ` v12.9.11a0 ` milestone and standard
162- ` setuptools-scm ` progression. See [ SCM milestones] ( ci/README.md#scm-milestones )
163- for the required tag ancestry and release-number coordination.
164-
165164### Symptoms of a bad clone
166165
167166Incomplete history can fail version detection or produce a plausible but
@@ -194,8 +193,9 @@ genuinely cannot provide tags; it is not a substitute for a correct clone.
194193## Transferring fixes between bindings roots
195194
196195For a handwritten fix that applies to both majors, a path-relative patch can
197- transfer the source-root portion of a commit. From the repository root, with a
198- clean worktree, replace ` COMMIT ` with the reviewed non-merge source commit:
196+ transfer the source-root portion of a commit, though you can copy the changes
197+ however is most convenient. From the repository root, with a clean worktree,
198+ replace ` COMMIT ` with the reviewed non-merge source commit:
199199
200200``` console
201201$ git format-patch -1 --stdout --relative=cuda_bindings_13 COMMIT -- cuda_bindings_13 > bindings-fix.patch
@@ -455,7 +455,7 @@ through the [CI tools](ci/README.md).
455455
456456- CUDA 12.9 bindings live in ` cuda_bindings_12/ ` ; CUDA 13 bindings live in
457457 ` cuda_bindings_13/ ` . The registry assigns their maintenance and current roles.
458- - Development CI builds changed roots and affected dependents, reusing a
458+ - Development CI rebuilds changed roots and affected dependents, reusing a
459459 validated baseline for unaffected roots. Shared changes and scheduled runs
460460 cover both CUDA majors.
461461- A bindings tag selects one line's bindings and metapackage. Its release
@@ -464,19 +464,18 @@ through the [CI tools](ci/README.md).
464464- Artifacts identify their Python version, toolkit, platform, and source SHA
465465 where applicable. Release workflows require the exact tag's successful CI.
466466
467- ### Release Branches
467+ ### Integration on main
468468
469- ` main ` integrates changes for both supported majors. Short release branches
470- can stabilize a selected release or carry urgent fixes while development
471- continues. Return applicable fixes to ` main ` and assess both source roots.
469+ ` main ` integrates changes for both supported majors. Return applicable fixes
470+ to ` main ` and assess both source directories.
472471The historical ` 12.9.x ` branch stays frozen except for emergency fixes,
473472which must be reconciled into ` main ` . New main CI and releases do not fetch
474473package artifacts from that branch.
475474
476475The [ bindings release guide] ( .github/RELEASE-bindings.md ) covers release scope,
477- manual backport automation, source and control revisions, and validation.
478- The [ CUDA 12 maintenance guide ] ( cuda_bindings_12/MAINTENANCE .md) links the
479- shared regeneration and cross-root review policy .
476+ source and control revisions, and validation. Follow the
477+ [ shared regeneration and review guidance ] ( ci/README .md#maintaining-both-bindings-roots )
478+ when changing either bindings directory .
480479
481480## Code coverage
482481
0 commit comments