Skip to main content

create-rc-tag

Create and push a signed, annotated NeMo Relay release-candidate tag from its validated release branch. Use when cutting an RC tag; not for code freezes or stable tags.

来源信息

仓库
NVIDIA/NeMo-Relay
最近来源活动
2026年9月25日 15:02
检测到的 SKILL.md 语言
英语
星标
192
分支
77

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
create-rc-tag
description
Create and push a signed, annotated NeMo Relay release-candidate tag from its validated release branch. Use when cutting an RC tag; not for code freezes or stable tags.
license
Apache-2.0
# Create an RC Tag Require an explicit stable base version in `<major>.<minor>[.<patch>]` form; treat two components as patch `0`. Do not infer it from the branch or package metadata, and do not edit version files while creating the tag. The matching `release/<major>.<minor>` branch must exist on `upstream`. Select the next unused positive RC number for that exact base version unless the user supplies one. Relay uses raw-SemVer tags such as `0.9.0-rc.1`, without a leading `v`. Before the destructive tag push, require explicit approval. Preserve user changes: do not stash, discard, or switch away from a dirty checkout. Fetch the release branch and tags, require `HEAD` to equal the upstream release branch, and require the workspace version to equal the stable base version. Verify that both local and remote tags are absent, create a signed annotated tag, verify it with `git tag -v`, and push only `refs/tags/<tag>`. Stop on any failed check; never force-update, replace, or delete tags. ## Select and Verify the Source Use `upstream` for `NVIDIA/NeMo-Relay`. The version and optional RC number are user inputs. Validate a supplied number as a positive integer; otherwise derive the next number after fetching the release branch and tags. ```bash BASE_VERSION=<major.minor[.patch]> [[ "$BASE_VERSION" =~ ^[0-9]+\.[0-9]+(\.[0-9]+)?$ ]] || { echo "Error: invalid base version" >&2; exit 1; } if [[ "$BASE_VERSION" =~ ^[0-9]+\.[0-9]+$ ]]; then BASE_VERSION="$BASE_VERSION.0"; fi RELEASE_BRANCH="release/$(printf '%s' "$BASE_VERSION" | cut -d. -f1,2)" git ls-remote --exit-code --heads upstream "refs/heads/$RELEASE_BRANCH" git fetch upstream "$RELEASE_BRANCH" --tags LAST_RC="$(git tag --list "${BASE_VERSION}-rc.*" | sed -nE "s/^${BASE_VERSION//./\\.}-rc\.([1-9][0-9]*)$/\\1/p" | sort -n | tail -1)" RC_NUMBER="${RC_NUMBER:-$(( ${LAST_RC:-0} + 1 ))}" [[ "$RC_NUMBER" =~ ^[1-9][0-9]*$ ]] TAG="${BASE_VERSION}-rc.${RC_NUMBER}" ``` From a clean checkout of `RELEASE_BRANCH`, require `HEAD` to match `upstream/$RELEASE_BRANCH`, verify the workspace version matches `BASE_VERSION`, and check that `TAG` is absent locally and on `upstream`. After the user authorizes the push: ```bash git tag -s -a -m "NVIDIA NeMo Relay ${TAG}" "$TAG" HEAD git tag -v "$TAG" git push upstream "refs/tags/$TAG" ```
在 GitHub 查看