prepare-code-freeze
Chuẩn bị đóng băng mã NeMo Relay bằng cách tạo nhánh release, cập nhật cấu hình nhánh nightly alpha, nâng cấp main lên phiên bản tiếp theo và mở…
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. Regenerate the dynamic worker-plugin fixture lockfile so its path dependencies use the new workspace version: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: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> cargo generate-lockfile --manifest-path crates/core/tests/fixtures/worker_plugin/Cargo.toml cargo build --locked --manifest-path crates/core/tests/fixtures/worker_plugin/Cargo.toml 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.