Skip to content

Commit d1435b8

Browse files
author
robin
committed
docs: update how-to-release guide with vote result email template and clarify release process steps
1 parent de21e8b commit d1435b8

2 files changed

Lines changed: 133 additions & 38 deletions

File tree

community/contributing/how-to-release.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ $ for i in *.tar.gz; do echo $i; sha512sum --check $i.sha512; done
150150
151151
1. The Apache Answer community votes, send a voting email to `dev@answer.apache.org`. PMC needs to check the correctness of the version according to the document before voting.
152152
2. After at least 72 hours and counting 3 +1 PMC member votes, you can enter the next stage.
153-
3. Announce the voting result, and send the voting result email to `dev@answer.apache.org`.
153+
3. Announce the voting result, and send the voting result email to `dev@answer.apache.org`. See the vote result email template below.
154154

155155
### Dev Mailing List Vote Template
156156

@@ -205,6 +205,33 @@ Thanks,
205205
<YOUR NAME>
206206
```
207207

208+
### Vote Result Email Template
209+
210+
After the vote closes (after at least 72 hours and with at least 3 +1 PMC member votes), send the following email to `dev@answer.apache.org` to announce the voting result:
211+
212+
```
213+
[RESULT][VOTE] Release Apache Answer {release-version}-RC{rc-version}
214+
215+
Hello everyone,
216+
217+
The vote closes now with the following results:
218+
219+
{total-votes} (+1 binding) votes
220+
- {voter-1-name}
221+
- {voter-2-name}
222+
- {voter-3-name}
223+
{... additional voters if any ...}
224+
225+
The vote has passed successfully. We will proceed with migrating the release artifacts and creating the final release.
226+
227+
Thanks to everyone who participated in the vote.
228+
229+
Best regards,
230+
<YOUR NAME>
231+
```
232+
233+
> **IMPORTANT**: Replace `{release-version}` with the actual release version (e.g., `1.7.0`) and `{rc-version}` with the RC version (e.g., `RC1`). List all voters who cast +1 binding votes. The total number should match the count of +1 binding votes received.
234+
208235
## Voting Timeout Situation
209236

210237
If the vote has been pending for more than 72 hours without reaching the required number of votes, you can send the following reminder email to dev@answer.apache.org:

i18n/zh-CN/docusaurus-plugin-content-docs-community/current/contributing/how-to-release.md

Lines changed: 105 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@ slug: /how-to-release
99
## 发布流程
1010

1111
1. 如果没有 GPG 密钥,请创建一个。
12-
3. 将发布物料上传到 svn 仓库。
12+
2. 在 git 仓库中创建 RC 标签并编写发布说明。
13+
3. 将发布物料上传到 dev Apache SVN。
1314
4. 验证发布物料。
1415
5. 开始投票。
15-
6. 宣布投票结果和发布。
16+
6. 将候选版本迁移到 release Apache SVN。
17+
7. 创建发布。
18+
8. 更新下载页面。
19+
9. 宣布投票结果和发布。
1620

1721
## 创建 GPG 密钥
1822

@@ -34,14 +38,28 @@ $ (gpg --list-sigs xxx@apache.org && gpg --export --armor xxx@apache.org) >> KEY
3438
$ svn ci -m "add gpg key"
3539
```
3640

37-
## 将发布物料上传到 svn 仓库
41+
## 将发布物料上传到 dev Apache SVN
3842

39-
### 准备所有发布物料
43+
### 创建 RC 标签
4044

41-
1. 在 git 仓库中创建 RC 标签并编写发布说明。
42-
1. 注意 1: 请记住在点击"发布版本"之前选择"设置为预发布"。
43-
2. 注意 2: 发布说明应选择非分支的标签,例如 `v1.2.0-RC1`
44-
3. 构建发布物料(捆绑包、源代码归档等)。
45+
当你想要发布新版本时,首先需要在 git 仓库中创建一个新的 RC 标签。标签名称应为 `v{release-version}-RC{rc-version}`。这样可以避免删除标签。
46+
47+
* release-version: 你想要发布的版本,例如 1.2.0。
48+
* rc-version: 发布候选版本,例如 RC1。
49+
50+
```shell
51+
$ git tag -a v{release-version}-RC{rc-version} -m "Release Apache Answer {release-version}"
52+
$ git push origin v{release-version}-RC{rc-version}
53+
```
54+
55+
推送 RC 标签后,CI 将根据标签自动生成发布页面。在发布页面中编写发布说明。记住在点击"发布版本"之前选择"设置为预发布"。
56+
57+
![release page](/img/community/img-1.jpg)
58+
59+
60+
发布说明应选择非分支的标签,例如 `v1.2.0-RC1`
61+
62+
![release notes](/img/community/img-2.png)
4563

4664
### 签名发布物料
4765

@@ -95,7 +113,7 @@ $ for i in *.tar.gz; do echo $i; sha512sum $i > $i.sha512 ; done
95113
### 如何验证签名
96114
```shell
97115
# 下载 KEYS
98-
$ curl https://dist.apache.org/repos/dist/release/answer/KEYS > KEYS
116+
$ curl https://downloads.apache.org/answer/KEYS > KEYS
99117

100118
# 导入 KEYS 并信任密钥,请将电子邮件地址替换为您想要信任的地址。
101119
$ gpg --import KEYS
@@ -124,21 +142,13 @@ $ for i in *.tar.gz; do echo $i; sha512sum --check $i.sha512; done
124142

125143
> Apache Answer 已经孵化毕业,只需要进行社区投票
126144
127-
1. Apache Answer 社区投票后,请发送一封投票邮件至 `dev@answer.apache.org`。PMC在投票前需要根据文档检查版本的正确性。
128-
2. 经过**至少 72 小时**并统计到 3 个 +1 PMC member票后,即可进入下一阶段。
129-
3. 宣布投票结果,发起投票结果邮件到 `dev@answer.apache.org`
130-
131-
### 投票电子邮件模板
132-
133-
**注意!**直接复制电子邮件内容将导致格式不正确。建议将电子邮件复制到 `.txt` 文件。写完内容后,将其复制到您正在使用的电子邮件工具中。在开发的第一轮投票中,不需要 `The vote tread``Vote Result`
134-
135-
如何获取投票的链接地址:
136-
1. 从 Apache 邮件列表中找到你发送的电子邮件。
137-
2. 单击电子邮件下方的链接按钮以获取你需要的链接地址。
145+
1. Apache Answer 社区投票,发送投票邮件至 `dev@answer.apache.org`。PMC 需要在投票前根据文档检查版本的正确性。
146+
2. 经过至少 72 小时并统计到 3 个 +1 PMC member 票后,即可进入下一阶段。
147+
3. 宣布投票结果,发送投票结果邮件至 `dev@answer.apache.org`。请参考下面的投票结果邮件模板。
138148

139-
![vote thread link](/img/community/vote-tread-link.jpeg)
149+
### 开发邮件列表投票模板
140150

141-
```text
151+
```
142152
[VOTE] Release Apache Answer {release-version}
143153
144154
Hello Apache Answer Community,
@@ -189,7 +199,79 @@ Thanks,
189199
<YOUR NAME>
190200
```
191201

192-
### 宣布投票结果的电子邮件模板
202+
### 投票结果邮件模板
203+
204+
投票结束后(经过至少 72 小时并获得至少 3 个 +1 PMC member 票),发送以下邮件至 `dev@answer.apache.org` 以宣布投票结果:
205+
206+
```
207+
[RESULT][VOTE] Release Apache Answer {release-version}-RC{rc-version}
208+
209+
Hello everyone,
210+
211+
The vote closes now with the following results:
212+
213+
{total-votes} (+1 binding) votes
214+
- {voter-1-name}
215+
- {voter-2-name}
216+
- {voter-3-name}
217+
{... additional voters if any ...}
218+
219+
The vote has passed successfully. We will proceed with migrating the release artifacts and creating the final release.
220+
221+
Thanks to everyone who participated in the vote.
222+
223+
Best regards,
224+
<YOUR NAME>
225+
```
226+
227+
> **重要提示**:将 `{release-version}` 替换为实际发布版本(例如 `1.7.0`),将 `{rc-version}` 替换为 RC 版本(例如 `RC1`)。列出所有投出 +1 binding 票的投票者。总票数应与收到的 +1 binding 票数一致。
228+
229+
## 投票超时情况
230+
231+
如果投票超过 72 小时仍未达到所需票数,你可以向 dev@answer.apache.org 发送以下提醒邮件:
232+
233+
```
234+
Dear PMC Members,
235+
236+
Apache Answer version {release-version} has been pending for voting for more
237+
than 72 hours. If any PMC member is available, please help us get the
238+
ballot completed. Currently, we are still missing +1 binding vote to
239+
finalize the process.
240+
241+
https://lists.apache.org/thread/{thread-id}
242+
243+
Best regards,
244+
<YOUR NAME>
245+
```
246+
247+
如果提醒邮件发送到 dev 邮件列表后仍然没有响应,你应该向项目导师发送私人邮件请求他们的投票。这有助于确保及时处理发布投票。
248+
249+
## 将候选版本迁移到 release Apache SVN
250+
251+
在宣布投票结果之前,你需要将发布物料从 dev Apache SVN 迁移到 release Apache SVN。发布物料应上传到 `https://dist.apache.org/repos/dist/release/answer/{release-version}` 目录。
252+
253+
```shell
254+
$ svn mv https://dist.apache.org/repos/dist/dev/answer/{release-version} https://dist.apache.org/repos/dist/release/answer/{release-version} -m "transfer packages for answer {release-version}"
255+
```
256+
257+
## 创建发布
258+
259+
投票通过后,创建一个不带 RC 的标签,CI 将根据标签自动生成发布页面。
260+
261+
```shell
262+
$ git tag -a v{release-version} -m "Release Apache Answer {release-version}"
263+
$ git push origin v{release-version}
264+
```
265+
266+
## 更新下载页面
267+
268+
使用新发布版本更新下载页面。下载页面位于 `src/pages/download.tsx` 文件中。
269+
270+
## 宣布投票结果和发布
271+
272+
投票通过后,发送邮件至 announce@apache.org 并抄送 dev@answer.apache.org 以宣布投票结果和发布。
273+
274+
### 邮件模板
193275

194276
```text
195277
[ANNOUNCE] Apache Answer {release-version} available
@@ -214,17 +296,3 @@ Resources:
214296
Thanks,
215297
<YOUR NAME>
216298
```
217-
218-
## 将发布物料迁移到 Apache SVN release
219-
220-
在宣布投票结果之前,你需要将发布物料从 Apache SVN dev 迁移到 Apache SVN release。发布物料应上传到 `https://dist.apache.org/repos/dist/release/answer/{release-version}` 目录。
221-
222-
```shell
223-
$ svn mv https://dist.apache.org/repos/dist/dev/answer/{release-version} https://dist.apache.org/repos/dist/release/answer/{release-version} -m "transfer packages for answer {release-version}"
224-
```
225-
226-
## 注意
227-
### RC 标签
228-
当你想发布新版本时,你需要先在 git 存储库中创建一个新的 RC 标签。标签名称应该是`v{release-version}-rc{rc-version}`
229-
230-
例如,如果你想发布 `1.2.0` 版本,则需要创建一个名为 `v1.2.0-RC1` 的标签。RC 的意思是候选。发布投票通过后,你需要根据RC标签创建一个名为 `v1.2.0` 的新标签。但是,如果投票未通过,你可以解决问题,并创建一个新的RC标签,如 `v1.2.0-RC2`,然后开始新的投票。

0 commit comments

Comments
 (0)