Skip to content

Commit 31e7c73

Browse files
Address review feedback on RELEASE.md
- Remove internal nvbug link, keep example text - Condense dependency check guidance - Remove stale note about docs build failing on tag push - Clarify test verification uses checked-out repo - Document three conda-forge approaches (bot auto, bot request, manual) Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 98cc331 commit 31e7c73

File tree

1 file changed

+58
-46
lines changed

1 file changed

+58
-46
lines changed

.github/RELEASE.md

Lines changed: 58 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ Create an nvbug from the SWQA template to request pre-release validation.
1616
To find the template, search for a previous release's nvbug (e.g. by
1717
title "Release of cuda.core") and create a new bug from the same template.
1818

19-
Example (from the cuda.core v0.6.0 release,
20-
[nvbug 5910741](https://nvbugspro.nvidia.com/bug/5910741)):
19+
Example:
2120

2221
> **Title:** Release of cuda.core v0.6.0
2322
>
@@ -48,28 +47,15 @@ Example (from the cuda.core v0.6.0 release,
4847
> - PyPI wheel upload
4948
> - Post-release validation
5049
51-
**How to determine the SW combinations:**
52-
53-
- **cuda.core version**: The version being released.
54-
- **cuda.bindings, CTK, and CUDA driver versions**: Check with the release owner.
55-
56-
Update the version, SW combinations, and platforms as appropriate for each
57-
release.
50+
Update the version, SW combinations (check with the release owner), and
51+
platforms as appropriate for each release.
5852

5953
---
6054

6155
## Check (or update if needed) the dependency requirements
6256

63-
Review `cuda_core/pyproject.toml` and verify the following are current:
64-
65-
- `requires-python` — supported Python version range
66-
- `dependencies` — runtime dependencies (e.g. `numpy`)
67-
- `[project.optional-dependencies]``cuda-bindings` version pins for
68-
`cu12` / `cu13` extras
69-
- `[build-system] requires` — Cython and setuptools version pins
70-
- `[dependency-groups]` — test dependencies (`ml-dtypes`, `cupy`,
71-
`cuda-toolkit` version pins)
72-
- Python version classifiers in `[project]`
57+
Review `cuda_core/pyproject.toml` and verify that all dependency
58+
requirements are current.
7359

7460
---
7561

@@ -120,8 +106,6 @@ git push origin cuda-core-v0.6.0
120106
Pushing the tag triggers a CI run automatically. Monitor it in the
121107
**Actions** tab on GitHub.
122108

123-
- **The docs build is expected to fail** on tag-triggered runs. This is
124-
normal — docs are built during the release workflow instead.
125109
- **All CI tests should succeed.** If any fail, investigate and rerun as
126110
needed.
127111
- Note the **run ID** of the successful tag-triggered run. The release
@@ -149,10 +133,10 @@ publish to PyPI.
149133
[`ci/versions.yml`](../ci/versions.yml) (e.g. `13.1.1`)
150134
- **Which wheel index to publish to**: `testpypi`
151135

152-
2. Wait for the workflow to complete. The docs build step will fail on
153-
forks — this is expected and does not block the wheel upload.
136+
2. Wait for the workflow to complete.
154137

155-
3. Verify the TestPyPI upload by installing and running tests locally:
138+
3. Verify the TestPyPI upload by installing and running tests from a
139+
checked-out copy of the repository:
156140

157141
```bash
158142
pip install -i https://test.pypi.org/simple/ \
@@ -177,27 +161,43 @@ pip install cuda-core==0.6.0
177161
## Update the conda recipe & release conda packages
178162

179163
The conda-forge feedstock builds from the GitHub Release source archive
180-
(not from PyPI). The bot (`regro-cf-autotick-bot`) does not always pick up
181-
new releases automatically, so you may need to open the PR manually.
164+
(not from PyPI). There are three approaches to updating the feedstock,
165+
from least effort to most control.
182166

183-
### Fork and clone the feedstock
167+
### Approach A: Wait for the bot
184168

185-
```bash
186-
gh repo fork conda-forge/cuda-core-feedstock --clone
187-
cd cuda-core-feedstock
188-
```
169+
The `regro-cf-autotick-bot` periodically scans for new releases and opens
170+
a PR automatically. If nothing has changed in the build requirements, the
171+
bot's PR may be sufficient — review it and ask a feedstock maintainer
172+
to merge. However, the bot only
173+
updates the version and sha256. If build dependencies, import paths, or
174+
other recipe fields have changed, the bot's PR will be incomplete and CI
175+
will fail.
176+
177+
### Approach B: Request a bot update
178+
179+
If the bot hasn't opened a PR, you can request one explicitly. Go to the
180+
feedstock's Issues tab and create a new "Bot commands" issue:
181+
182+
- **Title**: `@conda-forge-admin, please update version`
183+
- **Body**: (leave empty)
189184

190-
Optional: Set up remotes so your fork is named after your GitHub username:
185+
This triggers the bot to create a version-bump PR. As with approach A,
186+
review the PR and push additional fixes if needed.
187+
188+
### Approach C: Manual PR
189+
190+
For full control — or when the bot's PR needs extensive fixes — open a
191+
PR manually from a fork.
192+
193+
**Fork and clone** (one-time setup):
191194

192195
```bash
193-
git remote rename origin <your-github-username>
194-
git remote add origin https://github.com/conda-forge/cuda-core-feedstock.git
195-
git fetch origin
196+
gh repo fork conda-forge/cuda-core-feedstock --clone
197+
cd cuda-core-feedstock
196198
```
197199

198-
### Update `recipe/meta.yaml`
199-
200-
Create a branch and edit `recipe/meta.yaml`:
200+
**Create a branch and edit `recipe/meta.yaml`:**
201201

202202
```bash
203203
git checkout -b update-v0.6.0 origin/main
@@ -215,16 +215,16 @@ Update the following fields:
215215
| sha256sum
216216
```
217217

218-
4. **Host dependencies**: Ensure all headers needed at build time are
219-
listed. For example, v0.6.0 added a Cython C++ dependency on
220-
`nvrtc.h`, requiring `cuda-nvrtc-dev` to be added to both `host`
221-
requirements and `ignore_run_exports_from`.
218+
4. **Host dependencies**: Ensure all build-time dependencies are listed.
219+
For example, v0.6.0 added a Cython C++ dependency on `nvrtc.h`,
220+
requiring `cuda-nvrtc-dev` in both `host` requirements and
221+
`ignore_run_exports_from`.
222222

223223
5. **Test commands and descriptions**: Update any import paths or
224224
descriptions that changed (e.g. `cuda.core.experimental` ->
225225
`cuda.core`).
226226

227-
### Open a PR
227+
**Open a PR:**
228228

229229
```bash
230230
git add recipe/meta.yaml
@@ -238,9 +238,12 @@ gh pr create \
238238
--body "Update cuda-core to version 0.6.0."
239239
```
240240

241+
### Notes
242+
241243
The feedstock CI (Azure Pipelines) triggers automatically on the PR.
242-
Monitor it for build failures — common issues include missing
243-
build-time header dependencies (see host dependencies above).
244+
Monitor it for build failures — common issues include missing build-time
245+
header dependencies. Feedstock maintainers (listed in
246+
`recipe/meta.yaml` under `extra.recipe-maintainers`) can merge the PR.
244247

245248
---
246249

@@ -252,7 +255,16 @@ build-time header dependencies (see host dependencies above).
252255

253256
## Finalize the announcement update
254257

255-
*TBD*
258+
The release workflow creates a draft GitHub Release. To publish it:
259+
260+
1. Go to the repository on GitHub, click **Tags**, then switch to the
261+
**Releases** tab.
262+
2. Find the draft release for the new tag and click **Edit**.
263+
3. Copy the body from a previous release as a starting point. It
264+
typically links to the release notes in the documentation (e.g.
265+
`https://nvidia.github.io/cuda-python/cuda-core/latest/release/0.6.0-notes.html`).
266+
4. Update the link and any version references, then click
267+
**Publish release**.
256268

257269
---
258270

0 commit comments

Comments
 (0)