mcpField
V
version-bump

version-bump

github.com/thedotmack开发104.0k1.9k 次安装今天更新
代码仓库

关于 version-bump

version-bump 是指导维护者执行项目版本升级与发布流程的技能。它涵盖多个清单文件的版本更新、构建验证、GitHub 和 npm 发布步骤,以及发布后的检查。

主要功能

  1. 01判断补丁、次要或主要版本
  2. 02更新多个清单中的版本
  3. 03构建并同步发布产物
  4. 04提交、打标签并发布版本
  5. 05核验 npm 版本与来源证明

适用场景

  1. 01准备项目版本升级
  2. 02发布前验证构建产物
  3. 03发布后检查 npm 版本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/thedotmack/claude-mem --skill version-bump

安装后在 Claude Code 中输入/version-bump确认已加载。

附带文件scripts/generate_changelog.js

详细介绍

版本升级与发布工作流

重要: 开始之前,请规划并编写详细的发布说明。

关键: 提交所有内容(包括构建产物)。完成此工作流时,不应留下任何未提交或未推送的内容。最后运行 git status 进行验证。

准备工作

  1. 分析:确定此次更改属于 PATCH(错误修复)、MINOR(功能)还是 MAJOR(不兼容更改)。

  2. 环境:通过 git remote -v 确定仓库所有者和名称。

  3. 路径 — 所有包含版本字符串的文件:

    • 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 徽章。如果自本文档上次更新以来新增了清单,请更新此列表。

工作流

  1. 更新:将上述每个路径中的版本字符串递增。不要修改 CHANGELOG.md——它会重新生成。
  2. 验证:运行 git grep -n "\"version\": \"<NEW>\"",确认全部 14 个 JSON 文件都匹配,且 README 徽章显示 version-<NEW>-green。运行 git grep -n "\"version\": \"<OLD>\"",应无匹配结果。
  3. 构建并同步:运行 npm run build-and-sync,以重新生成构件、同步本地市场副本、重启工作进程并清空队列。发布验证时不要使用普通的 npm run build,因为它可能导致本地市场与工作进程不同步。
  4. 提交:git add -A && git commit -m "chore: bump version to X.Y.Z"。
  5. 打标签:git tag -a vX.Y.Z -m "Version X.Y.Z"。
  6. 推送:git push origin main && git push origin vX.Y.Z。
  7. GitHub 发布:gh release create vX.Y.Z --title "vX.Y.Z" --notes "RELEASE_NOTES"。
  8. 更新日志:通过项目的更新日志脚本重新生成:
    npm run changelog:generate
    
    (运行 node scripts/generate-changelog.js,该脚本会从 GitHub API 获取发布记录并重写 CHANGELOG.md。)
  9. 同步更新日志:提交并推送更新后的 CHANGELOG.md。
  10. 发布前审计:确认发布提交、标签、GitHub 发布记录和更新日志均已推送,且发布工作树中没有待处理的已跟踪更改。
  11. 发布到 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-status
    
    不要在本地运行 npm 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)。重命名工作流文件会导致发布中断,直到更新该条目;修改该配置需要维护者的安全密钥。
  12. 发布后验证与通知:发布后,验证确切版本和 latest dist-tag:
    npm view [email protected] version
    npm view claude-mem dist-tags.latest
    npm view [email protected] dist.attestations --json   # 工作流生成的来源证明
    
    然后,仅在 npm 验证通过后,将发布信息发到 X:
    • 使用可用的图像生成工具,根据发布说明生成一张与此次发布相关的图片。
    • 在已登录 X 的浏览器中(例如 Chrome 中的 Claude)打开 x.com,并确认当前账号是 @Claude_Memory。如果没有浏览器已登录,或当前账号不是该账号,请跳过发帖,并在发布报告中说明。切勿登录或切换账号。
    • 发布一条简短的发布摘要,包含版本号、GitHub 发布网址和附加图片,然后报告帖子的网址。
  13. 收尾:运行 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