ECC 2.2 发布与回滚运行手册¶
Affaan 是 ECC 2.2 唯一的发布操作员。其他人可以准备、审查和验证发布候选版本,但不得合并发布 PR、创建或推送 v2.2.0、更改 npm dist-tags,或发布 GitHub Release。
可用性模型¶
在最终提升步骤成功之前,默认 npm 安装仍保持为 ecc-universal@2.1.0。发布工作流会在 staged 标签下发布 2.2.0,读回其注册表完整性,将这些字节与通过三平台生命周期的精确归档进行比较,然后才将 latest 移动到 2.2.0。不存在 latest 指向未发布版本的区间。
在整个 npm 推广期间,原生 Claude 市场安装仍保持为独立的安装路径:
永远不要取消发布 2.1.0 或 2.2.0。npm dist-tags 提供可逆开关。
当前后备基线¶
在合并之前,确认以下所有事项:
npm view ecc-universal dist-tags --json
npm view ecc-universal@2.1.0 dist.integrity
curl -fsSIL https://registry.npmjs.org/ecc-universal/-/ecc-universal-2.1.0.tgz
gh release view v2.1.0 --repo affaan-m/ECC
预期:
latest为2.1.0。- 2.1.0 tarball 返回 HTTP 200 和不可变缓存头。
- 干净的
npm install ecc-universal@2.1.0成功。 - 一次性托管安装和卸载成功。
已发布的 2.1 Cursor 适配器可能会针对一个适配的 Markdown 链接报告一个非阻塞 doctor 警告。这不会阻止安装或卸载。ECC 2.2 修正了打包生命周期和 doctor 行为。
Affaan 合并前的预检¶
- PR #2863 必须可合并,并且所有必需的托管检查必须通过。
- 在 PR 头处,完整的本地测试套件、npm audit、IOC 扫描和精确打包生命周期必须通过。
- 打包的 README 必须将 2.2 描述为可用,并且不包含未发布的 2.2 警告。
- Nasiko 界面必须说明实验性 CLI 生命周期桥接。
npm view ecc-universal@2.2.0 version必须返回 E404。任何其他注册表错误都会阻止发布。npm view ecc-universal dist-tags --json仍必须显示latest: 2.1.0。
发布开关¶
在 Affaan 合并 PR #2863 之后,等待精确 origin/main 提交上的 CI。从一个干净、最新的 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 必须不输出任何内容。然后 Affaan 创建并推送签名的发布标签:
该标签推送是唯一的发布开关。然后工作流:
- 要求标签提交等于
origin/main。 - 打包并哈希 npm 归档一次。
- 在 Linux、macOS 和 Windows 上运行精确归档。
- 将归档发布到 npm
staged标签。 - 读回并验证注册表完整性。
- 原子地将已验证版本提升到
latest。 - 从已审查的说明创建 GitHub Release。
即时金丝雀¶
工作流成功后:
npm view ecc-universal dist-tags --json
npm view ecc-universal@2.2.0 version dist.integrity
gh release view v2.2.0 --repo affaan-m/ECC
npx --yes ecc-universal@2.2.0 setup --help
npx --yes ecc-universal@latest setup --help
预期:
- 精确版本和
latest都解析为 2.2.0。 - 注册表完整性与工作流输出匹配。
- GitHub Release 存在并使用已审查的说明。
- 两个包调用都返回引导式设置帮助。
- 原生 Claude 市场仍可安装。
在发布窗口期间持续监控 npm 和 GitHub 安装路径。将 HTTP 失败、完整性不匹配、缺少公共二进制文件或一次性安装失败视为严重问题。
回滚¶
如果 2.2.0 存在安装关键回归,Affaan 或其他授权 npm 所有者立即恢复已知可安装的后备版本:
npm dist-tag add ecc-universal@2.1.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.1.0
node "$ECC_ROLLBACK_ROOT/node_modules/ecc-universal/scripts/ecc.js" --help
gh release edit v2.1.0 --repo affaan-m/ECC --latest
然后开启发布事故,说明在事故调查期间 2.2.0 仅可通过精确版本使用,并使用新的补丁版本向前修复。不要取消发布任何包版本,也不要重用 v2.2.0 标签。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC