ECC 2.2.1 签名补丁版本发布运行手册¶
只有授权维护者才能创建或推送 v2.2.1 标签、更改 npm dist-tags,或发布 GitHub Release。
可用性模型¶
默认 npm 安装将保持为 ecc-universal@2.2.0,直到最终提升步骤成功。发布工作流会在 staged 标签下发布 2.2.1,回读其注册表完整性,将这些字节与通过三平台生命周期的精确归档进行比较,然后才将 latest 移动到 2.2.1。
原生 Claude marketplace 安装在整个 npm 推广期间仍保持为独立的安装路径:
切勿取消发布 2.2.0 或 2.2.1。npm dist-tags 提供可逆开关。
历史例外¶
v2.2.0 已经公开且必须保持不可变,即使 git tag -v v2.2.0 返回 error: no signature found。ECC-031 通过发布一个新的签名补丁版本来弥补该溯源缺口。不要移动、重新创建或重用 v2.2.0。
标签创建前的预检¶
2.2.1版本准备 PR 必须已合并。- 在精确合并的
main提交上,CI 和 CodeQL 必须通过。 HEAD、origin/main和目标发布提交必须全部一致。npm view ecc-universal@2.2.1 version必须返回E404。任何其他 注册表错误都会阻止发布。npm view ecc-universal dist-tags --json仍必须显示latest: 2.2.0。- 发布操作员在创建标签之前必须拥有本地可用的签名身份。
发布切换¶
在精确通过的准备提交上,从干净且最新的 main 检出开始:
git fetch origin main --tags
git switch main
git pull --ff-only origin main
git status --short
git rev-parse HEAD
git rev-parse origin/main
提交 ID 必须匹配,并且 git status --short 必须不输出任何内容。然后,授权维护者创建并验证签名发布标签:
该标签推送是唯一的发布切换。随后工作流会:
- 要求标签提交等于
origin/main。 - 对 npm 归档打包并计算一次哈希。
- 在 Linux、macOS 和 Windows 上运行该精确归档。
- 将归档发布到 npm
staged标签,并附带溯源信息。 - 回读并验证注册表完整性。
- 原子性地将已验证版本提升到
latest。 - 根据已审阅的说明创建 GitHub Release。
即时金丝雀¶
工作流成功后:
npm view ecc-universal dist-tags --json
npm view ecc-universal@2.2.1 version dist.integrity
gh release view v2.2.1 --repo affaan-m/ECC
npx --yes ecc-universal@2.2.1 setup --help
npx --yes ecc-universal@latest setup --help
预期:
- 精确版本和
latest都解析为2.2.1; - 注册表完整性与工作流输出匹配;
- GitHub Release 存在并使用已审阅的说明;
- 两个包调用都返回引导式设置帮助;
- 原生 Claude marketplace 路径仍可安装。
将 HTTP 失败、完整性不匹配、缺少公共二进制文件或一次性安装失败视为严重问题。
回滚¶
如果 2.2.1 存在安装关键回归,授权 npm 所有者会立即恢复已知的可安装回退版本:
npm dist-tag add ecc-universal@2.2.0 latest
npm view ecc-universal dist-tags --json
ECC_ROLLBACK_ROOT=$(mktemp -d)
npm install --ignore-scripts --prefix "$ECC_ROLLBACK_ROOT" ecc-universal@2.2.0
node "$ECC_ROLLBACK_ROOT/node_modules/ecc-universal/scripts/ecc.js" --help
gh release edit v2.2.0 --repo affaan-m/ECC --latest
然后开启发布事故,说明在调查事故期间 2.2.1 仅可通过精确版本使用,并使用新的补丁版本向前修复。不要取消发布任何包版本,也不要重用 v2.2.1 标签。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC