This is an automated email from the ASF dual-hosted git repository. xiaofeng pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/brpc.git
The following commit(s) were added to refs/heads/master by this push: new 57821503 Update release steps for TLP (#2095) 57821503 is described below commit 57821503260d48066c2904b0542bd359fe961e3c Author: Xiaofeng Wang <wasp...@gmail.com> AuthorDate: Thu Jan 19 18:52:43 2023 +0800 Update release steps for TLP (#2095) --- community/apache-package-validator.sh | 6 +- community/release_cn.md | 309 ++++++++++++---------------------- community/release_en.md | 219 +++++++----------------- community/releasecheck.md | 56 +++--- 4 files changed, 202 insertions(+), 388 deletions(-) diff --git a/community/apache-package-validator.sh b/community/apache-package-validator.sh index 65785c1e..853cabe0 100755 --- a/community/apache-package-validator.sh +++ b/community/apache-package-validator.sh @@ -35,11 +35,10 @@ summary() { cat <<EOF - [${g_valid_package_link}] the links of the package are valid; -- [${g_valid_package_name}] 'incubating' in the name; - [${g_valid_package_checksum}] the checksum of the package is valid; - [${g_valid_package_sig}] the signature of the package is valid; - [${g_valid_package_content}] RELEASE_VERSION in the source code matches the current release; -- [${g_valid_package_license}] DISCLAIMER, LICENSE and NOTICE are not absent, note that we use CI based on Skywalking-eyes to check the license; +- [${g_valid_package_license}] LICENSE and NOTICE are not absent, note that we use CI based on Skywalking-eyes to check the license; - [${g_valid_package_binary}] no compiled archives bundled in the source archive. EOF } @@ -51,14 +50,13 @@ on_exit() { validate_package() { local ver=$(echo ${g_package_link%/} | rev | cut -d'/' -f1 | rev) - local package_name="apache-brpc-${ver}-incubating-src.tar.gz" + local package_name="apache-brpc-${ver}-src.tar.gz" for suffix in "" ".asc" ".sha512"; do wget --quiet -c "${g_package_link%/}/${package_name}${suffix}" done g_valid_package_link='x' - g_valid_package_name='x' sha512sum --status -c ${package_name}.sha512 \ && g_valid_package_checksum='x' diff --git a/community/release_cn.md b/community/release_cn.md index 44145d5e..e684c4bf 100644 --- a/community/release_cn.md +++ b/community/release_cn.md @@ -1,17 +1,23 @@ -brpc 发布apache release 版本流程step by step +brpc 发布 apache release 版本流程 step by step === 概述:分为如下几个步骤 -1. 事前准备:包括生成签名需要的key,github拉取发布分支、打tag,修改version文件等 -2. 发布软件包:包括制作source tarball,签名,上传到制定地点并验证 -3. 投票:包括在dev@brpc邮件群里投票,以及在gene...@incubator.apache.org邮件群里投票 -4. 发版通告:包括更新brpc网站,发邮件,发微信公众号公告,合并发布分支到master分支 +1. 事前准备:包括生成签名需要的 key,github 拉取发布分支、打 tag,修改 version 文件等; +2. 发布软件包:包括制作 source tarball,签名,上传到制定地点并验证; +3. 投票:在 dev@brpc 邮件组里投票; +4. 发版通告:包括更新 brpc 网站,发邮件,发微信公众号公告,合并发布分支到 master 分支; # 签名准备 ## 1. 安装 GPG -在[GnuPG官网](https://www.gnupg.org/download/index.html)下载安装包。 GnuPG的1.x版本和2.x版本的命令有细微差别,下列说明以`GnuPG-2.3.1`版本(OSX)为例。 + +通常 Linux 发行版中会集成 `GnuPG` 工具,OSX 可以使用 [`brew`](https://brew.sh/) 安装。 +```bash +brew install gnupg +``` + +也可以直接在[GnuPG官网](https://www.gnupg.org/download/index.html)下载相应的安装包。`GnuPG` 的 1.x 版本和 2.x 版本的命令有细微差别,下列说明以 `GnuPG-2.3.1` 版本(OSX)为例。 安装完成后,执行以下命令查看版本号。 ```bash @@ -20,13 +26,13 @@ gpg --version ## 2. 创建 key -安装完成后,执行以下命令创建key。 +安装完成后,执行以下命令创建 key。 ```bash gpg --full-gen-key ``` -根据提示完成创建key,注意邮箱要使用Apache邮件地址,`Real Name`使用姓名Pinyin、Apache ID或GitHub ID等均可: +根据提示完成创建 key,注意邮箱要使用 Apache 邮件地址,`Real Name`使用姓名 Pinyin、Apache ID 或 GitHub ID 等均可: ``` gpg (GnuPG) 2.3.1; Copyright (C) 2021 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. @@ -79,7 +85,7 @@ uid LorinLee (lorinlee's key) <lorin...@apache.org> sub rsa4096 2021-10-17 [E] ``` -## 3. 查看生成的key +## 3. 查看生成的 key ```bash gpg --list-keys @@ -106,11 +112,13 @@ sub rsa4096 2021-10-17 [E] 命令如下: ```bash -gpg --keyserver hkp://pgp.mit.edu --send-key C30F211F071894258497F46392E18A11B6585834 +gpg --keyserver hkps://pgp.mit.edu --send-key C30F211F071894258497F46392E18A11B6585834 ``` +keyserver 也可以用 `hkps://keys.openpgp.org` 或 `hkps://keyserver.ubuntu.com`,Web 上都提供了比较方便的查询接口。 ## 5. 生成 fingerprint 并上传到 apache 用户信息中 -由于公钥服务器没有检查机制,任何人都可以用你的名义上传公钥,所以没有办法保证服务器上的公钥的可靠性。通常,你可以在⽹站上公布一个公钥指纹,让其他⼈核对下载到的公钥是否为真。fingerprint参数生成公钥指纹。 + +由于公钥服务器没有检查机制,任何人都可以用你的名义上传公钥,所以没有办法保证服务器上的公钥的可靠性。通常,你可以在⽹站上公布一个公钥指纹,让其他⼈核对下载到的公钥是否为真。fingerprint 参数生成公钥指纹。 执行如下命令查看 fingerprint: ``` @@ -127,43 +135,50 @@ uid [ultimate] LorinLee (lorinlee's key) <lorin...@apache.org> sub rsa4096 2021-10-17 [E] ``` -将上面的 fingerprint `C30F 211F 0718 9425 8497 F463 92E1 8A11 B658 5834` 粘贴到⾃己Apache⽤户信息 https://id.apache.org 的`OpenPGP Public Key Primary Fingerprint:`字段中。 +将上面的 fingerprint `C30F 211F 0718 9425 8497 F463 92E1 8A11 B658 5834` 粘贴到⾃己 Apache ⽤户信息 https://id.apache.org 的 `OpenPGP Public Key Primary Fingerprint:` 字段中。 # 发布包准备 ## 1. 拉出发版分支 -如果是发布新的2位版本,如`1.0.0`,则需要从master拉出新的分支`release-1.0`。 +如果是发布新的 2 位版本,如 `1.0.0`,则需要从 master 拉出新的分支 `release-1.0`。 -如果是在已有的2位版本上发布新的3位版本,如`1.0.1`版本,则只需要在已有的`release-1.0`分支上修改加上要发布的内容。 +如果是在已有的 2 位版本上发布新的 3 位版本,如`1.0.1`版本,则只需要在已有的 `release-1.0` 分支上修改加上要发布的内容。 -发版过程中的操作都在release分支(如`release-1.0`)上操作,如果发版过程发现代码有问题需要修改,也在该分支上进行修改。发版完成后,将该分支合回master分支。 +发版过程中的操作都在 release 分支(如:`release-1.0`)上操作,如果发版过程发现代码有问题需要修改,也在该分支上进行修改。发版完成后,将该分支合回 master 分支。 -## 2. 编辑 RELEASE_VERSION 文件 +## 2. 更新 `NOTICE` 文件 -### 更新RELEASE_VERSION文件 -编辑项目根目录下`RELEASE_VERSION`文件,更新版本号,并提交至代码仓库,本文以`1.0.0`版本为例,文件内容为: +检查 `NOTICE` 文件中的年份是否需要更新,通常在年初发版时需重点关注。 + +## 3. 编辑版本号相关文件 + +### 更新 `RELEASE_VERSION` 文件 + +编辑项目根目录下 `RELEASE_VERSION` 文件,更新版本号,并提交至代码仓库,本文以 `1.0.0` 版本为例,文件内容为: ``` 1.0.0 ``` -### 更新CMakeLists.txt文件 -编辑项目根目录下`CMakeLists.txt`文件,更新版本号,并提交至代码仓库,本文以`1.0.0`版本为例,修改BRPC_VERSION为: +### 更新 `CMakeLists.txt` 文件 +编辑项目根目录下 `CMakeLists.txt` 文件,更新版本号,并提交至代码仓库,本文以 `1.0.0` 版本为例,修改 `BRPC_VERSION` 为: ``` set(BRPC_VERSION 1.0.0) ``` -### 更新/package/rpm/brpc.spec文件 -编辑项目根目录下`/package/rpm/brpc.spec`文件,更新版本号,并提交至代码仓库,本文以`1.0.0`版本为例,修改Version为: +### 更新 `package/rpm/brpc.spec` 文件 + +编辑项目根目录下 `package/rpm/brpc.spec` 文件,更新版本号,并提交至代码仓库,本文以 `1.0.0` 版本为例,修改 `Version` 为: ``` Version: 1.0.0 ``` -## 3. 创建发布 tag -拉取发布分支,并推送tag +## 4. 创建发布 tag + +拉取发布分支,并推送 tag ```bash git clone -b release-1.0 g...@github.com:apache/brpc.git ~/brpc @@ -177,27 +192,27 @@ git push origin --tags ## 4. 打包发布包 ```bash -git archive --format=tar 1.0.0 --prefix=apache-brpc-1.0.0-incubating-src/ | gzip > apache-brpc-1.0.0-incubating-src.tar.gz +git archive --format=tar 1.0.0 --prefix=apache-brpc-1.0.0-src/ | gzip > apache-brpc-1.0.0-src.tar.gz ``` ## 5. 生成签名文件 ```bash -gpg -u lorin...@apache.org --armor --output apache-brpc-1.0.0-incubating-src.tar.gz.asc --detach-sign apache-brpc-1.0.0-incubating-src.tar.gz +gpg -u lorin...@apache.org --armor --output apache-brpc-1.0.0-src.tar.gz.asc --detach-sign apache-brpc-1.0.0-src.tar.gz -gpg --verify apache-brpc-1.0.0-incubating-src.tar.gz.asc apache-brpc-1.0.0-incubating-src.tar.gz +gpg --verify apache-brpc-1.0.0-src.tar.gz.asc apache-brpc-1.0.0-src.tar.gz ``` ## 6. 生成哈希文件 ```bash -sha512sum apache-brpc-1.0.0-incubating-src.tar.gz > apache-brpc-1.0.0-incubating-src.tar.gz.sha512 +sha512sum apache-brpc-1.0.0-src.tar.gz > apache-brpc-1.0.0-src.tar.gz.sha512 -sha512sum --check apache-brpc-1.0.0-incubating-src.tar.gz.sha512 +sha512sum --check apache-brpc-1.0.0-src.tar.gz.sha512 ``` -# 发布至Apache SVN仓库 +# 发布至 Apache SVN 仓库 ## 1. 检出 dist/dev 下的 brpc 仓库目录 @@ -213,9 +228,9 @@ svn --username=lorinlee co https://dist.apache.org/repos/dist/dev/brpc/ cd ~/brpc_svn/dev/brpc ``` -## 2. 添加GPG公钥 +## 2. 添加 GPG 公钥 -仅第一次部署的账号需要添加,只要KEYS中包含已经部署过的账户的公钥即可。 +仅第一次部署的账号需要添加,只要 KEYS 中包含已经部署过的账户的公钥即可。 ``` (gpg --list-sigs lorinlee && gpg -a --export lorinlee) >> KEYS @@ -228,16 +243,16 @@ mkdir -p ~/brpc_svn/dev/brpc/1.0.0 cd ~/brpc_svn/dev/brpc/1.0.0 -cp ~/brpc/apache-brpc-1.0.0-incubating-src.tar.gz ~/brpc_svn/dev/brpc/1.0.0 +cp ~/brpc/apache-brpc-1.0.0-src.tar.gz ~/brpc_svn/dev/brpc/1.0.0 -cp ~/brpc/apache-brpc-1.0.0-incubating-src.tar.gz.asc ~/brpc_svn/dev/brpc/1.0.0 +cp ~/brpc/apache-brpc-1.0.0-src.tar.gz.asc ~/brpc_svn/dev/brpc/1.0.0 -cp ~/brpc/apache-brpc-1.0.0-incubating-src.tar.gz.sha512 ~/brpc_svn/dev/brpc/1.0.0 +cp ~/brpc/apache-brpc-1.0.0-src.tar.gz.sha512 ~/brpc_svn/dev/brpc/1.0.0 ``` -## 4. 提交SVN +## 4. 提交 SVN -退回到上级目录,使用Apache LDAP账号提交SVN +退回到上级目录,使用 Apache LDAP 账号提交 SVN ```bash cd ~/brpc_svn/dev/brpc @@ -249,14 +264,15 @@ svn --username=lorinlee commit -m "release 1.0.0" # 检查发布结果 -## 1. 检查sha512哈希 +## 1. 检查 sha512 哈希 ```bash -sha512sum --check apache-brpc-1.0.0-incubating-src.tar.gz.sha512 +sha512sum --check apache-brpc-1.0.0-src.tar.gz.sha512 ``` -## 2. 检查GPG签名 -首先导入发布人公钥。从svn仓库导入KEYS到本地环境。(发布版本的人不需要再导入,帮助做验证的人需要导入,用户名填发版人的即可) +## 2. 检查 GPG 签名 + +首先导入发布人公钥。从 svn 仓库导入 KEYS 到本地环境。(发布版本的人不需要再导入,帮助做验证的人需要导入,用户名填发版人的即可) ```bash curl https://dist.apache.org/repos/dist/dev/brpc/KEYS >> KEYS @@ -295,63 +311,62 @@ Do you really want to set this key to ultimate trust? (y/N) y gpg> save ``` -然后进行gpg签名检查。 +然后进行 gpg 签名检查。 ``` -gpg --verify apache-brpc-1.0.0-incubating-src.tar.gz.asc apache-brpc-1.0.0-incubating-src.tar.gz +gpg --verify apache-brpc-1.0.0-src.tar.gz.asc apache-brpc-1.0.0-src.tar.gz ``` ## 3. 检查发布内容 -### 1. 对比源码包与github上的tag内容差异 +### 1. 对比源码包与 github 上的 tag 内容差异 ```bash curl -Lo tag-1.0.0.tar.gz https://github.com/apache/brpc/archive/refs/tags/1.0.0.tar.gz tar xvzf tag-1.0.0.tar.gz -tar xvzf apache-brpc-1.0.0-incubating-src.tar.gz +tar xvzf apache-brpc-1.0.0-src.tar.gz -diff -r brpc-1.0.0 apache-brpc-1.0.0-incubating-src +diff -r brpc-1.0.0 apache-brpc-1.0.0-src ``` ### 2. 检查源码包的文件内容 -- 检查源码包是否包含由于包含不必要文件,致使tarball过于庞大 -- 存在LICENSE和NOTICE文件 -- NOTICE文件中的年份正确 +- 检查源码包是否包含由于包含不必要文件,致使 tarball 过于庞大 +- 存在 LICENSE 和 NOTICE 文件 +- NOTICE 文件中的年份正确 - 只存在文本文件,不存在二进制文件 -- 所有文件的开头都有ASF许可证 +- 所有文件的开头都有 ASF 许可证 - 能够正确编译,单元测试可以通过 - 检查是否有多余文件或文件夹,例如空文件夹等 - 检查第三方依赖许可证: - 第三方依赖的许可证兼容 - - 所有第三方依赖的许可证都在LICENSE文件中声名 - - 依赖许可证的完整版全部在license目录 - - 如果依赖的是Apache许可证并且存在NOTICE文件,那么这些NOTICE文件也需要加入到版本的NOTICE文件中 + - 所有第三方依赖的许可证都在 LICENSE 文件中声名 + - 依赖许可证的完整版全部在 license 目录 + - 如果依赖的是 Apache 许可证并且存在 NOTICE 文件,那么这些 NOTICE 文件也需要加入到版本的 NOTICE 文件中 -# 在Apache brpc社区发起投票 +# 在 Apache bRPC 社区发起投票 ## 1. 投票阶段 -1. 发起投票邮件到dev@brpc.apache.org。PPMC需要先按文档检查版本的正确性,然后再进行投票。经过至少72小时并统计到3个+1 PPMC member票后,即可进入下一阶段。 -2. 宣布投票结果,发起投票结果邮件到dev@brpc.apache.org。 +1. 发起投票邮件到 dev@brpc.apache.org。PPMC 需要先按文档检查版本的正确性,然后再进行投票。经过至少 72 小时并统计到 3 个 +1 PPMC member 票后,即可进入下一阶段。 +2. 宣布投票结果,发起投票结果邮件到 dev@brpc.apache.org。 ## 2. 投票邮件模板 -1. Apache brpc 社区投票邮件模板 +1. Apache bRPC 社区投票邮件模板 标题: ``` -[VOTE] Release Apache brpc (Incubating) 1.0.0 +[VOTE] Release Apache bRPC 1.0.0 ``` -正文: -注:`Release Commit ID`填写当前release发版分支最后一个commit的commit id。 +正文: +注:`Release Commit ID` 填写当前 release 发版分支最后一个 commit 的 commit id。 ``` -Hi Apache brpc (Incubating) Community, +Hi Apache bRPC Community, -This is a call for vote to release Apache brpc (Incubating) version -1.0.0 +This is a call for vote to release Apache bRPC version 1.0.0 [Release Note] - xxx @@ -391,25 +406,25 @@ Regards, LorinLee ``` -2. Apache brpc 社区宣布结果邮件模板 +2. Apache bRPC 社区宣布结果邮件模板 标题: ``` -[Result] [VOTE] Release Apache brpc (Incubating) 1.0.0 +[Result] [VOTE] Release Apache bRPC 1.0.0 ``` 正文: ``` Hi all, -The vote to release Apache brpc (Incubating) 1.0.0 has passed. +The vote to release Apache bRPC 1.0.0 has passed. The vote PASSED with 3 binding +1, 3 non binding +1 and no -1 votes: Binding votes: - xxx -- yyy -- zzz +- yyy +- zzz Non-binding votes: - aaa @@ -418,7 +433,8 @@ Non-binding votes: Vote thread: xxx (vote email link in https://lists.apache.org/) -Thank you to all the above members to help us to verify and vote for the 1.0.0 release. We will move to IPMC voting shortly. +Thank you to all the above members to help us to verify and vote for +the 1.0.0 release. I will process to publish the release and send ANNOUNCE. Regards, LorinLee @@ -426,163 +442,52 @@ LorinLee ## 3. 投票未通过 -若社区投票未通过,则在release分支对代码仓库进行修改,重新打包,发起投票。 - -# 在Apache Incubator社区发起投票 - -## 1. 更新GPG签名 - -``` -svn delete https://dist.apache.org/repos/dist/release/brpc/KEYS -m "delete KEYS" - -svn cp https://dist.apache.org/repos/dist/dev/brpc/KEYS https://dist.apache.org/repos/dist/release/brpc/KEYS -m "update brpc KEYS" -``` - -提交完svn后,访问 <https://downloads.apache.org/brpc/KEYS>,检查内容有没有更新,可能需要等几分钟时间,等内容更新了,再继续下一步。 - -## 2. 投票阶段 - -1. 发起投票邮件到gene...@incubator.apache.org。IPMC会进行投票。经过至少72小时并统计到3个+1 IPMC member票后,即可进入下一阶段。 -2. 宣布投票结果,发起投票结果邮件到gene...@incubator.apache.org。 - -## 3. 投票邮件模板 - -1. Apache Incubator 社区投票邮件模板 - -标题: -``` -[VOTE] Release Apache brpc (Incubating) 1.0.0 -``` - -正文: -``` -Hi Incubator Community, - -This is a call for a vote to release Apache brpc(Incubating) version -1.0.0. - -The Apache brpc community has voted and approved the release of Apache -brpc (Incubating) 1.0.0. - -We now kindly request the Incubator PMC members review and vote on this -incubator release. - -brpc is an industrial-grade RPC framework with extremely high performance, -and it supports multiple protocols, full rpc features, and has many -convenient tools. - -brpc community vote thread: xxx - -Vote result thread: xxx - -The release candidate: -https://dist.apache.org/repos/dist/dev/brpc/1.0.0/ - -This release has been signed with a PGP available here: -https://downloads.apache.org/brpc/KEYS - -Git tag for the release: -https://github.com/apache/brpc/releases/tag/1.0.0 - -Build guide and get started instructions can be found at: -https://brpc.apache.org/docs/getting_started - -The vote will be open for at least 72 hours or until the necessary number -of votes is reached. - -Please vote accordingly: -[ ] +1 approve -[ ] +0 no opinion -[ ] -1 disapprove with the reason - -Regards, -Lorin Lee -Apache brpc (Incubating) community -``` - -2. Apache Incubator 社区宣布结果邮件模板 - -标题: -``` -[Result] [VOTE] Release Apache brpc (Incubating) 1.0.0 -``` - -正文: -``` -Hi Incubator Community, - -Thanks to everyone that participated. The vote to release Apache -brpc (Incubating) version 1.0.0 in gene...@incubator.apache.org -is now closed. - -Vote thread: xxx - -The vote PASSED with 3 binding +1, 3 non binding +1 and no -1 votes: - -Binding votes: -- xxx -- yyy -- zzz - -Non-binding votes: -- aaa -- bbb -- ccc - -Many thanks for all our mentors helping us with the release procedure, -and all IPMC helped us to review and vote for Apache brpc(Incubating) -release. We will proceed with publishing the approved artifacts and -sending out the announcement soon. - -Regards, -Lorin Lee -Apache brpc (Incubating) community -``` +若社区投票未通过,则在 release 分支对代码仓库进行修改,重新打包,发起投票。 # 完成发布 -## 1. 将发布包从Apache SVN仓库 dist/dev 移动至 dist/release +## 1. 将发布包从 Apache SVN 仓库 dist/dev 移动至 dist/release ``` svn mv https://dist.apache.org/repos/dist/dev/brpc/1.0.0 https://dist.apache.org/repos/dist/release/brpc/1.0.0 -m "release brpc 1.0.0" ``` -## 2. Github版本发布 +## 2. Github 版本发布 -在 [GitHub Releases 页面](https://github.com/apache/brpc/tags)的对应版本上点击,创建新的Release页面 +在 [GitHub Releases 页面](https://github.com/apache/brpc/tags)的对应版本上点击,创建新的 Release 页面 编辑版本号及版本说明,并点击 Publish release ## 3. 更新下载页面 等待并确认新的发布版本同步至 Apache 镜像后,更新如下页面:<https://brpc.apache.org/docs/downloadbrpc/>, 更新方式在 <https://github.com/apache/brpc-website/> 仓库中,注意中英文都要更新。 -GPG签名文件和哈希校验文件的下载链接应该使用这个前缀:https://downloads.apache.org/brpc/ +GPG 签名文件和哈希校验文件的下载链接应该使用这个前缀:https://downloads.apache.org/brpc/ 代码包的下载链接应该使用这个前缀:https://dlcdn.apache.org/brpc/ ## 4. 发送邮件通知发布完成 -发送邮件到dev@brpc.apache.org、gene...@incubator.apache.org、和annou...@apache.org通知完成版本发布。 +发送邮件到 dev@brpc.apache.org 和 annou...@apache.org 通知完成版本发布。 -注意:发邮件账号必须使用**个人apache邮箱**,且邮件内容必须是**纯文本格式**(可在gmail选择"纯文本模式")。annou...@apache.org 邮件组需要经过人工审核才能送达,发出邮件后请耐心等待,一般会在一天之内通过。 +注意:发邮件账号必须使用**个人 apache 邮箱**,且邮件内容必须是**纯文本格式**(可在 gmail 选择"纯文本模式")。annou...@apache.org 邮件组需要经过人工审核才能送达,发出邮件后请耐心等待,一般会在一天之内通过。 通知邮件模板如下: 标题: ``` -[ANNOUNCE] Apache brpc (Incubating) 1.0.0 released +[ANNOUNCE] Apache bRPC 1.0.0 released ``` -正文: -注:`Brief notes of this release`仅需列出本次发版的主要变更,且无需指出对应贡献人和PR编号,建议参考下之前的Announce邮件。 +正文: +注:`Brief notes of this release` 仅需列出本次发版的主要变更,且无需指出对应贡献人和 PR 编号,建议参考下之前的 Announce 邮件。 ``` Hi all, -The Apache brpc (Incubating) community is glad to announce the new release -of Apache brpc (Incubating) 1.0.0. +The Apache bRPC community is glad to announce the new release +of Apache bRPC 1.0.0. -brpc is an Industrial-grade RPC framework using C++ Language, which is -often used in high performance systems such as Search, Storage, +Apache bRPC is an Industrial-grade RPC framework using C++ Language, +which is often used in high performance systems such as Search, Storage, Machine learning, Advertisement, Recommendation etc. Brief notes of this release: @@ -594,30 +499,30 @@ More details regarding Apache brpc can be found at: http://brpc.apache.org/ The release is available for download at: -https://brpc.apache.org/docs/downloadbrpc/ +https://brpc.apache.org/docs/download/ The release notes can be found here: https://github.com/apache/brpc/releases/tag/1.0.0 Website: http://brpc.apache.org/ -brpc(Incubating) Resources: +Apache bRPC Resources: - Issue: https://github.com/apache/brpc/issues/ - Mailing list: dev@brpc.apache.org - Documents: https://brpc.apache.org/docs/ -We would like to thank all contributors of the Apache brpc community and -Incubating community who made this release possible! +We would like to thank all contributors of the Apache bRPC community +who made this release possible! Best Regards, -Apache brpc (Incubating) community +Apache bRPC Community ``` ## 发布微信公众号公告 -参考 <https://mp.weixin.qq.com/s/DeFhpAV_AYsn_Xd1ylPTSg>. +参考 <https://mp.weixin.qq.com/s/DeFhpAV_AYsn_Xd1ylPTSg>。 -## 更新master分支 +## 更新 master 分支 -发版完成后,将release分支合并到master分支. +发版完成后,将 release 分支合并到 master 分支。 diff --git a/community/release_en.md b/community/release_en.md index 683a31e2..77945124 100644 --- a/community/release_en.md +++ b/community/release_en.md @@ -5,13 +5,19 @@ Overview: divided into the following steps 1. Preparation: including generating the key required for signature, creating github release branch and tag, modifying the version file, etc 2. Publish software package: including making source tarball, signing, uploading to the designated location and verifying -3. Vote: including voting in mail group `dev@brpc.apache.org` and `gene...@incubator.apache.org` +3. Vote: voting in mail list `dev@brpc.apache.org` 4. Release announcement: including updating brpc website, sending announcement emails, posting WeChat official account announcements, merging the release branche into the master branch # Prepare key ## 1. Install GPG -Download the installation package from [GnuPG official website](https://www.gnupg.org/download/index.html). The commands of GnuPG version 1.x and version 2.x are slightly different. The following instructions take the `GnuPG-2.3.1` version (OSX) as an example. + +The popular Linux distributions should have the GnuPG pre-installed. With OSX, you can install GnuPG using [`brew`](https://brew.sh/): +```bash +brew install gnupg +``` + +You can also download the installation package from [the GnuPG official website](https://www.gnupg.org/download/index.html). The commands of GnuPG version 1.x and version 2.x are slightly different. The following instructions take the `GnuPG-2.3.1` version (OSX) as an example. After the installation is complete, execute the following command to check the version number. ```bash @@ -107,7 +113,7 @@ Note that `C30F211F071894258497F46392E18A11B6585834` is the public key. Execute the following command: ```bash -gpg --keyserver hkp://pgp.mit.edu --send-key C30F211F071894258497F46392E18A11B6585834 +gpg --keyserver hkps://pgp.mit.edu --send-key C30F211F071894258497F46392E18A11B6585834 ``` ## 5. Generate fingerprint and upload to apache user profile @@ -119,7 +125,7 @@ Execute the following command to view the fingerprint. gpg --fingerprint lorinlee # user id ``` -output: +output: ``` /Users/lilei/.gnupg/pubring.kbx ---------------------------------- @@ -135,15 +141,19 @@ Paste the above fingerprint `C30F 211F 0718 9425 8497 F463 92E1 8A11 B658 5834` ## 1. Create release branch -If you are releasing a new MINOR version, like `1.0.0`, you need to create a new branch `release-1.0` from master. +If you are releasing a new MAJOR/MINOR version, like `1.0.0`, you need to create a new branch `release-1.0` from master. If you are releasing a new PATCH version from existing MINOR version, like `1.0.1`, you only need to modify the existing `release-1.0` branch and add the content to be released. The code modification during the release process are performed on the release branch (such as `release-1.0`). After the release is complete, please merge the release branch back into the master branch. -## 2. Update version in source code +## 2. Update the `NOTICE` file -### Update RELEASE_VERSION file +Check and update the YEAR field of the `NOTIEC` file. + +## 3. Update version in source code + +### Update `RELEASE_VERSION` file Edit the `RELEASE_VERSION` file in the project root directory, update the version number, and submit it to the code repository. For example, the `1.0.0` version of the file is: @@ -151,21 +161,23 @@ Edit the `RELEASE_VERSION` file in the project root directory, update the versio 1.0.0 ``` -### Update CMakeLists.txt file -Edit the `CMakeLists.txt` file in the project root directory, update the version number, and submit it to the code repository. For example: +### Update the `CMakeLists.txt` file + +Edit the `CMakeLists.txt` file in the project root directory, update the version number, and submit it to the code repository. For example: ``` set(BRPC_VERSION 1.0.0) ``` -### Update /package/rpm/brpc.spec file -Edit the `/package/rpm/brpc.spec` file in the project root directory, update the version number, and submit it to the code repository. For example: +### Update the `package/rpm/brpc.spec` file + +Edit the `/package/rpm/brpc.spec` file in the project root directory, update the version number, and submit it to the code repository. For example: ``` Version: 1.0.0 ``` -## 3. Create releasing tag +## 4. Create releasing tag push the release branch to tag, For example: @@ -182,24 +194,24 @@ git push origin --tags ## 4. Create releasing package ```bash -git archive --format=tar 1.0.0 --prefix=apache-brpc-1.0.0-incubating-src/ | gzip > apache-brpc-1.0.0-incubating-src.tar.gz +git archive --format=tar 1.0.0 --prefix=apache-brpc-1.0.0-src/ | gzip > apache-brpc-1.0.0-src.tar.gz ``` ## 5. Generate GPG signature ```bash -gpg -u lorin...@apache.org --armor --output apache-brpc-1.0.0-incubating-src.tar.gz.asc --detach-sign apache-brpc-1.0.0-incubating-src.tar.gz +gpg -u lorin...@apache.org --armor --output apache-brpc-1.0.0-src.tar.gz.asc --detach-sign apache-brpc-1.0.0-src.tar.gz -gpg --verify apache-brpc-1.0.0-incubating-src.tar.gz.asc apache-brpc-1.0.0-incubating-src.tar.gz +gpg --verify apache-brpc-1.0.0-src.tar.gz.asc apache-brpc-1.0.0-src.tar.gz ``` ## 6. Generate SHA512 sum ```bash -sha512sum apache-brpc-1.0.0-incubating-src.tar.gz > apache-brpc-1.0.0-incubating-src.tar.gz.sha512 +sha512sum apache-brpc-1.0.0-src.tar.gz > apache-brpc-1.0.0-src.tar.gz.sha512 -sha512sum --check apache-brpc-1.0.0-incubating-src.tar.gz.sha512 +sha512sum --check apache-brpc-1.0.0-src.tar.gz.sha512 ``` # Publish to Apache SVN repository @@ -233,11 +245,11 @@ mkdir -p ~/brpc_svn/dev/brpc/1.0.0 cd ~/brpc_svn/dev/brpc/1.0.0 -cp ~/brpc/apache-brpc-1.0.0-incubating-src.tar.gz ~/brpc_svn/dev/brpc/1.0.0 +cp ~/brpc/apache-brpc-1.0.0-src.tar.gz ~/brpc_svn/dev/brpc/1.0.0 -cp ~/brpc/apache-brpc-1.0.0-incubating-src.tar.gz.asc ~/brpc_svn/dev/brpc/1.0.0 +cp ~/brpc/apache-brpc-1.0.0-src.tar.gz.asc ~/brpc_svn/dev/brpc/1.0.0 -cp ~/brpc/apache-brpc-1.0.0-incubating-src.tar.gz.sha512 ~/brpc_svn/dev/brpc/1.0.0 +cp ~/brpc/apache-brpc-1.0.0-src.tar.gz.sha512 ~/brpc_svn/dev/brpc/1.0.0 ``` ## 4. Submit SVN @@ -257,7 +269,7 @@ svn --username=lorinlee commit -m "release 1.0.0" ## 1. Verify SHA512 sum ```bash -sha512sum --check apache-brpc-1.0.0-incubating-src.tar.gz.sha512 +sha512sum --check apache-brpc-1.0.0-src.tar.gz.sha512 ``` ## 2. Verify GPG signature @@ -304,7 +316,7 @@ gpg> save Then verify the GPG signature: ``` -gpg --verify apache-brpc-1.0.0-incubating-src.tar.gz.asc apache-brpc-1.0.0-incubating-src.tar.gz +gpg --verify apache-brpc-1.0.0-src.tar.gz.asc apache-brpc-1.0.0-src.tar.gz ``` ## 3. Check release content @@ -316,9 +328,9 @@ curl -Lo tag-1.0.0.tar.gz https://github.com/apache/brpc/archive/refs/tags/1.0.0 tar xvzf tag-1.0.0.tar.gz -tar xvzf apache-brpc-1.0.0-incubating-src.tar.gz +tar xvzf apache-brpc-1.0.0-src.tar.gz -diff -r brpc-1.0.0 apache-brpc-1.0.0-incubating-src +diff -r brpc-1.0.0 apache-brpc-1.0.0-src ``` ### 2. Check file content @@ -336,21 +348,21 @@ diff -r brpc-1.0.0 apache-brpc-1.0.0-incubating-src - The complete version of the dependency license is in the license directory - If third-party dependency have the Apache license and have NOTICE files, these NOTICE files also need to be added to the releasing NOTICE file -# Vote in Apache brpc community +# Vote in the Apache bRPC community ## 1. Vote stage 1. Send a voting email to `dev@brpc.apache.org`. PPMC needs to check the correctness of the version according to the document before voting. After at least 72 hours and 3 +1 PPMC member votes, you can move to the next stage. -2. Announce the voting results and send the voting results to dev@brpc.apache.org 。 +2. Announce the voting result and send the voting result to dev@brpc.apache.org. ## 2. Vote email template -1. Apache brpc community vote email template +1. Apache bRPC community vote email template Title: ``` -[VOTE] Release Apache brpc (Incubating) 1.0.0 +[VOTE] Release Apache bRPC 1.0.0 ``` Content: @@ -358,9 +370,9 @@ Content: Note: `Release Commit ID` fills in the commit ID of the last commit of the current release branch. ``` -Hi Apache brpc (Incubating) Community, +Hi Apache bRPC Community, -This is a call for vote to release Apache brpc (Incubating) version +This is a call for vote to release Apache bRPC version 1.0.0 [Release Note] @@ -401,25 +413,25 @@ Regards, LorinLee ``` -2. Apache brpc community announcement of vote result template +2. Apache bRPC community announcement of vote result template Title: ``` -[Result] [VOTE] Release Apache brpc (Incubating) 1.0.0 +[Result] [VOTE] Release Apache bRPC 1.0.0 ``` Content: ``` Hi all, -The vote to release Apache brpc (Incubating) 1.0.0 has passed. +The vote to release Apache bRPC 1.0.0 has passed. The vote PASSED with 3 binding +1, 3 non binding +1 and no -1 votes: Binding votes: - xxx -- yyy -- zzz +- yyy +- zzz Non-binding votes: - aaa @@ -428,7 +440,8 @@ Non-binding votes: Vote thread: xxx (vote email link in https://lists.apache.org/) -Thank you to all the above members to help us to verify and vote for the 1.0.0 release. We will move to IPMC voting shortly. +Thank you to all the above members to help us to verify and vote for +the 1.0.0 release. I will process to publish the release and send ANNOUNCE. Regards, LorinLee @@ -438,117 +451,6 @@ LorinLee If the community vote is not passed, please modify the code of the release branch, package and vote again. -# Vote in Apache incubator community - -## 1. Update GPG Signature - -``` -svn delete https://dist.apache.org/repos/dist/release/brpc/KEYS -m "delete KEYS" - -svn cp https://dist.apache.org/repos/dist/dev/brpc/KEYS https://dist.apache.org/repos/dist/release/brpc/KEYS -m "update brpc KEYS" -``` - -After commit the svn, access <https://downloads.apache.org/brpc/KEYS>, check whether the content is updated. It may take several minutes to wait for the content to be updated before continuing. - -## 2. Vote stage - -1. Send voting email to `gene...@incubator.apache.org`. IPMC will vote. After at least 72 hours and 3 +1 IPMC member tickets are counted, you can move to the next stage. -2. Announce the voting results by sending the voting results to `gene...@incubator.apache.org`. - -## 3. Vote email template - -1. Apache Incubator community vote email template - -Title: -``` -[VOTE] Release Apache brpc (Incubating) 1.0.0 -``` - -Content: -``` -Hi Incubator Community, - -This is a call for a vote to release Apache brpc(Incubating) version -1.0.0. - -The Apache brpc community has voted and approved the release of Apache -brpc (Incubating) 1.0.0. - -We now kindly request the Incubator PMC members review and vote on this -incubator release. - -brpc is an industrial-grade RPC framework with extremely high performance, -and it supports multiple protocols, full rpc features, and has many -convenient tools. - -brpc community vote thread: xxx - -Vote result thread: xxx - -The release candidate: -https://dist.apache.org/repos/dist/dev/brpc/1.0.0/ - -This release has been signed with a PGP available here: -https://downloads.apache.org/brpc/KEYS - -Git tag for the release: -https://github.com/apache/brpc/releases/tag/1.0.0 - -Build guide and get started instructions can be found at: -https://brpc.apache.org/docs/getting_started - -The vote will be open for at least 72 hours or until the necessary number -of votes is reached. - -Please vote accordingly: -[ ] +1 approve -[ ] +0 no opinion -[ ] -1 disapprove with the reason - -Regards, -Lorin Lee -Apache brpc (Incubating) community -``` - -2. Apache Incubator community announcement of vote result template - -Title: -``` -[Result] [VOTE] Release Apache brpc (Incubating) 1.0.0 -``` - -Content: -``` -Hi Incubator Community, - -Thanks to everyone that participated. The vote to release Apache -brpc (Incubating) version 1.0.0 in gene...@incubator.apache.org -is now closed. - -Vote thread: xxx - -The vote PASSED with 3 binding +1, 3 non binding +1 and no -1 votes: - -Binding votes: -- xxx -- yyy -- zzz - -Non-binding votes: -- aaa -- bbb -- ccc - -Many thanks for all our mentors helping us with the release procedure, -and all IPMC helped us to review and vote for Apache brpc(Incubating) -release. We will proceed with publishing the approved artifacts and -sending out the announcement soon. - -Regards, -Lorin Lee -Apache brpc (Incubating) community -``` - # Finish the release ## 1. Move the release package from Apache SVN directory dist/dev to dist/release @@ -572,7 +474,7 @@ The download link of the code package should use this prefix: `https://dlcdn.apa ## 4. Send email to announce release finished -Send mail to `dev@brpc.apache.org`, `gene...@incubator.apache.org`, and `annou...@apache.org` to announce the completion of release. +Send mail to `dev@brpc.apache.org` and `annou...@apache.org` to announce the completion of release. Note: The email account must use **personal apache email**, and the email content must be **plain text format** ("plain text mode" can be selected in gmail). And email to `annou...@apache.org` mail group will be delivered after manual review. Please wait patiently after sending the email, and it will be passed within one day. @@ -580,7 +482,7 @@ The announcement email template: Title: ``` -[ANNOUNCE] Apache brpc (Incubating) 1.0.0 released +[ANNOUNCE] Apache bRPC 1.0.0 released ``` Content: @@ -590,11 +492,11 @@ Note: `Brief notes of this release` It is only necessary to list the main change ``` Hi all, -The Apache brpc (Incubating) community is glad to announce the new release -of Apache brpc (Incubating) 1.0.0. +The Apache bRPC community is glad to announce the new release +of Apache bRPC 1.0.0. -brpc is an Industrial-grade RPC framework using C++ Language, which is -often used in high performance systems such as Search, Storage, +Apache bRPC is an Industrial-grade RPC framework using C++ Language, +which is often used in high performance systems such as Search, Storage, Machine learning, Advertisement, Recommendation etc. Brief notes of this release: @@ -606,23 +508,24 @@ More details regarding Apache brpc can be found at: http://brpc.apache.org/ The release is available for download at: -https://brpc.apache.org/docs/downloadbrpc/ +https://brpc.apache.org/docs/download/ The release notes can be found here: https://github.com/apache/brpc/releases/tag/1.0.0 Website: http://brpc.apache.org/ -brpc(Incubating) Resources: +Apache bRPC Resources: - Issue: https://github.com/apache/brpc/issues/ - Mailing list: dev@brpc.apache.org - Documents: https://brpc.apache.org/docs/ -We would like to thank all contributors of the Apache brpc community and -Incubating community who made this release possible! +We would like to thank all contributors of the Apache bRPC community +who made this release possible! + Best Regards, -Apache brpc (Incubating) community +Apache bRPC Community ``` ## 5. Publish WeChat official account announcement diff --git a/community/releasecheck.md b/community/releasecheck.md index 2bb1bd3b..c780b660 100644 --- a/community/releasecheck.md +++ b/community/releasecheck.md @@ -1,46 +1,54 @@ -# brpc 发版时候的Check List +# brpc 发版时候的 Check List ## 文档背景: -当Release Manager在dev邮件群中发起发布投票的时候,需要PMC成员对发版相关信息进行检查,如果检查通过则在邮件群中回复通过并附上检查结果。本文档就是各个检查项。 + +当 Release Manager 在 dev 邮件群中发起发布投票的时候,需要 PMC 成员对发版相关信息进行检查,如果检查通过则在邮件群中回复通过并附上检查结果。本文档就是各个检查项。 ## Checklist 资料来源 -根据Incubator PMC Chair Justin在ApacheCon North America 2019的分享 + +根据 Incubator PMC Chair Justin 在 ApacheCon North America 2019 的分享 https://training.apache.org/topics/ApacheWay/NavigatingASFIncubator/index.html  -## 常见的问题导致-1 +## 常见的问题导致 -1 +  -## Vote时候的检查项 -1. Incubating in name 即下载包的文件名是否带上了incubating +## Vote 时候的检查项 + +毕业后检查时不再需要 `DISCLAIMER` 以及 `incubating` + +1. ~~Incubating in name 即下载包的文件名是否带上了incubating~~ 2. LICENSE and NOTICE are good - - LICENSE是否符合Apache的要求 - - ASF允许的LICENSE:Category A(Apache V2,BSD 3,MIT etc) - - ASF建议不放到源码中的LICENSE:Category B(EPL,MPL,CDDL,etc) - - ASF不允许的LICENSE:Category X(GPL,LGPL,CC Non commercial,etc) - - NOTICE是否符合Apache的要求 + - LICENSE 是否符合 Apache 的要求 + - ASF 允许的 LICENSE:Category A(Apache V2, BSD 3, MIT etc) + - ASF 建议不放到源码中的 LICENSE:Category B(EPL, MPL, CDDL, etc) + - ASF 不允许的 LICENSE:Category X(GPL, LGPL, CC Non commercial, etc) + - NOTICE 是否符合 Apache 的要求 3. Signatures and hashes correct 4. All ASF files have ASF headers 5. No unexpected binary files 6. Must have an incubating disclaimer - - Repo根目录下应该有DISCLAIMER文件 - - 内容是Apache统一的内容 - + - ~~Repo 根目录下应该有 DISCLAIMER 文件~~ + - 内容是 Apache 统一的内容 -## Vote时候的常用回复 -“+1 (binding) +## Vote 时候的常用回复 - I checked: - - incubating in name - - LICENSE and NOTICE are good - - signatures and hashes correct - - All ASF files have ASF headers - - no unexpected binary files +> +> +1 (binding) +> +> I checked: +> - ~~incubating in name~~ +> - LICENSE and NOTICE are good +> - signatures and hashes correct +> - All ASF files have ASF headers +> - no unexpected binary files +> ## 注意: -1. 不要回复简单的+1,需要加上执行的几个检查项和检查结果 -2. 给出-1的时候,同样需要给出明确的理由 +1. 不要回复简单的 +1,需要加上执行的几个检查项和检查结果 +2. 给出 -1 的时候,同样需要给出明确的理由 --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@brpc.apache.org For additional commands, e-mail: dev-h...@brpc.apache.org