通用 Release 流程
理解 Apache 发布的内容和流程
总的来说,Source Release 是 Apache 关注的重点,也是发布的必须内容;而 Binary Release 是可选项,Dubbo 可以选择是否发布二进制包到 Apache 仓库或者发布到 Maven 中央仓库。
请参考以下链接,找到更多关于 ASF 的发布指南:
发布流程
1. 准备分支
从主干分支拉取新分支作为发布分支,如现在要发布 ${release_version}
版本,则从开发分支拉出新分支 ${release_version}-release
,此后${release_version}
Release Candidates 涉及的修改及打标签等都在${release_version}-release
分支进行,最终发布完成后合入主干分支。
例:如 Java SDK 需要发布 3.0.10
版本,从 3.0
分支拉出新分支 3.0.10-release
,并在此分支提交从 Snapshot 替换为 3.0.10
版本号的 commit。
2. Github 打标签并发布 Pre Release 状态
在对应 GitHub 仓库中基于 ${release_version}-release
分支,打标签 ${release_version}-release
,填写 Release Note 并发布 Pre Release 状态。(不允许在投票流程正式通过前把 Release 状态置为正式发布状态)
注:打完标签之后此分支不允许再提交任何 commit,需要保证分支中最后一个 commit 就是标签的 commit 和投票中的 commit。
3. 预发布二进制包(可选)
通过构建工具推送二进制包到托管平台,如 Java SDK 发布到 Maven 仓库,状态为 Staging。
注:如果托管平台不支持预发布功能,则需要在投票正式通过后再发布。
4. 构建 Source Release 文件
将源码使用 zip 格式进行打包,使用个人 gpg 证书进行签名得到 asc 文件以及使用 shasum 工具生成 sha512 文件。
例:如 Java SDK 发布 3.0.10
版本,需要构建 apache-dubbo-3.0.10-src.zip
、 apache-dubbo-3.0.10-src.zip.asc
和 apache-dubbo-3.0.10-src.zip.sha512
三个文件。
5. 提交 Source Release 文件到 Apache SVN 仓库
将 Source Release 文件推送到 https://dist.apache.org/repos/dist/dev/dubbo/
仓库中,文件存储到 https://dist.apache.org/repos/dist/dev/dubbo/${component_name}/${release_version}/
目录下。(需要 Committer 权限才能推送)
6. 发送投票邮件
使用 Apache 邮箱发送投票邮件,投票邮件的标题为:[VOTE] Release ${component_name} ${release_version} RC1
,邮件内容需要包含以下内容:
- Source Release 的链接
- 二进制包预发布的链接(如有)
- GitHub Tag 标签
- 最后一个 Commit 的 Hash
- Release Note 链接
- Source Release 使用的签名文件
以上的 Source Release、Tag、Hash、Release Note 必须完全对应
例:如 Java SDK 发布 3.0.10
版本,发送的邮件如下
Project: [VOTE] Release Apache Dubbo 3.0.10 RC1
Hello Community,
This is a call for vote to release Apache Dubbo version 3.0.10
The release candidates:
https://dist.apache.org/repos/dist/dev/dubbo/dubbo/3.0.10/
The staging repo:
https://repository.apache.org/content/repositories/orgapachedubbo-1216/
Git tag for the release:
https://github.com/apache/dubbo/tree/dubbo-3.0.10
Hash for the release tag:
e7894ca374e966a1d807e34b2744f276b843f39f
Release Notes:
https://github.com/apache/dubbo/releases/tag/dubbo-3.0.10
The artifacts have been signed with Key 2B249EDD, which can be
found in the keys file:
https://dist.apache.org/repos/dist/dev/dubbo/KEYS
The vote will be open for at least 72 hours or until the necessary number of
votes are reached.
Please vote accordingly:
[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove with the reason
Thanks,
The Apache Dubbo Team
7. PMC 检查版本信息,并进行投票
详细的检查列表请参考官方的 check list
8. 投票通过,发布投票结果
在至少等待 72 小时且至少 3 位 PMC 投 +1 approve 票之后,可以发送邮件宣布投票结果。
投票结果邮件的标题为:[RESULT] [VOTE] Release ${component_name} ${release_version} RC1
,邮件内容需要包含投票的 PMC 信息和投票的 thread。
(可以通过 https://lists.apache.org/list.html?dev@dubbo.apache.org 找到)
例:如 Java SDK 发布 2.7.16
版本,发送的邮件如下
Project: [RESULT] [VOTE] Release Apache Dubbo 2.7.16 RC1
Hello Dubbo Community,
The release vote finished, We’ve received
+1 binding, Jun Liu
+1 binding, Laurence
+1 binding, Hao Guo
The vote and result thread:
https://lists.apache.org/thread/o4hk0b0rok78kw7ftqh0ly49wg8whgps
The vote passed. I am working on the further release process, thanks.
Best regards,
The Apache Dubbo Team
9. Github 标记正式 Release
在 GitHub 上正式把前面第 2 步打的标签更新为正式发布状态。
10. 合并 Release 分支回主干
将 ${release_version}-release
合并回开发主干,并更新最新 snapshot 版本号。(${release_version}-release
可以不保留)
11. 移动 Source Release 到 release 仓库(重要)
将 https://dist.apache.org/repos/dist/dev/dubbo/
仓库中存储的 Source Release 文件移动到 https://dist.apache.org/repos/dist/release/dubbo/
仓库中。(仅 PMC 有权限)
同时删除之前的 Source Release 文件。(会被自动存放在 Archive 仓库)
12. 正式发布二进制包(如有)
将前面第 3 步发布的预发布状态的二进制包更新为正式发布状态。
13. 更新 Dubbo Website 文档
更新最新的 Source Release 等信息到 dubbo-website
对应文件中,至少包括 Source Release 的下载方式和二进制包的引用方式(如有),同时将历史的发布的链接更新到 archive 的域名下。
14. 发布正式发布结果通知
投票结果邮件的标题为:[Announce] Release ${component_name} ${release_version} released
。
注:最好等二进制包发布正式同步生效后发布此邮件。
Project: [Announce] Apache Dubbo 3.0.9 released
Hello Dubbo Community,
I am glad to announce that Apache Dubbo 3.0.9 was released.
You can check detailed release notes here:
https://github.com/apache/dubbo/releases/tag/dubbo-3.0.9
If you have any questions using this version, please send mail to here or
report the issue <https://github.com/apache/dubbo/issues> on Github.
Best regards,
Dubbo Team
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.