关于 version-bump
version-bump 是指导维护者执行项目版本升级与发布流程的技能。它涵盖多个清单文件的版本更新、构建验证、GitHub 和 npm 发布步骤,以及发布后的检查。
主要功能
- 01判断补丁、次要或主要版本
- 02更新多个清单中的版本
- 03构建并同步发布产物
- 04提交、打标签并发布版本
- 05核验 npm 版本与来源证明
适用场景
- 01准备项目版本升级
- 02发布前验证构建产物
- 03发布后检查 npm 版本
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thedotmack/ claude-mem --skill version-bump安装后在 Claude Code 中输入/version-bump确认已加载。
附带文件scripts/generate_changelog.js
详细介绍
版本升级与发布工作流
重要: 开始之前,请规划并编写详细的发布说明。
关键: 提交所有内容(包括构建产物)。完成此工作流时,不应留下任何未提交或未推送的内容。最后运行 git status 进行验证。
准备工作
-
分析:确定此次更改属于 PATCH(错误修复)、MINOR(功能)还是 MAJOR(不兼容更改)。
-
环境:通过
git remote -v确定仓库所有者和名称。 -
路径 — 所有包含版本字符串的文件:
package.json— npm/npx 发布的版本(npx [email protected]将使用此版本)plugin/package.json— 打包的插件运行时依赖项.claude-plugin/marketplace.json—plugins[0].version中的版本.claude-plugin/plugin.json— 顶层 Claude 插件清单plugin/.claude-plugin/plugin.json— 打包的 Claude 插件清单.codex-plugin/plugin.json— Codex 插件清单plugin/.codex-plugin/plugin.json— 打包的 Codex 插件清单.qoder-plugin/plugin.json— Qoder 插件清单plugin/.qoder-plugin/plugin.json— 打包的 Qoder 插件清单openclaw/openclaw.plugin.json— OpenClaw 插件清单.grok-plugin/plugin.json— Grok 插件清单claude-mem-cursor/.cursor-plugin/plugin.json— Cursor 插件清单claude-mem-grok-bot/.cursor-plugin/plugin.json— Grok Bot Cursor 插件清单dsh/package.json— 打包的 DSH 插件包README.md— 版本徽章(version-X.Y.Z-green),而非"version"键
编辑前请确认覆盖范围:
git grep -l "\"version\": \"<OLD>\""应列出上面的 14 个 JSON 文件,git grep -n "version-<OLD>-green"应列出 README 徽章。如果自本文档上次更新以来新增了清单,请更新此列表。
工作流
- 更新:将上述每个路径中的版本字符串递增。不要修改
CHANGELOG.md——它会重新生成。 - 验证:运行
git grep -n "\"version\": \"<NEW>\"",确认全部 14 个 JSON 文件都匹配,且 README 徽章显示version-<NEW>-green。运行git grep -n "\"version\": \"<OLD>\"",应无匹配结果。 - 构建并同步:运行
npm run build-and-sync,以重新生成构件、同步本地市场副本、重启工作进程并清空队列。发布验证时不要使用普通的npm run build,因为它可能导致本地市场与工作进程不同步。 - 提交:
git add -A && git commit -m "chore: bump version to X.Y.Z"。 - 打标签:
git tag -a vX.Y.Z -m "Version X.Y.Z"。 - 推送:
git push origin main && git push origin vX.Y.Z。 - GitHub 发布:
gh release create vX.Y.Z --title "vX.Y.Z" --notes "RELEASE_NOTES"。 - 更新日志:通过项目的更新日志脚本重新生成:
(运行npm run changelog:generatenode scripts/generate-changelog.js,该脚本会从 GitHub API 获取发布记录并重写CHANGELOG.md。) - 同步更新日志:提交并推送更新后的
CHANGELOG.md。 - 发布前审计:确认发布提交、标签、GitHub 发布记录和更新日志均已推送,且发布工作树中没有待处理的已跟踪更改。
- 发布到 npm——由工作流完成。 推送
vX.Y.Z标签会触发.github/workflows/npm-publish.yml,该工作流会进行构建、运行 clean-room 冒烟测试,并通过 npm 可信发布(GitHub OIDC)进行发布,因此无需 npm 令牌。查看运行状态:
不要在本地运行gh run list --workflow npm-publish.yml --branch vX.Y.Z # 标签运行会将标签报告为其分支 gh run watch <run-id> --exit-statusnpm publish,即使本地 npm 登录有效也不行:工作流是唯一的发布途径,且只有它会附加来源证明。 如果运行失败,请使用gh run view <run-id> --log-failed查看失败步骤。 临时故障(网络、注册表中断)可通过gh run rerun <run-id>重新运行;重新运行会构建相同的已打标签提交,因此代码或工作流中的修复应通过 PR 合入,并在下一次补丁版本发布时推出。 切勿移动或重新创建已推送的标签。 可信发布方配置位于 npmjs.com →claude-mem→ Settings → Trusted Publisher(GitHub Actions、thedotmack/claude-mem、npm-publish.yml、允许npm publish)。重命名工作流文件会导致发布中断,直到更新该条目;修改该配置需要维护者的安全密钥。 - 发布后验证与通知:发布后,验证确切版本和 latest dist-tag:
然后,仅在 npm 验证通过后,将发布信息发到 X:npm view [email protected] version npm view claude-mem dist-tags.latest npm view [email protected] dist.attestations --json # 工作流生成的来源证明- 使用可用的图像生成工具,根据发布说明生成一张与此次发布相关的图片。
- 在已登录 X 的浏览器中(例如 Chrome 中的 Claude)打开 x.com,并确认当前账号是
@Claude_Memory。如果没有浏览器已登录,或当前账号不是该账号,请跳过发帖,并在发布报告中说明。切勿登录或切换账号。 - 发布一条简短的发布摘要,包含版本号、GitHub 发布网址和附加图片,然后报告帖子的网址。
- 收尾:运行
git status——工作树必须干净,且所有内容都必须已推送。
检查清单
- 全部 15 个版本文件(14 个 JSON 清单和 README 徽章)的版本一致
- 使用
git grep搜索旧版本,结果为零 -
npm run build-and-sync执行成功 - Git 标签已创建并推送
- GitHub 发布已创建并附有说明
-
CHANGELOG.md已更新并推送 - 发布前审计已通过
- 针对该标签运行的
Publish to npm工作流已成功(未在本地运行npm publish) - 发布后已验证确切的 npm 版本和
latest - npm 验证后,已使用生成的图片以
@Claude_Memory的身份在 X 发布(或因没有浏览器以该账号登录而跳过) -
git status显示工作区干净
评论
支持 Markdown