Skip to content

Commit fbfd144

Browse files
committed
Trim migration documentation and apply remaining review fixes
1 parent 71b9403 commit fbfd144

6 files changed

Lines changed: 82 additions & 196 deletions

File tree

‎.github/workflows/coverage.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
- name: Set up Python
3434
uses: ./.github/actions/setup-hardened-python
3535
with:
36-
python-version: "3.12"
36+
python-version: "3.11"
3737

3838
- name: Install CI tool dependencies
3939
run: python3 -m pip install -e ./ci

‎CONTRIBUTING.md‎

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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.
138140
The resolved version determines dependencies: CUDA 12 depends on matching
139141
bindings, 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

142145
The selectors are recorded in the bindings roots' `pyproject.toml` files and
143146
the metapackage's `pyproject.toml`; the metadata check keeps them aligned with
@@ -158,10 +161,6 @@ need all of the following:
158161
4. **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

167166
Incomplete 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

196195
For 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.
472471
The historical `12.9.x` branch stays frozen except for emergency fixes,
473472
which must be reconciled into `main`. New main CI and releases do not fetch
474473
package artifacts from that branch.
475474

476475
The [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

Comments
 (0)