...
Table of Contents | ||
---|---|---|
|
1. 创建一个 gpg KEY
对于第一次当RM的人来说,需要将进行这个步骤。
创建gpg key的要求是:使用RSA key,并且长度要大于4096 bits。
...
进入 https://github.com/settings/keys ,添加ssh KEYS。
2. 准备发布版本
(注意:不同的项目可能采用不同的分支管理方法,此处仅供参考)
...
手动修改 client-py/pypi/setup.py 文件中的版本号为当前发布版。
然后开始正式的发版。
3.发布版本
3.1 自动在github上打tag,并生成各种签名文件
...
$ git show release/0.11.1 --name-only
4 投票失败了怎么办
投票失败时,需要先清理战场,然后重新发布。
首先把Nexus上的发布关闭掉,方法是登录到 repository.apache.org 后,然后选中刚才的行,点击 Drop 按钮。
...
并且投票失败了也要写一个RESULT邮件告知情况和下一步的打算,比如参考以前发布经理的例子:https://lists.apache.org/thread.html/89b0af63c0af7455641f738e2500a8a92a2cb4f9efca5456371bf06f%40%3Cdev.iotdb.apache.org%3E
5. 投票通过后怎么办
投票72小时之后要做一个总结邮件:
参考例子:(自己写的时候一定要仔细检查更新)
...
用 apache 账户登录,找到投票的 thread,然后右边这个 permalink 是永久链接,点进去之后拷贝网址就行了。
如果有分裂开的投票线程,可以直接粘贴多个
6. 通过后怎么办
把发布好的文件从dev仓库中移动到release的svn项目中。
...
这里可能会可以很快加载出下载页面,但是里面的下载链接都是无法打开和下载的,必须等到下载链接可以正常下载,才表示同步真正完成
7. 删除旧版本的发布文件
Apache似乎要求当新版本都同步好后,删除掉旧版本的文件(例如本例中是0.11.0),但是我查看了几个项目,这个不是绝对要求的。。建议保留一些版本。
...
svn delete 要删除的文件或者文件夹
svn commit -m "写上提交日志"
8. 正式发布Maven文件
进入https://repository.apache.org/#welcome,登录账号,然后到Staging Repositories中选中你之前close的版本,选择release。完事儿。
9. github publish release
到https://github.com/apache/iotdb/releases,把之前this is a pre-release & save draft的改为publish release。
10. 将release分支的代码更新到最新
我们项目中,release分支始终指向最新的发布版本。
...
git merge -X theirs release/0.11.1
11. 更新JIRA
Set the released version to "released" and set the "release-date"
Add the next version to the versions.
目前这个操作只能够由ppmc执行
12. 修改master分支代码
如果只是小版本发布,可以直接跳过本节。
当有大版本发布时,例如从0.9.3发布到0.10.0时,需要(1)修改master分支的版本号到0.11.0-SNAPSHOT;(2)更复杂的是修改官网的文档目录;(3)修改官网链接。
...
就能在本地测试网页了。(也可以在第13节的下载链接修改完成后但是还没部署前做测试)
13. 更新官网的下载链接
修改 docs/Download/README.md 和 zh/Download/README.md,注意表格中只保留每个大版本的最新版本。
...
之后需要手动部署网页,等待部署成功、官网更新后,再昭告天下:
14. 昭告天下!
当你确认多数镜像都同步好了之后,可以昭告天下发布新版本的信息了:
...
更多参考例子:https://lists.apache.org/list.html?dev@iotdb.apache.org:gte=1d:announce
发布Python包到Pypi
首先,你要有一个账号,在这里注册:https://pypi.org/account/register/
...
https://packaging.python.org/tutorials/packaging-projects/
发布Docker 镜像包到DockerHub
首先,你需要有dockerhub网站下的用户名。
其次,需要去JIRA的INFRA项目中申请,给自己的用户名增加dockerhub中apache/iotdb项目的权限。
...