SKILL.md
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
mainand create the release branch fromupstream/main:
``bash 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.yamlto include the new release
branch.
- Run
just set-version <next-version>to bump all release-versioned package
surfaces on main. Regenerate the dynamic worker-plugin fixture lockfile so its path dependencies use the new workspace version:
``bash cargo generate-lockfile --manifest-path crates/core/tests/fixtures/worker_plugin/Cargo.toml ``
- 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:
``bash 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:
``bash ruby -e 'require "yaml"; YAML.loadfile(".github/nightly-alpha-branches.yaml"); YAML.loadfile(".github/workflows/nightly-alpha-tag.yaml")' just set-version <next-version> cargo generate-lockfile --manifest-path crates/core/tests/fixtures/workerplugin/Cargo.toml cargo build --locked --manifest-path crates/core/tests/fixtures/workerplugin/Cargo.toml 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
mainusing.github/pullrequesttemplate.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.