理解Apache发布的内容和流程
总的来说,Source Release是Apache关注的重点,也是发布的必须内容;而Binary Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。
请参考以下链接,找到更多关于ASF的发布指南:
• Apache Release Guide
• Apache Release Policy
• Maven Release Info
本地构建环境准备
主要包括签名工具、Maven仓库认证相关准备
- 安装GPG,参见 https://www.gnupg.org/downloa...
如Mac OS
- 用gpg生成key
根据提示,生成key
查看key id
如果有多个public key,设置默认key
~/.gnupg/gpg.conf
- 设置Apache中央仓库
Dubbo项目的父pom为apache pom
添加以下内容到.m2/settings.xml
打包&上传
- 从主干分支拉取新分支作为发布分支,如现在要发布2.6.4版本,则从2.6.x拉出新分支2.6.4-release,此后2.6.4 Release Candidates涉及的修改及打标签等都在2.6.4-release分支进行,最终发布完成后合入主干分支。
- 首先,在2.6.4-release分支验证maven组件打包、source源码打包、签名等是否都正常工作。
- 用maven-release-plugin发布
先用dryRun验证是否ok
验证通过后,执行release:prepare
执行release:perform,做正式发布
准备Apache发布
- 准备svn本机环境(Apache使用svn托管项目的发布内容)
- 将dubbo checkout到本地目录
- 当前发布版本为2.6.4,新建目录
- 添加public key到KEYS文件。KEYS主要是让参与投票的人在本地导入,用来校验sign的正确性
- 拷贝Dubbo根目录下的source.zip包到svn本地仓库dubbo/2.6.4
- 生成sha512签名
- 如果有binary release要同时发布
- 提交到Apache svn
验证Release Candidates
证环节包含但不限于以下内容和形式:
- Check signatures and hashes are good
- unzip dubbo-incubating-${release_version}-source-release.zip to the default directory and check the following:
• Directory with incubator in name
dubbo-incubating-${release_version}-bin-release
• DISCLAIMER file exists
• LICENSE and NOTICE file exists and contents are good
• All files and no binary files exist
• All files has standard ASF License header
• Can compile from source
• All unit tests can pass
• Release candidates match with corresponding tags, you can find tag link and hash in vote email.
进入投票
投票分两个阶段:
- Dubbo社区投票,发起投票邮件到dev@dubbo.apache.org。在社区开发者Review,并统计到3个同意发版的binding票后,即可进入下一阶段的投票。
- Apache社区投票,发起投票邮件到general@apache.org。在Apache PMC Review,并统计到3个统一发版的binding票后,即可进行正式发布。
邮件模板:
正式发布
- 提交https://dist.apache.org/repos...://dist.apache.org/repos/dist/release/incubator/dubbo/,完成正式发布。
- 发邮件到dev@dubbo.apache.org和general@apache.org,通知社区发布完成。
完成Maven Convenient Binary发布(可选)
apache.repository.org nexus仓库的权限已经申请,参见jira。
之前发布到maven仓库的atifacts都处于staging状态,用Apache id登录apache.repository.org,完成发布。
本文作者:中间件小哥
阅读原文
本文为云栖社区原创内容,未经允许不得转载。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。