prepare-code-freeze
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…
npx skills add https://github.com/nvidia/nemo-relay --skill prepare-code-freezePrepare 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 asrelease/<major>.<minor>. -
Prompt for
<next-version>if the user did not provide it. This is the version thatmainmoves to after the release branch is cut. -
Fetch the latest
mainand create the release branch fromupstream/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 exampledocs/code-freeze-<major>.<minor>. -
Update
.github/nightly-alpha-branches.yamlto include the new release branch. -
Run
just set-version <next-version>to bump all release-versioned package surfaces onmain. -
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/**' || trueReview 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 --checkAny remaining documentation matches for
<old-version>should be intentional and called out in the PR description. -
Open a PR targeting
mainusing.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.