Skip to content

Comments

[docs-only] Add release process guide and update release checklist#1683

Open
Andy-Jost wants to merge 2 commits intoNVIDIA:mainfrom
Andy-Jost:release-process-doc
Open

[docs-only] Add release process guide and update release checklist#1683
Andy-Jost wants to merge 2 commits intoNVIDIA:mainfrom
Andy-Jost:release-process-doc

Conversation

@Andy-Jost
Copy link
Contributor

Summary

  • Add .github/RELEASE.md with step-by-step guidance for each item in the release checklist, based on lessons learned from the cuda.core v0.6.0 release.
  • Update .github/ISSUE_TEMPLATE/release_checklist.yml to remove obsolete items (RC tag, pre-release QA, nvidia conda channel upload) and add a link to the new guide.

Changes

  • .github/RELEASE.md (new): Detailed guidance covering nvbug filing, dependency checks, release notes, doc versioning, tagging, CI verification, TestPyPI/PyPI publishing, and conda-forge feedstock updates.
  • .github/ISSUE_TEMPLATE/release_checklist.yml: Removed 4 obsolete checklist items, added link to RELEASE.md, updated copyright year.

Test plan

  • No code changes; documentation only.

Made with Cursor

Add .github/RELEASE.md with step-by-step guidance for each item in the
release checklist, based on lessons learned from the cuda.core v0.6.0
release. Remove obsolete checklist items (RC tag, pre-release QA,
nvidia conda channel upload).

Co-authored-by: Cursor <cursoragent@cursor.com>
@Andy-Jost Andy-Jost added documentation Improvements or additions to documentation P1 Medium priority - Should do cuda.core Everything related to the cuda.core module labels Feb 23, 2026
@Andy-Jost Andy-Jost self-assigned this Feb 23, 2026
@copy-pr-bot
Copy link
Contributor

copy-pr-bot bot commented Feb 23, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@Andy-Jost Andy-Jost added this to the cuda.core v0.7.0 milestone Feb 23, 2026
@Andy-Jost Andy-Jost requested a review from cpcloud February 23, 2026 20:34
@Andy-Jost
Copy link
Contributor Author

/ok to test 98cc331

@github-actions
Copy link

@@ -0,0 +1,267 @@
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is specific to cuda-core, which is great, but it's currently not reflected in the filename. How about:

RELEASE-core.md

Ideally, the ISSUE_TEMPLATE would also have core in the name, e.g. release-core-checklist.yml (or with underscores instead of dashes).

Copy link
Contributor Author

@Andy-Jost Andy-Jost Feb 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My thought was that we should unify the release documentation. So, for this document we could just add sections. To me it's simpler than keeping separate RELEASE-*.md docs.

I think the bar should be quite low for this change. It puts something in place that we can improve in any way we like.

To find the template, search for a previous release's nvbug (e.g. by
title "Release of cuda.core") and create a new bug from the same template.

Example (from the cuda.core v0.6.0 release,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we're meant to avoid such URLs. I don't think we really need an example. Your instructions above are clear without.

Comment on lines 65 to 72
- `requires-python` — supported Python version range
- `dependencies` — runtime dependencies (e.g. `numpy`)
- `[project.optional-dependencies]` — `cuda-bindings` version pins for
`cu12` / `cu13` extras
- `[build-system] requires` — Cython and setuptools version pins
- `[dependency-groups]` — test dependencies (`ml-dtypes`, `cupy`,
`cuda-toolkit` version pins)
- Python version classifiers in `[project]`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Too much detail? Especially because they are likely to bit-rot quickly. I think it'll be fully sufficient to write:

Review cuda_core/pyproject.toml and verify that all dependency requirements are current.

Comment on lines 123 to 124
- **The docs build is expected to fail** on tag-triggered runs. This is
normal — docs are built during the release workflow instead.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not true anymore. It was fixed by #1662

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sweet!

Comment on lines 152 to 153
2. Wait for the workflow to complete. The docs build step will fail on
forks — this is expected and does not block the wheel upload.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The second sentence should be deleted.

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

3. Verify the TestPyPI upload by installing and running tests locally:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It'd be helpful to clarify that cuda_core/tests is a directory in a checked-out repo.

Comment on lines 183 to 243
### Fork and clone the feedstock

```bash
gh repo fork conda-forge/cuda-core-feedstock --clone
cd cuda-core-feedstock
```

Optional: Set up remotes so your fork is named after your GitHub username:

```bash
git remote rename origin <your-github-username>
git remote add origin https://github.com/conda-forge/cuda-core-feedstock.git
git fetch origin
```

### Update `recipe/meta.yaml`

Create a branch and edit `recipe/meta.yaml`:

```bash
git checkout -b update-v0.6.0 origin/main
```

Update the following fields:

1. **`version`**: Set to the new version (e.g. `0.6.0`).
2. **`number`** (build number): Reset to `0` for a new version.
3. **`sha256`**: The SHA-256 of the source archive from the GitHub
Release. Download it and compute the hash:

```bash
curl -sL https://github.com/NVIDIA/cuda-python/releases/download/cuda-core-v0.6.0/cuda-python-cuda-core-v0.6.0.tar.gz \
| sha256sum
```

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

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

### Open a PR

```bash
git add recipe/meta.yaml
git commit -m "Update cuda-core to 0.6.0"
git push <your-github-username> update-v0.6.0

gh pr create \
--repo conda-forge/cuda-core-feedstock \
--head <your-github-username>:update-v0.6.0 \
--title "Update cuda-core to 0.6.0" \
--body "Update cuda-core to version 0.6.0."
```

The feedstock CI (Azure Pipelines) triggers automatically on the PR.
Monitor it for build failures — common issues include missing
build-time header dependencies (see host dependencies above).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For pathfinder, it's usually much simpler:

https://github.com/conda-forge/cuda-pathfinder-feedstock/issues
[New issue] → Bot commands
Title: @conda-forge-admin, please update version
Leave message empty
[Create]

That automatically creates the PR. Usually I only have to click a few buttons. Did you already try this for the cuda-core-feedstock?

Occasionally I had to git clone and add manual fixes/workarounds, but I never had to specify remotes or branches manually.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bot created a PR, but it was missing dependency and other updates and I could not push to it, so I had to make my own.

- 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>
@Andy-Jost
Copy link
Contributor Author

/ok to test 31e7c73

@Andy-Jost Andy-Jost requested a review from rwgk February 23, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cuda.core Everything related to the cuda.core module documentation Improvements or additions to documentation P1 Medium priority - Should do

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants