Skip to content

Commit 96fdba6

Browse files
Andy-Jostclaude
andauthored
[doc-only] docs(release): tag cuda-core releases on a release branch (#3431)
* docs(release): tag cuda-core releases on a release branch Add a "Create the release branch" step to RELEASE-core.md and the release checklist template. Each minor series gets one protected branch, release/cuda-core-vX.Y.x, cut from main after the pre-release PRs merge. Tags go on that branch, and patch releases land there by cherry-pick PRs. Co-Authored-By: Claude Opus 5.5 <[email protected]> * docs(release): scope the branch steps to cuda-core; put patch notes on the branch Co-Authored-By: Claude Opus 5.5 <[email protected]> --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
1 parent c6ea09e commit 96fdba6

2 files changed

Lines changed: 33 additions & 4 deletions

File tree

‎.github/ISSUE_TEMPLATE/release_checklist.yml‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ body:
2323
- label: Sweep deprecations whose stated removal version has arrived (`grep -rn 'deprecated::' cuda_core/cuda`) and remove any that are due
2424
- label: "Finalize the doc update, including release notes (\"Note: Touching docstrings/type annotations in code is OK during code freeze, apply your best judgement!\")"
2525
- label: Update the docs for the new version
26-
- label: Create a public release tag
26+
- label: "For cuda-core: create the release branch (`release/cuda-core-vX.Y.x`) from `main` for a minor release, or use the existing one for a patch release"
27+
- label: "Create a public release tag (for cuda-core, on the release branch)"
2728
- label: Wait for the tag-triggered CI run to complete, and use that run ID for release workflows (this will upload the release to PyPI)
2829
- label: Publish the release at https://github.com/NVIDIA/cuda-python/releases (this will trigger the conda package update)
2930
- label: Approve the conda-package update PR

‎.github/RELEASE-core.md‎

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,17 +156,45 @@ built and deployed automatically by the release workflow.
156156

157157
---
158158

159+
## Create the release branch
160+
161+
Each `cuda-core` minor series has one release branch,
162+
`release/cuda-core-vX.Y.x`. Releases are tagged on that branch, not on
163+
`main`. Patch releases of the series land there too.
164+
165+
For a minor release (`X.Y.0`), create the branch after every pre-release
166+
pull request has merged into `main`. Branch from the `main` commit that
167+
holds the final release notes:
168+
169+
```bash
170+
git fetch origin main
171+
git push origin origin/main:refs/heads/release/cuda-core-v0.6.x
172+
```
173+
174+
For a patch release (`X.Y.Z`), use the existing branch. Changes reach it
175+
through pull requests that cherry-pick the fixes from `main`, with
176+
`(cherry picked from commit ...)` trailers. The release notes for the patch
177+
release must be on the release branch before the tag: the release workflow
178+
checks for them in the tagged tree. Add them to `main` as well, so the docs
179+
switcher and the `latest` docs list them.
180+
181+
The repository ruleset protects `release/**`: a push to an existing release
182+
branch needs a pull request and passing checks.
183+
184+
---
185+
159186
## Create a public release tag
160187

161188
**Warning:** Pushing a tag is a potentially irrevocable action. Be absolutely
162189
certain the tag points to the correct commit before pushing.
163190

164191
Tags should be GPG-signed. The tag name format is `cuda-core-v<VERSION>`
165-
(e.g. `cuda-core-v0.6.0`). The tag must point to a commit on `main`.
192+
(e.g. `cuda-core-v0.6.0`). The tag must point to a commit on the release
193+
branch.
166194

167195
```bash
168-
git checkout main
169-
git pull origin main
196+
git fetch origin release/cuda-core-v0.6.x
197+
git checkout --detach origin/release/cuda-core-v0.6.x
170198
git tag -s cuda-core-v0.6.0 -m "cuda-core v0.6.0"
171199
git push origin cuda-core-v0.6.0
172200
```

0 commit comments

Comments
 (0)