参考

发布渠道

HyperFrames 如何将仅限 alpha 的工作与稳定发布隔离。

HyperFrames 发布两个渠道:

  • 稳定发布使用类似 0.4.24 的版本号,发布到 npm 的 latest dist-tag。
  • 预发布使用类似 0.4.24-alpha.1 的版本号,发布到以预发布后缀命名的 npm dist-tag,例如 alpha

分支策略

通过分支隔离来决定哪些代码适用于每个发布渠道。dist-tag 只控制 npm install 的默认值;它们不会从包中移除代码。

  • main 是稳定/可发布的。合并到 main 的任何内容都有资格进入 latest
  • release/v* 分支用于稳定补丁发布和热修复。
  • nextalphabetarccanaryprerelease/* 分支用于预发布集成。

如果某个功能应该仅在 alpha 中发布,请将该 PR 合并或重定向到预发布分支,而不是 main

稳定发布

稳定发布必须可以从 origin/mainorigin/release/v* 到达。

bun run set-version 0.4.24
git push origin main --tags

对于热修复,从最后一个稳定标签创建分支,只 cherry-pick 修复内容,发布补丁版本,然后将相同的修复合并或 cherry-pick 回预发布分支。

Alpha 发布

Alpha 发布必须可以从预发布分支(如 origin/nextorigin/alpha)到达。

git checkout next
bun run set-version 0.4.25-alpha.1
git push origin next
git push origin v0.4.25-alpha.1

用户可以显式安装 alpha 构建:

npm install hyperframes@alpha
npm install @hyperframes/core@alpha

CI 安全机制

发布工作流在发布前验证发布渠道边界:

  • 稳定版本必须使用 latest 发布。
  • 预发布版本必须使用预发布 dist-tag 发布,例如 alpha
  • 稳定标签必须可以从 mainrelease/v* 到达。
  • 预发布标签必须可以从预发布分支到达。
  • 合并的 release/vX.Y.Z PR 只发布稳定版本。

这可以防止仅限 alpha 的功能被意外包含在稳定热修复中。