参考
发布渠道
HyperFrames 如何将仅限 alpha 的工作与稳定发布隔离。
HyperFrames 发布两个渠道:
- 稳定发布使用类似
0.4.24的版本号,发布到 npm 的latestdist-tag。 - 预发布使用类似
0.4.24-alpha.1的版本号,发布到以预发布后缀命名的 npm dist-tag,例如alpha。
分支策略
通过分支隔离来决定哪些代码适用于每个发布渠道。dist-tag 只控制 npm install 的默认值;它们不会从包中移除代码。
main是稳定/可发布的。合并到main的任何内容都有资格进入latest。release/v*分支用于稳定补丁发布和热修复。next、alpha、beta、rc、canary和prerelease/*分支用于预发布集成。
如果某个功能应该仅在 alpha 中发布,请将该 PR 合并或重定向到预发布分支,而不是 main。
稳定发布
稳定发布必须可以从 origin/main 或 origin/release/v* 到达。
bun run set-version 0.4.24
git push origin main --tags
对于热修复,从最后一个稳定标签创建分支,只 cherry-pick 修复内容,发布补丁版本,然后将相同的修复合并或 cherry-pick 回预发布分支。
Alpha 发布
Alpha 发布必须可以从预发布分支(如 origin/next 或 origin/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。 - 稳定标签必须可以从
main或release/v*到达。 - 预发布标签必须可以从预发布分支到达。
- 合并的
release/vX.Y.ZPR 只发布稳定版本。
这可以防止仅限 alpha 的功能被意外包含在稳定热修复中。