Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
outlinetrue

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

  1. Set the released version to "released" and set the "release-date"

  2. 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项目的权限。

...