多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

pstack 发布指南:VERSION 到 CHANGES.md,3 步搞定插件自动更新

pstack 发布指南:VERSION 到 CHANGES.md,3 步搞定插件自动更新 pstack 发布指南VERSION 到 CHANGES.md3 步搞定插件自动更新【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Potetos pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claude想让自己的 pstack 修改真正到达每一位用户吗pstack 是 Poteto 严格 agent 工作流的 Claude Code、Codex、GitHub Copilot、Pi 等多运行时移植版它的插件自动更新完全按版本号工作。读懂根目录的 VERSION 单文件版本源和 CHANGES.md 发布日志你就掌握了 pstack 从改代码到自动推送更新的完整发布流程。为什么 pstack 按版本号自动更新这是理解整个发布流程的前提。根据 CONTRIBUTING.md 的 Releasing 章节Plugin auto-update installsby version number, not by trackingmain. 插件自动更新按版本号安装而不是追踪 main 分支。这意味着一个残酷的事实如果你的修改合入了 main 但没有升版本号它对所有已安装用户都是隐形的——更新器发现版本号没变就直接跳过什么都不做。未升版本的修改 在每台已安装机器上失效所以 pstack 的规矩是任何改变技能skill行为的 PR要么自己升版本要么紧跟一个升版本的发布 PR。发布三件套VERSION、CHANGES.md、generatepstack 的版本提升是严格的三步走漏掉任何一步 CI 都会失败步骤做什么对应文件1️⃣编辑根目录VERSION改成新的语义化版本号VERSION2️⃣在CHANGES.md顶部加一条## version - 标题条目说明改了什么、为什么CHANGES.md3️⃣运行bun tools/generate.mjs把版本号盖章到所有插件清单tools/generate.mjs步骤一VERSION 是唯一版本源VERSION 文件里只有一行内容就是一个语义化版本号当前为0.9.730.9.73它是全仓库唯一的版本真相源single source of truth。tools/generate.mjs 加载时会严格校验它必须符合MAJOR.MINOR.PATCH格式否则直接报错。步骤二CHANGES.md 必须版本对齐CHANGES.md 是发布日志每次发布一条## version - 标题的条目最新在最上面。生成器不只是检查文件存在它会做一套完整的对齐校验见 assertChangesHeading✅ 必须存在与VERSION完全匹配的## 0.9.73标题✅ CHANGES.md 里最新的版本条目必须就是当前VERSION防止你只改了日志没改版本或反过来✅ 标题格式必须是## version - 标题标题不能为空✅ 不允许两个版本条目共用同一个版本号以最近的 0.9.73 发布 为例条目记录了 pstack 新增 GitHub Copilot 运行时支持的完整细节——从安装命令、钩子文件到回归测试的通过数这正是 pstack 日志的重度信息密度风格。步骤三generate.mjs 把版本号盖进所有清单仓库里其实有多份插件清单每个运行时一份plugins/pstack/.claude-plugin/plugin.json —— Claude Codeplugins/pstack/.codex-plugin/plugin.json —— Codexplugins/pstack/.github/plugin/plugin.json —— GitHub Copilot好消息是你永远不需要手改它们。tools/generate.mjs 的stampVersion函数会把VERSION的内容精确写入每份清单的唯一一个version字段如果某份清单里意外出现两个 version 字段它会大声报错而不是盲改。⚠️ 常见踩坑手动编辑某份清单的version字段、或改了VERSION却没重新跑生成器都会让 CI 的 Generated files current 任务失败——因为 CI 跑的是bun tools/generate.mjs --check它对任何陈旧、缺失或孤立的生成文件都零容忍。本地发布前检查清单合入发布 PR 之前按 CONTRIBUTING.md 的建议在本地跑一遍bun install --frozen-lockfile bun tools/generate.mjs # 盖章 校验 bun test tests/ # 全套测试如果改动涉及watch-pr/等 CI 无法覆盖的行为测试还要按文档额外跑对应的 live 检查如 tests/copilot-smoke.sh。提交时遵循 pstack 的 PR 风格只声称你验证过的事实并点名那个检查——909 个测试全部通过胜过测试通过了。一图总结发布流程改代码/技能 │ ▼ 改 VERSION ──► 加 CHANGES.md 条目 ──► bun tools/generate.mjs │ │ ▼ ▼ CI: generate.mjs --check 各运行时清单 version 字段同步 │ ▼ 合入 main ──► 插件自动更新器发现新版本 ──► 所有用户拿到更新 写在最后pstack 的发布流程设计得很防呆单一版本源、强制日志对齐、生成器盖章、CI 双重保险——四道关卡确保每一次行为变更都一定会被版本号看见从而一定会推送到用户机器上。如果你计划给 pstack 提交 PR记住这个口诀即可先升 VERSION再写 CHANGES最后跑 generate。三步齐了你的修改才能从仓库里的代码变成用户手里的更新。更多细节可参考 docs/reference.md 与 CONTRIBUTING.md。【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Potetos pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claude创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表