Skip to content

docs(release): 发版必须建 GitHub Release 并附三个预构建资产 - #16

Merged
graydovee merged 1 commit into
mainfrom
docs/release-process
Oct 20, 2026
Merged

graydovee merged 1 commit into
mainfrom
docs/release-process

Conversation

@graydovee

Copy link
Copy Markdown
Owner

改动

打 tag 之后没有 Release,用户既看不到产物也装不了:桥插件的 lib/ 是构建产物、不入库,dsh plugin add github:graydovee/dsh-browser#path:/packages/browser/bridge-browser 会退出 0 却装出没有 lib/ 的包(加载报 ERR_MODULE_NOT_FOUND);浏览器扩展只能由用户以「已解压扩展」加载。所以发版必须同时产出三个预构建资产。

  • AGENTS.md
    • 《CHANGELOG 规则》补一条:打完 tag 必须建 GitHub Release,只有 tag 不算发版。
    • 《Deployment & Release Safety》新增《发布流程(tag → GitHub Release)》:三条规则(必须发 Release、三个固定资产名、不带版本号 + latest/download 契约)与一条命令的发版方式。
    • 《Project Structure》的 scripts/ 补上 release.sh。
  • .agents/notes/release.md(新增):完整发布流程、资产契约表、手动兜底命令、验收方式(三个 latest/download 必须 200 + 干净 DSH_HOME 实装一次)、与上游 PR 的关系、常见故障。
  • scripts/release.sh(新增):构建(桥插件 + Chrome/Firefox 扩展)→ 打包三个 tgz → 校验包内有 lib/index.js、cordis.patch.yml、两个 manifest.json → 用两个 CHANGELOG 的对应段落拼中英发布说明 → gh release create(已存在则 upload --clobber,显式 --repo graydovee/dsh-browser,因为本仓库 origin 指向上游)→ 校验三个 latest/download 返回 200。支持 --dry-run、--notes-file。

资产契约

资产名 内容
dsh-bridge-browser.tgz @yuxianglin/dsh-bridge-browser 的 npm pack 产物,含 lib/、cordis.patch.yml、locale/
dsh-browser-extension.tgz Chrome/Edge MV3 扩展,解压后含 manifest.json
dsh-browser-extension-firefox.tgz Firefox 扩展,解压后含 manifest.json

名字不带版本号:awesome 条目的 tarball: 用 releases/latest/download/dsh-bridge-browser.tgz(latest 请求时解析、文件名照字面取)。另一种被接受的形态是钉 tag + 文件名带版本号,代价是每次发版回列表改字段;这里选前者,并由脚本每次校验。

验证

  • bash -n scripts/release.sh 语法通过。
  • bash scripts/release.sh v0.1.7 --dry-run:三个构建全跑,产出 112K / 289K / 289K 三个 tgz,包内断言全部通过,未发布任何内容。
  • 纯文档 + 维护脚本,未改 extensions/、packages/ 源码,未跑 vitest(按《验证矩阵》纯文档一行)。

影响范围

只影响维护者发版流程,对已安装用户无影响。

@graydovee
graydovee merged commit 390d7d5 into main Oct 20, 2026
1 check passed
@graydovee
graydovee deleted the docs/release-process branch October 20, 2026 09:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant