You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by li...@apache.org on 2019/03/12 02:51:10 UTC

[incubator-doris-website] branch master updated: Add release process

This is an automated email from the ASF dual-hosted git repository.

lide pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 7f2be23  Add release process
7f2be23 is described below

commit 7f2be2311a404de40a0f484e183ecf0bb0c77e42
Author: lide <li...@baidu.com>
AuthorDate: Tue Mar 12 10:51:19 2019 +0800

    Add release process
---
 pages/policy/release_process.md | 564 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 564 insertions(+)

diff --git a/pages/policy/release_process.md b/pages/policy/release_process.md
new file mode 100644
index 0000000..5c15d2a
--- /dev/null
+++ b/pages/policy/release_process.md
@@ -0,0 +1,564 @@
+title=Apache Doris 发布流程
+date=2019-03-12
+type=policy
+status=published
+~~~~~~
+
+Apache 的发布必须至少是 IPMC 成员,拥有 apache 邮箱的commiter,这个角色叫做 release manager。
+
+发布的大致流程如下:
+
+1. 在社区发起 DISCUSS;
+2. 准备分支和打 tag;
+3. 将 tag 打包签名;
+4. 上传签名的软件包到 Apache SVN 的 DEV 目录
+3. 发社区投票邮件
+4. 投票通过后,发 Result 邮件
+5. 发邮件到 general@incubator.apache.org 进行投票
+6. 发 Result 邮件到 general@incubator.apache.org
+7. 上传签名的软件包到 Apache SVN 的 release 目录,并生成相关链接
+8. 准备 release note 并发 Announce 邮件到 general@incubator.apache.org
+9. 在 Doris 官网和 github 发布下载链接
+
+Release manager 在发布前需要先生成自己的签名公钥,并上传到公钥服务器,之后就可以用这个公钥对准备发布的软件包进行签名。
+
+## 1. 准备发布
+
+###  1.1 在社区发起 DISCUSS
+
+如果觉得已经修复了很多bug,开发了比较重要的 feature,任何 IPMC 成员都可以发起 DISCUSS 讨论发布新版本。
+可以发起一个标题为 [DISCUSS] x.y.z release 的邮件,在社区内部进行讨论,说明已经修复了哪些bug,开发了哪些 features。
+如果 DISCUSS 邮件得到大家支持就可以进行下一步。
+
+###  1.2 准备分支和打 tag
+
+发布前需要先新建一个分支,然后在新建分支上打 tag。
+
+例如:
+
+```
+$ git checkout -b branch-0.9
+$ git tag -a 0.9.0-rc01 -m "0.9.0 release candidate 01"
+
+$ git push origin --tags
+Counting objects: 1, done.
+Writing objects: 100% (1/1), 165 bytes | 0 bytes/s, done.
+Total 1 (delta 0), reused 0 (delta 0)
+To git@github.com:apache/incubator-doris.git
+ * [new tag]         0.9.0-rc01 -> 0.9.0-rc01
+
+$ git tag
+```
+
+
+## 2. 签名软件 GnuPG 的安装配置
+###  2.1 GnuPG
+
+1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。
+
+###  2.2 安装配置
+
+CentOS 安装命令:
+
+```
+yum install gnupg
+```
+安装完成后,默认配置文件 gpg.conf 会放在 home 目录下。
+
+编辑gpg.conf, 修改或者增加 keyserver 配置:
+
+```
+keyserver hkp://keys.gnupg.net
+```
+
+Apache 签名推荐 SHA512, 可以通过配置 gpg 完成。
+编辑gpg.conf, 增加下面的三行:
+
+```
+personal-digest-preferences SHA512
+cert-digest-algo SHA512
+default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
+```
+
+## 3. 生成新的签名
+
+### 3.1 准备签名
+
+推荐的生成新签名的设置:
+
+这里必须通过 SecureCRT 等终端直接登录用户账户,不能通过 su - user 或者 ssh 转,否则密码输入 box 会显示不出来而报错。
+
+先看下 gpg 的 version 以及是否支持 SHA512.
+
+```
+$ gpg --version
+gpg (GnuPG) 2.0.22
+libgcrypt 1.5.3
+Copyright (C) 2013 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+
+Home: ~/.gnupg
+Supported algorithms:
+Pubkey: RSA, ?, ?, ELG, DSA
+Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
+        CAMELLIA128, CAMELLIA192, CAMELLIA256
+Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
+Compression: Uncompressed, ZIP, ZLIB, BZIP2
+```
+
+### 3.2 生成新的签名
+
+```
+$ gpg --gen-key 
+gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+
+Please select what kind of key you want:
+   (1) RSA and RSA (default)
+   (2) DSA and Elgamal
+   (3) DSA (sign only)
+   (4) RSA (sign only)
+Your selection? 1
+RSA keys may be between 1024 and 4096 bits long.
+What keysize do you want? (2048) 4096
+Requested keysize is 4096 bits
+Please specify how long the key should be valid.
+         0 = key does not expire
+      <n>  = key expires in n days
+      <n>w = key expires in n weeks
+      <n>m = key expires in n months
+      <n>y = key expires in n years
+Key is valid for? (0) 
+Key does not expire at all
+Is this correct? (y/N) y
+
+GnuPG needs to construct a user ID to identify your key.
+
+Real name: xxx
+Name must be at least 5 characters long
+Real name: xxx-yyy
+Email address: xxx@apache.org
+Comment: reed's key
+You selected this USER-ID:
+    "xxx-yyy (xxx's key) <xx...@apache.org>"
+
+Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
+```
+
+### 3.3 查看和输出
+
+第一行显示公钥文件名(pubring.gpg),第二行显示公钥特征(4096位,Hash字符串和生成时间),第三行显示"用户ID",第四行显示私钥特征。
+
+```
+$ gpg --list-keys
+/home/lide/.gnupg/pubring.gpg
+-----------------------------
+pub   4096R/33DBF2E0 2018-12-06
+uid                  xxx-yyy  (xxx's key) <xx...@apache.org>
+sub   4096R/0E8182E6 2018-12-06
+```
+
+其中 xxx-yyy 就是用户ID。
+
+gpg --armor --output public-key.txt --export [用户ID]
+
+```
+$ gpg --armor --output public-key.txt --export xxx-yyy
+$ cat public-key.txt 
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2.0.22 (GNU/Linux)
+
+mQINBFwJEQ0BEACwqLluHfjBqD/RWZ4uoYxNYHlIzZvbvxAlwS2mn53BirLIU/G3
+9opMWNplvmK+3+gNlRlFpiZ7EvHsF/YJOAP59HmI2Z...
+```
+
+## 4. 上传签名公钥
+公钥服务器是网络上专门储存用户公钥的服务器。send-keys 参数可以将公钥上传到服务器。
+
+gpg --send-keys [用户ID]
+
+也可以通过下面的网址上传上述 public-key.txt 的内容:
+
+```
+http://keys.gnupg.net
+```
+
+上传成功之后,可以通过查询这个网站,输入 0x33DBF2E0 查询:
+
+http://keys.gnupg.net/pks/lookup?search=0x33DBF2E0&fingerprint=on&op=index
+
+也可以通过下面的命令上传:
+```
+$ gpg --send-keys xxx-yyy
+gpg: sending key 0x33DBF2E0 to hkp server keys.gnupg.net
+```
+
+## 5. 生成 fingerprint 并上传到 apache 用户信息中
+由于公钥服务器没有检查机制,任何人都可以用你的名义上传公钥,所以没有办法保证服务器上的公钥的可靠性。通常,你可以在网站上公布一个公钥指纹,让其他人核对下载到的公钥是否为真。
+
+fingerprint参数生成公钥指纹:
+
+```
+gpg --fingerprint [用户ID]
+```
+
+```
+$ gpg --fingerprint xxx-yyy
+pub   4096R/33DBF2E0 2018-12-06
+      Key fingerprint = 07AA E690 B01D 1A4B 469B  0BEF 5E29 CE39 33DB F2E0
+uid                  xxx-yyy (xxx's key) <xx...@apache.org>
+sub   4096R/0E8182E6 2018-12-06
+```
+
+将上面的 fingerprint 粘贴到自己的用户信息中:
+
+https://id.apache.org
+OpenPGP Public Key Primary Fingerprint: 
+
+## 6. 生成 keys
+
+新建一个名为 KEYS 的文件,写入如下内容:
+
+```
+This file contains the PGP keys of various developers.
+
+Users: pgp < KEYS
+or
+       gpg --import KEYS
+
+Developers: 
+    pgp -kxa <your name> and append it to this file.
+or
+    (pgpk -ll <your name> && pgpk -xa <your name>) >> this file.
+or
+    (gpg --list-sigs <your name>
+    && gpg --armor --export <your name>) >> this file.
+```
+
+然后生成将 签名信息追加写入:
+
+```
+gpg --list-sigs xxx-yyy >> KEYS
+```
+
+最后,将 public key 追加导入:
+
+```
+gpg --armor --export xxx-yyy >> KEYS 
+```
+
+通过 svn,用自己的 apache 用户密码,将 KEYS 上传到下面目录:
+
+https://dist.apache.org/repos/dist/dev/incubator/doris/
+
+```
+$ svn add KEYS 
+A         KEYS
+
+$ svn commit -m "Add KEYS"
+Adding         KEYS
+Transmitting file data .
+Committed revision 31425.
+```
+
+## 7. 打包签名
+
+```
+$ git tag -a 0.9.0-rc01 -m "0.9.0 release candidate 01"
+
+$ git push origin --tags
+Counting objects: 1, done.
+Writing objects: 100% (1/1), 165 bytes | 0 bytes/s, done.
+Total 1 (delta 0), reused 0 (delta 0)
+To git@github.com:apache/incubator-doris.git
+ * [new tag]         0.9.0-rc01 -> 0.9.0-rc01
+
+$ git tag
+
+$ git archive --format=tar 0.9.0 --prefix=apache-doris-0.9.0-incubating-src/ | gzip > apache-doris-0.9.0-incubating-src.tar.gz
+
+$ gpg -u xxx@apache.org --armor --output apache-doris-0.9.0-incubating-src.tar.gz.asc --detach-sign apache-doris-0.9.0-incubating-src.tar.gz
+
+$ gpg --verify apache-doris-0.9.0-incubating-src.tar.gz.asc apache-doris-0.9.0-incubating-src.tar.gz
+
+$ sha512sum apache-doris-0.9.0-incubating-src.tar.gz > apache-doris-0.9.0-incubating-src.tar.gz.sha512
+
+$ sha512sum --check apache-doris-0.9.0-incubating-src.tar.gz.sha512
+```
+
+## 8. 上传签名的软件包到 DEV
+
+
+```
+svn add 0.9.0-incubating/ 
+svn commit -m "Add doris folder"
+
+```
+
+https://dist.apache.org/repos/dist/dev/incubator/doris/
+
+```
+$ svn commit -m "Release Apache Doris (incubating) 0.9.0"
+Adding         0.9.0-incubating
+Adding  (bin)  0.9.0-incubating/apache-doris-0.9.0-incubating-src.tar.gz
+Adding  (bin)  0.9.0-incubating/apache-doris-0.9.0-incubating-src.tar.gz.asc
+Adding         0.9.0-incubating/apache-doris-0.9.0-incubating-src.tar.gz.sha512
+Adding         KEYS
+Transmitting file data ....
+Committed revision 32506.
+```
+
+## 9. 发社区投票邮件
+
+[VOTE] Release Apache Doris 0.9.0-incubating-rc02
+
+
+```
+Hi all,
+
+Please review and vote on Apache Doris 0.9.0-incubating-rc02 release.
+
+The release candidate has been tagged in GitHub as 0.9.0-rc02, available
+here:
+https://github.com/apache/incubator-doris/releases/tag/0.9.0-rc02
+
+There is no CHANGE LOG file because this is the first release of Apache
+Doris.
+Thanks to everyone who has contributed to this release, and there is a
+simple release notes can be found here:
+https://github.com/apache/incubator-doris/issues/406
+
+The artifacts (source, signature and checksum) corresponding to this release
+candidate can be found here:
+https://dist.apache.org/repos/dist/dev/incubator/doris/0.9.0-incubating-rc02
+/
+
+This has been signed with PGP key 33DBF2E0, corresponding to
+lide@apache.org.
+KEYS file is available here:
+https://dist.apache.org/repos/dist/dev/incubator/doris/KEYS
+It is also listed here:
+https://people.apache.org/keys/committer/lide.asc
+
+To verify and build, you can refer to following wiki:
+https://github.com/apache/incubator-doris/wiki/How-to-verify-Apache-Release
+https://wiki.apache.org/incubator/IncubatorReleaseChecklist
+
+The vote will be open for at least 72 hours.
+[ ] +1 Approve the release
+[ ] +0 No opinion
+[ ] -1 Do not release this package because ...
+
+Best Regards,
+Reed
+```
+
+## 10. 投票通过后,发 Result 邮件
+
+[Result][VOTE] Release Apache Doris 0.9.0-incubating-rc02
+
+```
+Thanks to everyone, and this vote is now closed.
+
+It has passed with 4 +1 (binding) votes and no 0 or -1 votes.
+
+Binding:  
++1 Zhao Chun
++1 Reed
++1 Li Chaoyong
++1 Mingyu Chen
+
+Best Regards,
+Reed
+
+```
+
+## 11. 发邮件到 general@incubator.apache.org 进行投票
+
+[VOTE] Release Apache Doris 0.9.0-incubating-rc02
+
+```
+Hi all,
+
+Please review and vote on Apache Doris 0.9.0-incubating-rc02 release.
+
+Apache Doris is an MPP-based interactive SQL data warehousing for reporting and analysis.
+
+The Apache Doris community has voted on and approved this release:
+https://lists.apache.org/thread.html/d70f7c8a8ae448bf6680a15914646005c6483564464cfa15f4ddc2fc@%3Cdev.doris.apache.org%3E
+
+The vote result email thread:
+https://lists.apache.org/thread.html/64d229f0ba15d66adc83306bc8d7b7ccd5910ecb7e842718ce6a61da@%3Cdev.doris.apache.org%3E
+
+The release candidate has been tagged in GitHub as 0.9.0-rc02, available here:
+https://github.com/apache/incubator-doris/releases/tag/0.9.0-rc02
+
+There is no CHANGE LOG file because this is the first release of Apache Doris.
+Thanks to everyone who has contributed to this release, and there is a simple release notes can be found here:
+https://github.com/apache/incubator-doris/issues/406
+
+The artifacts (source, signature and checksum) corresponding to this release candidate can be found here:
+https://dist.apache.org/repos/dist/dev/incubator/doris/0.9.0-incubating-rc02/
+
+This has been signed with PGP key 33DBF2E0, corresponding to lide@apache.org.
+KEYS file is available here:
+https://dist.apache.org/repos/dist/dev/incubator/doris/KEYS
+It is also listed here:
+https://people.apache.org/keys/committer/lide.asc
+
+The vote will be open for at least 72 hours. 
+[ ] +1 Approve the release
+[ ] +0 No opinion 
+[ ] -1 Do not release this package because ...
+
+To verify and build, you can refer to following instruction:
+
+Firstly, you must be install and start docker service, and then you could build Doris as following steps:
+
+Step1: Pull the docker image with Doris building environment
+$ docker pull apachedoris/doris-dev:build-env
+You can check it by listing images, its size is about 3.28GB.
+
+Step2: Run the Docker image
+You can run image directyly:
+$ docker run -it apachedoris/doris-dev:build-env
+
+Step3: Download Doris source
+Now you should in docker environment, and you can download Doris source package.
+(If you have downloaded source and it is not in image, you can map its path to image in Step2.)
+$ wget https://dist.apache.org/repos/dist/dev/incubator/doris/0.9.0-incubating-rc02/apache-doris-0.9.0.rc02-incubating-src.tar.gz
+
+Step4: Build Doris
+Now you can decompress and enter Doris source path and build Doris.
+$ tar zxvf apache-doris-0.9.0.rc02-incubating-src.tar.gz
+$ cd apache-doris-0.9.0.rc02-incubating-src
+$ sh build.sh
+
+Best Regards,
+Reed
+```
+
+## 12. 发 Result 邮件到 general@incubator.apache.org
+
+[RESULT][VOTE] Release Apache Doris 0.9.0-incubating-rc02
+
+
+```
+Hi,
+
+Thanks to everyone, and the vote for releasing Apache Doris 0.9.0-incubating-rc02 is now closed.
+
+It has passed with 4 +1 (binding) votes and no 0 or -1 votes.
+
+Binding:
++1 Willem Jiang
++1 Justin Mclean
++1 ShaoFeng Shi
++1 Makoto Yui
+
+The vote thread:
+https://lists.apache.org/thread.html/da05fdd8d84e35de527f27200b5690d7811a1e97d419d1ea66562130@%3Cgeneral.incubator.apache.org%3E
+
+Best Regards,
+Reed
+```
+
+## 13. 上传 package 到 release
+
+当正式发布投票成功后,先发[Result]邮件,然后就准备 release package。
+将之前在dev下发布的对应rc文件夹下的源码包、签名文件和hash文件拷贝到另一个目录 0.9.0-incubating,注意文件名字中不要rcxx (可以rename,但不要重新计算签名,hash可以重新计算,结果不会变)
+
+第一次发布的话 KEYS 文件也需要拷贝过来。然后add到svn release 下。
+
+```
+
+https://dist.apache.org/repos/dist/release/incubator/doris/0.9.0-incubating/
+
+最终能在 apache 官网看到:
+http://www.apache.org/dist/incubator/doris/0.9.0-incubating/ 
+
+```
+
+
+## 14. 发 Announce 邮件到 general@incubator.apache.org
+
+Title:
+
+```
+[ANNOUNCE] Apache Doris (incubating) 0.9.0 Release
+```
+
+发送邮件组:
+
+```
+general@incubator.apache.org <ge...@incubator.apache.org>
+dev@doris.apache.org <de...@doris.apache.org>
+```
+
+邮件正文:
+
+```
+Hi All,
+
+We are pleased to announce the release of Apache Doris 0.9.0-incubating.
+
+Apache Doris (incubating) is an MPP-based interactive SQL data warehousing for reporting and analysis.
+
+The release is available at:
+http://doris.apache.org/downloads.html
+
+Thanks to everyone who has contributed to this release, and the release note can be found here:
+https://github.com/apache/incubator-doris/releases
+
+Best Regards,
+
+On behalf of the Doris team,
+Reed
+```
+
+## 15. 在 Doris 官网和 github 发布链接
+
+### 15.1 创建下载链接
+
+下载链接:
+http://www.apache.org/dyn/closer.cgi?filename=incubator/doris/0.9.0-incubating/apache-doris-0.9.0-incubating-src.tar.gz&action=download
+
+wget --trust-server-names "https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=incubator/doris/0.9.0-incubating/apache-doris-0.9.0-incubating-src.tar.gz"
+
+原始位置:
+https://www.apache.org/dist/incubator/doris/0.9.0-incubating/
+
+http://www.apache.org/dyn/closer.cgi/incubator/doris/0.9.0-incubating/apache-doris-0.9.0-incubating-src.tar.gz
+
+源码包(source package):
+http://www.apache.org/dyn/closer.cgi/incubator/doris/0.9.0-incubating/apache-doris-0.9.0-incubating-src.tar.gz
+
+ASC:
+http://archive.apache.org/dist/incubator/doris/0.9.0-incubating/apache-doris-0.9.0-incubating-src.tar.gz.asc
+
+sha512:
+http://archive.apache.org/dist/incubator/doris/0.9.0-incubating/apache-doris-0.9.0-incubating-src.tar.gz.sha512
+
+KEYS:
+http://archive.apache.org/dist/incubator/doris/KEYS
+
+refer to: <http://www.apache.org/dev/release-download-pages#closer>
+
+### 15.2 准备 release note
+
+需要修改如下两个地方:
+
+1、Github 的 release 页面
+
+```
+https://github.com/apache/incubator-doris/releases/tag/0.9.0-rc02
+```
+
+2、Doris 官网下载页面
+
+```
+http://doris.apache.org/downloads.html
+```


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org