跳转至

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 市场安装仍保持为独立的安装路径:

/plugin marketplace add https://github.com/affaan-m/ECC
/plugin install ecc@ecc

永远不要取消发布 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 合并前的预检

  1. PR #2863 必须可合并,并且所有必需的托管检查必须通过。
  2. 在 PR 头处,完整的本地测试套件、npm audit、IOC 扫描和精确打包生命周期必须通过。
  3. 打包的 README 必须将 2.2 描述为可用,并且不包含未发布的 2.2 警告。
  4. Nasiko 界面必须说明实验性 CLI 生命周期桥接。
  5. npm view ecc-universal@2.2.0 version 必须返回 E404。任何其他注册表错误都会阻止发布。
  6. 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 创建并推送签名的发布标签:

git tag -s v2.2.0 -m "ECC 2.2.0" HEAD
git tag -v v2.2.0
git push origin refs/tags/v2.2.0

该标签推送是唯一的发布开关。然后工作流:

  1. 要求标签提交等于 origin/main。
  2. 打包并哈希 npm 归档一次。
  3. 在 Linux、macOS 和 Windows 上运行精确归档。
  4. 将归档发布到 npm staged 标签。
  5. 读回并验证注册表完整性。
  6. 原子地将已验证版本提升到 latest。
  7. 从已审查的说明创建 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