You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@seata.apache.org by "Code-Fight (via GitHub)" <gi...@apache.org> on 2025/12/20 09:36:51 UTC
[D] 发版参考 [incubator-seata-go]
GitHub user Code-Fight created a discussion: 发版参考
## 1. 发版准备
**1. 创建 KEY**
安装 [GnuPG](https://www.gnupg.org/download/index.html)。
按照 [OpenPGP KEY Management](https://www.gnupg.org/documentation/manuals/gnupg/OpenPGP-Key-Management.html#OpenPGP-Key-Management) [1] 的说明创建 KEY:
```shell
gpg --full-gen-key
```
创建步骤(以下内容来自控制台输出):
```shell
gpg (GnuPG) 2.2.4; Copyright (C) 2017 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: (设置用户名)(使用apache id)
Email address: (设置邮件地址)(使用apache邮箱)
Comment: (填写注释)
You selected this USER-ID:
"用户名 (注释) <邮件地址>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key. (设置密码)
```
**2. 检查 KEY**
按照 [Operational GPG Commands](https://www.gnupg.org/documentation/manuals/gnupg/Operational-GPG-Commands.html#Operational-GPG-Commands) [2] 的说明检查 KEY:
```shell
gpg --list-keys
```
命令输出:
```shell
pub rsa4096 2019-03-11 [SC]
095E0D21BC28CFC7A8B8076DF7DF28D237A8048C
uid 用户名 (注释) <邮件地址>
sub rsa4096 2019-03-11 [E]
```
公钥为 095E0D21BC28CFC7A8B8076DF7DF28D237A8048C。
**3. 上传公钥**
按照 [Dirmngr Options](https://www.gnupg.org/documentation/manuals/gnupg/Dirmngr-Options.html#Dirmngr-Options) [3] 的说明上传公钥:
```shell
gpg --send-key 095E0D21BC28CFC7A8B8076DF7DF28D237A8048C
```
可以参考:https://github.com/wongoo/apache-release-procedure
# 2. 准备changeLog
参考既往的发版release准备,中文两个版本
https://github.com/apache/incubator-seata-go/tree/master/changes
准备完,要push到仓库中
# 3. 准备tag
下载并安装 [Git](https://git-scm.com/downloads).
创建并切换到 `x.x.x` 标签. (参考既有的)
```shell
git clone https://github.com/apache/incubator-seata-go ~/incubator-seata-go
cd ~/incubator-seata-go/
git checkout master
git tag -a x.x.x -m "x.x.x release seata-go"
```
提交更新版本号后的代码和新标签。
```shell
git push origin --tags
```
# 4. push到apache仓库
下载并安装[SVN](https://tortoisesvn.net/downloads.html)。
**1. 更新 KEYS 文件**
> 如果还没有将自己的公钥追加到 KEYS 文件中,请执行以下操作。否则,跳过此步骤。
根据 [signing basics](https://infra.apache.org/release-signing.html#signing-basics) 的说明更新 KEYS 文件。
```shell
mkdir -p ~/keys/release/
cd ~/keys/release/
svn --username=${LDAP ID} co https://dist.apache.org/repos/dist/dev/incubator/seata/
cd ~/keys/release/
gpg -a --export ${GPG 用户名} >> KEYS
svn --username=${LDAP ID} commit -m "append to KEYS"
```
**2. 添加源码包和二进制文件包**
根据 [Uploading packages](https://infra.apache.org/release-publishing.html#uploading) 的说明添加源码包和二进制文件包。
```shell
mkdir -p ~/svn_release/dev/
cd ~/svn_release/dev/
svn --username=${LDAP ID} co https://dist.apache.org/repos/dist/dev/incubator/seata/incubator-seata-go/
mkdir -p ~/svn_release/dev/${PUBLISH.VERSION}
git archive --format=tar --prefix=incubator-seata-go-${PUBLISH.VERSION}/ ${PUBLISH.VERSION} | gzip > incubator-seata-go-${PUBLISH.VERSION}-src.tar.gz
cd ~/svn_release/dev/${PUBLISH.VERSION}
cp -f ~/xxx/shenyu-client-golang/*.src.tar.gz ~/svn_release/dev/${PUBLISH.VERSION}
cp -f ~/xxx/shenyu-client-golang/*.src.tar.gz.asc ~/svn_release/${PUBLISH.VERSION}
```
**3. 添加校验文件**
根据 [Requirements for cryptographic signatures and checksums](https://infra.apache.org/release-distribution#sigs-and-sums) [7] 的说明添加校验文件。
```shell
shasum -a 512 incubator-seata-go-${PUBLISH.VERSION}-src.tar.gz > incubator-seata-go-${PUBLISH.VERSION}-src.tar.gz.sha512
```
**4. 提交新版本**
```shell
cd ~/svn_release/dev/${PUBLISH.VERSION}
svn add ${PUBLISH.VERSION}/
svn --username=${LDAP ID} commit -m "release incubator-seata-go ${PUBLISH.VERSION}"
```
可以参考:https://shenyu.apache.org/zh/community/release-guide/shenyu-client-golang-release-guide/
## 投票流程
1.先在dev邮箱进行投票:https://lists.apache.org/thread/zgd2mykscftyqw5gngxnk0c8z37tbk27
2.投票通过,宣布结果:https://lists.apache.org/thread/zg3l67p09nrrllcy4t3oq77zwohrwklw
3.孵化器投票 https://lists.apache.org/thread/b14519zt9v2s9gvpg6jo0wzhblo7drhx
4.投票结果宣布:https://lists.apache.org/thread/pl0p8w41xv3pll9451clqmdj8jyrry8g
---
把apache svn的从dev挪到release
更新官网下载链接
---
最后孵化器宣布:https://lists.apache.org/thread/vdq5m7kn7xh0opo7bn3p9078xtc9qlby
GitHub link: https://github.com/apache/incubator-seata-go/discussions/1035
----
This is an automatically sent email for dev@seata.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@seata.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@seata.apache.org
For additional commands, e-mail: dev-help@seata.apache.org
Re: [D] 发版参考 [incubator-seata-go]
Posted by "lxfeng1997 (via GitHub)" <gi...@apache.org>.
GitHub user lxfeng1997 added a comment to the discussion: 发版参考
提示:
1. git的hash可以去github查看,如果是本地查看的hash,可能不对。
2. 投票时候,最好使用谷歌邮箱发送,且最好将模版的换行重新换行一下,以及url也需要确保不是超连接到旧地址。可以先发送给自己,然后检查连接调整是否符合,格式是否符合。
3. 需要使用apache邮箱进行发送(需要注意的是谷歌邮箱设置SMTP服务器地址是mail-relay.apache.org)。
4. 投票邮件需要至少保留72小时才能宣布结果。
5. 需要在github创建release,把changelog复制到里面,注意再投票结束前relaace是pre-release状态。
6. 发布的时候把apache svn的从dev挪到release,需要注意将公钥添加到KEYS文件的时候,可能release的KEYS文件不一样,所以不能直接覆盖,最好是重新添加公钥。
7. 更新github到release为latest release
8. 更新官网地址,就是去https://github.com/apache/incubator-seata-website项目进行更改,提交pr合并后会自动更新。文件路径i18n/en/docusaurus-plugin-content-docs-unversioned/current/download/seata-go.md。
9. 等待官网更新后就能直接孵化器宣布结果。
GitHub link: https://github.com/apache/incubator-seata-go/discussions/1035#discussioncomment-16286373
----
This is an automatically sent email for dev@seata.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@seata.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@seata.apache.org
For additional commands, e-mail: dev-help@seata.apache.org