用途:在 NeMo Fabric 的发布流程中,从已验证的发布分支切出 RC 标签(release candidate tag)。资料强调必须先在发布分支创建完成后才打标签,不用于代码冻结等其它场景。
主要能力:要求用户以 <major>.<minor> 或 <major>.<minor>.<patch> 形式提供稳定发布版本号,两位版本按 <major>.<minor>.0 处理;不从 Cargo.toml 或分支名推断版本,打标签时也不编辑 Cargo.toml。示例将版本规范化为 RELEASE_BASE_VERSION,并据此推导发布分支 RELEASE_BRANCH="release/$(printf '%s' "${RELEASE_BASE_VERSION}" | cut -d. -f1,2)"。随后校验 upstream 上该分支存在、fetch 分支与标签,并计算 RC 序号:用户可显式提供 RC 编号(需为正整数且远端同名标签不存在),否则取该基础版本已有最大 RC 后缀加一,无则从 1 开始,得到 RELEASE_VERSION 与 RELEASE_TAG(形如 v<版本>-rc.<n>)。
使用方式:脚本假定 upstream 是 NVIDIA 仓库远端。它保留用户改动,不 stash、不丢弃、不切换脏工作区;在执行其余命令的单个非交互 Bash 会话中,记录原始检出并安装退出陷阱,成功或出错后还原原始分支或分离提交(仅当本流程改动了检出时)。切换分支前必须通过远端分支检查;打标签前要求当前检出提交等于 upstream 分支。会用 git switch、git pull --ff-only、git status --porcelain、git rev-parse 等做校验,用 just normalize-release-tag 校验标签规范化,用 python tomllib 读取 Cargo.toml workspace.package.version 并要求等于 RELEASE_BASE_VERSION。通过后执行 git tag -s -a -m "NVIDIA NeMo Fabric ${RELEASE_VERSION}" "${RELEASE_TAG}" "${RELEASE_SHA}",再 git tag -v、git show 验证,最后 git push upstream "refs/tags/${RELEASE_TAG}"。
限制:任一检查失败即停止;不得强制更新、替换或删除已有本地或远端标签。其它未提供细节暂未提供。