| name | prepare-code-freeze |
| description | Prepare a NeMo Relay code freeze by creating the release branch, updating nightly alpha branch config, bumping main to the next version, and opening the required PR |
| author | NVIDIA Corporation and Affiliates |
| license | Apache-2.0 |
Prepare Code Freeze
Use this skill when the user asks to start, prepare, or automate a NeMo Relay
code freeze.
Companion Guidance
Use update-project-version for version bump semantics and prepare-pr before
opening the PR.
Workflow
This workflow assumes upstream is the NVIDIA repository remote
(NVIDIA/NeMo-Relay). The origin remote can be a maintainer's personal fork.
-
Confirm or infer the target release version from upstream/main:Cargo.toml.
Derive the release branch as release/<major>.<minor>.
-
Prompt for <next-version> if the user did not provide it. This is the
version that main moves to after the release branch is cut.
-
Fetch the latest main and create the release branch from upstream/main:
git fetch upstream main
git branch release/<major>.<minor> upstream/main
git push upstream release/<major>.<minor>
If the remote release branch already exists, verify it points where expected
before continuing.
-
Create a PR branch from latest upstream/main, for example
docs/code-freeze-<major>.<minor>.
-
Update .github/nightly-alpha-branches.yaml to include the new release
branch.
-
Run just set-version <next-version> to bump all release-versioned package
surfaces on main.
-
Search documentation source for references to the old version and update
current-version install commands, package examples, and configuration
examples to <next-version> where appropriate:
rg -n '<old-version>' README.md docs fern --glob '!docs/_build/**' || true
Review matches before changing them. Leave intentional historical references
alone, such as release notes, changelogs, generated build output, and
third-party dependency attribution entries.
-
Validate with targeted checks:
ruby -e 'require "yaml"; YAML.load_file(".github/nightly-alpha-branches.yaml"); YAML.load_file(".github/workflows/nightly-alpha-tag.yaml")'
just set-version <next-version>
rg -n '<old-version>' README.md docs fern --glob '!docs/_build/**' || true
git diff --check
Any remaining documentation matches for <old-version> should be intentional
and called out in the PR description.
-
Open a PR targeting main using .github/pull_request_template.md. The PR
must mention:
- the new release branch
- the nightly alpha branch config update
- the
just set-version <next-version> bump
- documentation old-version reference updates or intentional leftovers
- that release-bound PRs now target the new
release/* branch
Guardrails
- Do not create release tags. Code freeze only creates the branch and the main
PR.
- Do not target the code-freeze PR at the release branch. It targets
main.
- Do not leave uncommitted user changes mixed into the code-freeze PR branch.