This is an automated email from the ASF dual-hosted git repository.
chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fory-site.git
The following commit(s) were added to refs/heads/main by this push:
new d0a20cd2e6 docs: refresh release process guide (#454)
d0a20cd2e6 is described below
commit d0a20cd2e60e1b526dc3ec0614fb3759b7aac27f
Author: Shawn Yang <[email protected]>
AuthorDate: Thu May 21 17:40:40 2026 +0800
docs: refresh release process guide (#454)
---
docs/community/how_to_release.md | 130 ++++++++++++---------
.../current/community/how_to_release.md | 86 ++++++++------
.../version-1.0.0/community/how_to_release.md | 86 ++++++++------
.../version-1.0.0/community/how_to_release.md | 130 ++++++++++++---------
4 files changed, 258 insertions(+), 174 deletions(-)
diff --git a/docs/community/how_to_release.md b/docs/community/how_to_release.md
index ae29da7724..eaafe6788a 100644
--- a/docs/community/how_to_release.md
+++ b/docs/community/how_to_release.md
@@ -19,12 +19,13 @@ Publishing software is a serious thing and has legal
consequences.
This release process is operated in the Ubuntu OS, and the following tools are
required:
-- JDK 1.8
-- Apache Maven 3.x
-- Python 3.8
+- OpenJDK 25+
+- Apache Maven 3.6.3+
+- Python 3.8+
- GnuPG 2.x
- Git
- SVN (apache uses svn to host project releases)
+- Optional package release and verification tools: Node.js LTS and npm, Rust
via rustup, Go 1.24+, Dart, .NET SDK 8.0+, and sbt
- Pay attention to setting environment variables: if you configure gpg keys
under a different directory,
please `export GNUPGHOME=$(xxx)`
@@ -191,9 +192,9 @@ Hello, Apache Fory Community,
This is a call for a discussion to release Apache Fory version
${release_version}.
-The change lists about this release:
+The planned change list for this release:
-https://github.com/apache/fory/compare/v0.12.0...v0.12.1-rc1
+https://github.com/apache/fory/compare/v${previous_release_version}...main
Please leave your comments here about this release plan. We will bump the
version in repo and start the release process after the discussion.
@@ -204,25 +205,25 @@ ${name}
## Preparing for release
-If the discussion goes positive, you will need to prepare the release
artifiacts.
+If the discussion goes positive, you will need to prepare the release
artifacts.
-### Github branch and tag
+### GitHub branch and tag
-- Create a new branch named `releases-0.16.0`
-- Bump version to `$version` by executing command `python ci/release.py
bump_version -l all -version $version`
+- Create a new branch named `releases-${release_version}`. You can also run
`python ci/release.py prepare -v ${release_version}` to create the branch, bump
all versions, and create the preparation commit.
+- Bump version to `${release_version}` by executing command `python
ci/release.py bump_version -l all -version ${release_version}` if you do not
use `prepare`
- Make a git commit and push the branch to `[email protected]:apache/fory.git`
-- Create a new release tag by `git tag v0.16.0-rc1`, then push it to
`[email protected]:apache/fory.git`
-- If the Go module under `go/fory` is part of this release, create and push
the Go submodule tag as well. For example, for the final `0.16.0` release:
+- Create a new release-candidate tag by `git tag
v${release_version}-${rc_version}`, then push it to
`[email protected]:apache/fory.git`
+- If the Go module under `go/fory` is part of this release, create and push
the Go submodule tag after the vote passes. For example, for the final
`${release_version}` release:
```bash
git remote add apache [email protected]:apache/fory.git
-git tag go/fory/v0.16.0
-git push apache go/fory/v0.16.0
+git tag go/fory/v${release_version}
+git push apache go/fory/v${release_version}
```
### Build and upload artifacts to SVN dist/dev repo
-First you need to build source release artifacts by `python ci/release.py
build -v $version`.
+First you need to build source release artifacts by `python ci/release.py
build -v ${release_version}`.
Then you need to upload it to svn dist repo. The dist repo of the dev branch
is: https://dist.apache.org/repos/dist/dev/fory
@@ -262,8 +263,8 @@ If some files are unexpected, you need to remove by `svn
delete` and repeat the
Fory requires votes from the Fory Community.
-- release_version: the version for fory, like 0.12.0.
-- release_candidate_version: the version for voting, like 0.12.0-rc1.
+- release_version: the version for fory, like 1.0.0.
+- release_candidate_version: the version for voting, like 1.0.0-rc1.
- maven_artifact_number: the number for Maven staging artifacts, like 1001.
Specifically, the maven_artifact_number can
be found by searching "fory" on
https://repository.apache.org/#stagingRepositories.
@@ -343,10 +344,9 @@ cd java
# -T10: Use 10 threads for parallel build, improving speed
# clean: Clean the project
# deploy: Deploy to remote repository
-# -Papache-release: Activate apache-release profile
+# -Prelease: Activate the release profile
# -DskipTests: Skip tests
-# -Dgpg.skip=false: Enable GPG signing (required for release verification)
-mvn -T10 clean deploy -Papache-release -DskipTests -Dgpg.skip=false
+mvn -T10 clean deploy --no-transfer-progress -DskipTests -Prelease
```
@@ -359,7 +359,7 @@ cd ../kotlin
# Execute the same Maven command as Java module
# Configuration parameters are identical to Java module
-mvn -T10 clean deploy -Papache-release -DskipTests -Dgpg.skip=false
+mvn -T10 clean deploy --no-transfer-progress -DskipTests -Prelease
```
@@ -389,22 +389,28 @@ echo "Scala JAR deployment succeeded!"
```
-#### Lock the Release in Nexus
+#### Close the Maven staging repository in Nexus
After completing the publication of all modules, perform the following steps
in Nexus:
1. Log in to the Apache Nexus repository management interface
-2. Navigate to the "Snapshots" or "Releases" repository (depending on your
release type)
-3. Locate the latest Fory project version
+2. Navigate to the staging repositories page
+3. Locate the latest Fory staging repository, such as `orgapachefory-1001`
4. Execute the "Close" operation to validate all uploaded artifacts
-5. After successful validation, execute the "Release" operation to finalize
the deployment
+5. Record the staging repository ID for the vote email
+6. Do not execute the "Release" operation until the vote passes
-These steps ensure all published artifacts are verified and correctly deployed
to the public repository.
+These steps ensure all staged artifacts are verified before the community vote.
-### build a Pre-release
+### Build a pre-release
You need to build a Pre-release before voting, such as:
-https://github.com/apache/fory/releases/tag/v0.12.0-rc1
+https://github.com/apache/fory/releases/tag/v${release_version}-${rc_version}
+
+Pushing a `v*` tag triggers the tag-based package release workflows for
Python, compiler, JavaScript, Rust, Dart, and C#.
+For release-candidate tags that contain `-`, workflows publish prerelease or
staging artifacts where the ecosystem supports
+it, such as TestPyPI for Python packages and the `next` tag for npm packages.
Monitor all triggered workflows before
+starting the vote.
### Fory Community Vote
@@ -422,34 +428,35 @@ Content:
Hello, Apache Fory Community:
This is a call for vote to release Apache Fory
-version release-${release_version}-${rc_version}.
+v${release_version}-${rc_version}.
-Apache Fory - A blazingly fast multi-language serialization
-framework powered by JIT and zero-copy.
+Apache Fory is a blazingly fast multi-language serialization framework
+for idiomatic domain objects, schema IDL, and cross-language data
+exchange.
The discussion thread:
https://lists.apache.org/thread/xxr3od301g6v3ndj14zqc05byp9qvclh
The change lists about this release:
-https://github.com/apache/fory/compare/v0.12.0...v0.12.1-rc1
+https://github.com/apache/fory/compare/v${previous_release_version}...v${release_version}-${rc_version}
The release candidates:
-https://dist.apache.org/repos/dist/dev/fory/0.5.0-rc3/
+https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}/
The maven staging for this release:
-https://repository.apache.org/content/repositories/orgapachefory-1003
+https://repository.apache.org/content/repositories/orgapachefory-${maven_artifact_number}
Git tag for the release:
-https://github.com/apache/fory/releases/tag/v0.12.0-rc1
+https://github.com/apache/fory/releases/tag/v${release_version}-${rc_version}
If this release also publishes the Go module, include the Go submodule tag too:
-https://github.com/apache/fory/releases/tag/go/fory/v0.16.0
+https://github.com/apache/fory/releases/tag/go/fory/v${release_version}
Git commit for the release:
-https://github.com/apache/fory/commit/fae06330edd049bb960536e978a45b97bca66faf
+https://github.com/apache/fory/commit/${release_commit}
-The artifacts signed with PGP key [5E580BA4], corresponding to
-[[email protected]], that can be found in keys file:
+The artifacts signed with PGP key [${gpg_key_id}], corresponding to
+[${apache_email}], that can be found in keys file:
https://downloads.apache.org/fory/KEYS
The vote will be open for at least 72 hours until the necessary number of
votes are reached.
@@ -479,7 +486,7 @@ Thanks,
${name}
```
-After at least 3 +1 binding vote (from Fory Podling PMC member and committers)
and no veto,
+After at least 3 +1 binding votes from Apache Fory PMC members and no veto,
first, reply to the above voting thread to notify that the voting has ended.
```
@@ -510,7 +517,7 @@ Hello, Apache Fory Community,
The vote to release Apache Fory v${release_version}-${rc_version} has passed.
-The vote PASSED with 3 binding +1 and 0 -1 vote:
+The vote PASSED with 3 binding +1 votes and 0 -1 votes:
Binding votes:
@@ -525,7 +532,7 @@ Thanks,
${name}
```
-### What if vote fail
+### What if vote fails
If the vote failed, click "Drop" to drop the staging Maven artifacts.
@@ -535,8 +542,8 @@ Address the raised issues, then bump `rc_version` and file
a new vote again.
### Publish artifacts to SVN Release Directory
-- release_version: the release version for fory, like 0.5.0
-- release_candidate_version: the version for voting, like 0.5.0-rc1
+- release_version: the release version for fory, like 1.0.0
+- release_candidate_version: the version for voting, like 1.0.0-rc1
```bash
svn mv
https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}
https://dist.apache.org/repos/dist/release/fory/${release_version} -m "Release
fory ${release_version}"
@@ -546,7 +553,7 @@ In the repository at
https://dist.apache.org/repos/dist/dev/fory/, if any
outdated release_candidate_version are left behind when releasing the
release_version,
please clear them to keep the dev repository tidy.
-When `https://archive.apache.org/dist/fory/0.12.0/${release_version}` is
+When `https://archive.apache.org/dist/fory/${release_version}/` is
accessible (confirming that the release_version has been successfully released
and archived), we may clean up the previous release version in the release
repository,
leaving only the current version.
@@ -559,7 +566,7 @@ and [#285](https://github.com/apache/fory-site/pull/285).
#### Update Fory-Site
-In general, the following two key areas need to be modified:
+In general, the following key areas need to be modified:
1. Write a new announcement, for example:
Add a new markdown file under the blog folder:
@@ -579,15 +586,22 @@ The Apache Fory team is pleased to announce the [?]
release. This is a major rel
</dependency>
```
+3. Update the download page, checksum and signature examples, release notes
link, current docs, zh-CN translations, versioned docs snapshot,
`versions.json`, and `docusaurus.config.ts` default docs version.
+
#### Update Fory
-Submit a PR to https://github.com/apache/fury to update
[README](https://github.com/apache/fury/blob/main/README.md),
-like [#2207](https://github.com/apache/fury/pull/2207).
+Submit a PR to https://github.com/apache/fory to update
[README](https://github.com/apache/fory/blob/main/README.md),
+package metadata for the next development version, and user-facing install
snippets that should point at the latest
+released version.
-### Github officially released
+### GitHub officially released
You need to officially release this version in the Fory project
-Reference implementation: https://github.com/apache/fory/releases/tag/v0.12.0
+Reference implementation:
https://github.com/apache/fory/releases/tag/v${release_version}
+
+Create and push the final `v${release_version}` tag from the voted commit
after the vote passes. This tag triggers the
+final package publishing workflows for Python, compiler, JavaScript, Rust,
Dart, and C#. Monitor every workflow to
+completion before sending the announcement.
### Release Maven artifacts
@@ -611,16 +625,26 @@ Content:
Hi all,
The Apache Fory community is pleased to announce
-that Apache Fory {release_version} has been released!
+that Apache Fory ${release_version} is now available.
+
+Apache Fory is a blazingly fast multi-language serialization framework
+for idiomatic domain objects, schema IDL, and cross-language data
+exchange.
+
+This release includes ${pr_count} PRs from ${contributor_count} contributors.
+
+Highlights in ${release_version} include:
+
+- ...
-Apache Fory - A blazingly fast multi-language serialization
-framework powered by JIT and zero-copy.
+Release blog, with details and examples:
+https://fory.apache.org/blog/fory_${release_version_with_underscores}_release
The release notes are available here:
https://github.com/apache/fory/releases/tag/v${release_version}
For the complete list of changes:
-https://github.com/apache/fory/compare/v0.12.0...v${release_version}
+https://github.com/apache/fory/compare/v${previous_release_version}...v${release_version}
Apache Fory website: https://fory.apache.org/
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/community/how_to_release.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/community/how_to_release.md
index a457cbab8d..0f0f2cd6b7 100644
---
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/community/how_to_release.md
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/community/how_to_release.md
@@ -18,12 +18,13 @@ id: how_to_release
此发布过程在 Ubuntu 系统中运行,需要以下几个环境依赖:
-- JDK 1.8+
-- Apache Maven 3.x+
-- Python 3.8
+- OpenJDK 25+
+- Apache Maven 3.6.3+
+- Python 3.8+
- GnuPG 2.x
- Git
- SVN(Apache 基金会使用 svn 来托管项目发布)
+- 可选的包发布和验证工具:Node.js LTS 和 npm、Rust via rustup、Go 1.24+、Dart、.NET SDK 8.0+、sbt
- **设置环境变量**:如果您在不同的目录下配置了 gpg 密钥,请执行 `export GNUPGHOME=$(xxx)` 导出环境变量。
### 准备 GPG 密钥
@@ -185,9 +186,9 @@ Hello, Apache Fory Community,
This is a call for a discussion to release Apache Fory version
${release_version}.
-The change lists about this release:
+The planned change list for this release:
-https://github.com/apache/fory/compare/v0.11.2...v0.12.0
+https://github.com/apache/fory/compare/v${previous_release_version}...main
Please leave your comments here about this release plan. We will bump the
version in repo and start the release process after the discussion.
@@ -200,22 +201,22 @@ ${name}
如果讨论结果中没有出现反对声音,您需要做一些发布版本的准备工作。
-### Github 分支和标签
+### GitHub 分支和标签
-- 创建一个名为 `releases-0.16.0`
-- 通过执行命令将版本 `$version` 升级到 `python ci/release.py bump_version -l all -version
$version`
+- 创建一个名为 `releases-${release_version}` 的分支。也可以运行 `python ci/release.py prepare
-v ${release_version}`,让脚本创建分支、更新所有版本并创建准备提交。
+- 如果没有使用 `prepare`,通过执行命令 `python ci/release.py bump_version -l all -version
${release_version}` 将版本升级到 `${release_version}`
- 执行 git commit 并将分支推送到 `[email protected]:apache/fory.git`
-- 通过 `git tag v0.16.0-rc1` 创建一个 release 标签,然后将其推送到
`[email protected]:apache/fory.git`
-- 如果本次发布包含 `go/fory` 这个 Go 子模块,还需要额外创建并推送 Go 子模块标签。例如,对于最终版 `0.16.0`,执行:
+- 通过 `git tag v${release_version}-${rc_version}` 创建一个 release candidate
标签,然后将其推送到 `[email protected]:apache/fory.git`
+- 如果本次发布包含 `go/fory` 这个 Go 子模块,请在投票通过后额外创建并推送 Go 子模块标签。例如,对于最终版
`${release_version}`,执行:
```bash
-git tag go/fory/v0.16.0
-git push apache go/fory/v0.16.0
+git tag go/fory/v${release_version}
+git push apache go/fory/v${release_version}
```
### 构建 artifacts 并上传到 SVN dist/dev 仓库
-首先,您需要通过 `python ci/release.py build -v $version` 构建预发布 artifacts。
+首先,您需要通过 `python ci/release.py build -v ${release_version}` 构建预发布 artifacts。
然后您需要把它上传到 svn dist repo。dev 分支的 dist
仓库地址是:https://dist.apache.org/repos/dist/dev/fory
@@ -252,8 +253,8 @@ svn commit -m "Prepare for fory
${release_version}-${rc_version}"
新版本发布需要 Apache Fory 社区的投票。
-- release_version:Fory 的版本,如 0.12.0。
-- release_candidate_version:投票的版本,如 0.12.0-rc1。
+- release_version:Fory 的版本,如 1.0.0。
+- release_candidate_version:投票的版本,如 1.0.0-rc1。
- maven_artifact_number:Maven 暂存 artifacts 的数量。如 1001. 具体来说,可以通过搜索 “fory” 来找到
maven_artifact_number https://repository.apache.org/#stagingRepositories.
### Fory 社区投票
@@ -272,32 +273,33 @@ svn commit -m "Prepare for fory
${release_version}-${rc_version}"
Hello, Apache Fory Community:
This is a call for vote to release Apache Fory
-version release-0.12.0-rc1.
+v${release_version}-${rc_version}.
-Apache Fory - A blazingly fast multi-language serialization
-framework powered by JIT and zero-copy.
+Apache Fory is a blazingly fast multi-language serialization framework
+for idiomatic domain objects, schema IDL, and cross-language data
+exchange.
The change lists about this release:
-https://github.com/apache/fory/compare/v0.12.0...v0.12.0-rc1
+https://github.com/apache/fory/compare/v${previous_release_version}...v${release_version}-${rc_version}
The release candidates:
-https://dist.apache.org/repos/dist/dev/fory/0.12.0-rc1/
+https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}/
The maven staging for this release:
-https://repository.apache.org/content/repositories/orgapachefory-1003
+https://repository.apache.org/content/repositories/orgapachefory-${maven_artifact_number}
Git tag for the release:
-https://github.com/apache/fory/releases/tag/v0.12.0-rc1
+https://github.com/apache/fory/releases/tag/v${release_version}-${rc_version}
如果本次发布还包含 Go 模块,请同时附上 Go 子模块标签:
-https://github.com/apache/fory/releases/tag/go/fory/v0.16.0
+https://github.com/apache/fory/releases/tag/go/fory/v${release_version}
Git commit for the release:
-https://github.com/apache/fory/commit/fae06330edd049bb960536e978a45b97bca66faf
+https://github.com/apache/fory/commit/${release_commit}
-The artifacts signed with PGP key [5E580BA4], corresponding to
-[[email protected]], that can be found in keys file:
+The artifacts signed with PGP key [${gpg_key_id}], corresponding to
+[${apache_email}], that can be found in keys file:
https://downloads.apache.org/fory/KEYS
The vote will be open for at least 72 hours until the necessary number of
votes are reached.
@@ -326,7 +328,7 @@ Thanks,
Chaokun Yang
```
-在至少获得 3 + 1 且具有约束力的投票(来自 Fory Podling PMC 成员和提交者)并没有收到否决票之后,发布投票结果:
+在至少获得 3 个来自 Apache Fory PMC member 的 binding +1,并且没有收到否决票之后,发布投票结果:
标题:
@@ -341,7 +343,7 @@ Hello, Apache Fory Community,
The vote to release Apache Fory v${release_version}-${rc_version} has passed.
-The vote PASSED with 3 binding +1 and 0 -1 vote:
+The vote PASSED with 3 binding +1 votes and 0 -1 votes:
Binding votes:
@@ -366,8 +368,8 @@ ${name}
### 将 artifacts 发布到 SVN 发布目录
-- release_version:Fory 的发布版本,如 0.12.0
-- release_candidate_version:投票版本,如 0.12.0-rc1
+- release_version:Fory 的发布版本,如 1.0.0
+- release_candidate_version:投票版本,如 1.0.0-rc1
```bash
svn mv
https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}
https://dist.apache.org/repos/dist/release/fory/${release_version} -m "Release
fory ${release_version}"
@@ -377,6 +379,12 @@ svn mv
https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_versi
提交 PR 到 https://github.com/apache/fory-site 仓库更新 Fory
版本,[下载页面](https://fory.apache.org/download)
+同时更新 release blog、download page、checksum/signature 示例、release notes 链接、current
docs、zh-CN 翻译、`${release_version}` 的 versioned docs snapshot、`versions.json` 以及
`docusaurus.config.ts` 默认 docs 版本。
+
+### GitHub 正式发布
+
+投票通过后,从通过投票的 commit 创建并推送最终 tag `v${release_version}`。该 tag 会触发
Python、compiler、JavaScript、Rust、Dart 和 C# 的最终包发布 workflows。发送公告前,请监控所有
workflows 直到完成。
+
### 发布 Maven artifacts
- maven_artifact_number:Maven 暂存 artifacts 的数量。如 1001。
@@ -399,16 +407,26 @@ svn mv
https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_versi
Hi all,
The Apache Fory community is pleased to announce
-that Apache Fory {release_version} has been released!
+that Apache Fory ${release_version} is now available.
+
+Apache Fory is a blazingly fast multi-language serialization framework
+for idiomatic domain objects, schema IDL, and cross-language data
+exchange.
+
+This release includes ${pr_count} PRs from ${contributor_count} contributors.
+
+Highlights in ${release_version} include:
+
+- ...
-Apache Fory - A blazingly fast multi-language serialization
-framework powered by JIT and zero-copy.
+Release blog, with details and examples:
+https://fory.apache.org/blog/fory_${release_version_with_underscores}_release
The release notes are available here:
https://github.com/apache/fory/releases/tag/v${release_version}
For the complete list of changes:
-https://github.com/apache/fory/compare/v0.12.0...v${release_version}
+https://github.com/apache/fory/compare/v${previous_release_version}...v${release_version}
Apache Fory website: https://fory.apache.org/
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.0.0/community/how_to_release.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.0.0/community/how_to_release.md
index a457cbab8d..0f0f2cd6b7 100644
---
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.0.0/community/how_to_release.md
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.0.0/community/how_to_release.md
@@ -18,12 +18,13 @@ id: how_to_release
此发布过程在 Ubuntu 系统中运行,需要以下几个环境依赖:
-- JDK 1.8+
-- Apache Maven 3.x+
-- Python 3.8
+- OpenJDK 25+
+- Apache Maven 3.6.3+
+- Python 3.8+
- GnuPG 2.x
- Git
- SVN(Apache 基金会使用 svn 来托管项目发布)
+- 可选的包发布和验证工具:Node.js LTS 和 npm、Rust via rustup、Go 1.24+、Dart、.NET SDK 8.0+、sbt
- **设置环境变量**:如果您在不同的目录下配置了 gpg 密钥,请执行 `export GNUPGHOME=$(xxx)` 导出环境变量。
### 准备 GPG 密钥
@@ -185,9 +186,9 @@ Hello, Apache Fory Community,
This is a call for a discussion to release Apache Fory version
${release_version}.
-The change lists about this release:
+The planned change list for this release:
-https://github.com/apache/fory/compare/v0.11.2...v0.12.0
+https://github.com/apache/fory/compare/v${previous_release_version}...main
Please leave your comments here about this release plan. We will bump the
version in repo and start the release process after the discussion.
@@ -200,22 +201,22 @@ ${name}
如果讨论结果中没有出现反对声音,您需要做一些发布版本的准备工作。
-### Github 分支和标签
+### GitHub 分支和标签
-- 创建一个名为 `releases-0.16.0`
-- 通过执行命令将版本 `$version` 升级到 `python ci/release.py bump_version -l all -version
$version`
+- 创建一个名为 `releases-${release_version}` 的分支。也可以运行 `python ci/release.py prepare
-v ${release_version}`,让脚本创建分支、更新所有版本并创建准备提交。
+- 如果没有使用 `prepare`,通过执行命令 `python ci/release.py bump_version -l all -version
${release_version}` 将版本升级到 `${release_version}`
- 执行 git commit 并将分支推送到 `[email protected]:apache/fory.git`
-- 通过 `git tag v0.16.0-rc1` 创建一个 release 标签,然后将其推送到
`[email protected]:apache/fory.git`
-- 如果本次发布包含 `go/fory` 这个 Go 子模块,还需要额外创建并推送 Go 子模块标签。例如,对于最终版 `0.16.0`,执行:
+- 通过 `git tag v${release_version}-${rc_version}` 创建一个 release candidate
标签,然后将其推送到 `[email protected]:apache/fory.git`
+- 如果本次发布包含 `go/fory` 这个 Go 子模块,请在投票通过后额外创建并推送 Go 子模块标签。例如,对于最终版
`${release_version}`,执行:
```bash
-git tag go/fory/v0.16.0
-git push apache go/fory/v0.16.0
+git tag go/fory/v${release_version}
+git push apache go/fory/v${release_version}
```
### 构建 artifacts 并上传到 SVN dist/dev 仓库
-首先,您需要通过 `python ci/release.py build -v $version` 构建预发布 artifacts。
+首先,您需要通过 `python ci/release.py build -v ${release_version}` 构建预发布 artifacts。
然后您需要把它上传到 svn dist repo。dev 分支的 dist
仓库地址是:https://dist.apache.org/repos/dist/dev/fory
@@ -252,8 +253,8 @@ svn commit -m "Prepare for fory
${release_version}-${rc_version}"
新版本发布需要 Apache Fory 社区的投票。
-- release_version:Fory 的版本,如 0.12.0。
-- release_candidate_version:投票的版本,如 0.12.0-rc1。
+- release_version:Fory 的版本,如 1.0.0。
+- release_candidate_version:投票的版本,如 1.0.0-rc1。
- maven_artifact_number:Maven 暂存 artifacts 的数量。如 1001. 具体来说,可以通过搜索 “fory” 来找到
maven_artifact_number https://repository.apache.org/#stagingRepositories.
### Fory 社区投票
@@ -272,32 +273,33 @@ svn commit -m "Prepare for fory
${release_version}-${rc_version}"
Hello, Apache Fory Community:
This is a call for vote to release Apache Fory
-version release-0.12.0-rc1.
+v${release_version}-${rc_version}.
-Apache Fory - A blazingly fast multi-language serialization
-framework powered by JIT and zero-copy.
+Apache Fory is a blazingly fast multi-language serialization framework
+for idiomatic domain objects, schema IDL, and cross-language data
+exchange.
The change lists about this release:
-https://github.com/apache/fory/compare/v0.12.0...v0.12.0-rc1
+https://github.com/apache/fory/compare/v${previous_release_version}...v${release_version}-${rc_version}
The release candidates:
-https://dist.apache.org/repos/dist/dev/fory/0.12.0-rc1/
+https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}/
The maven staging for this release:
-https://repository.apache.org/content/repositories/orgapachefory-1003
+https://repository.apache.org/content/repositories/orgapachefory-${maven_artifact_number}
Git tag for the release:
-https://github.com/apache/fory/releases/tag/v0.12.0-rc1
+https://github.com/apache/fory/releases/tag/v${release_version}-${rc_version}
如果本次发布还包含 Go 模块,请同时附上 Go 子模块标签:
-https://github.com/apache/fory/releases/tag/go/fory/v0.16.0
+https://github.com/apache/fory/releases/tag/go/fory/v${release_version}
Git commit for the release:
-https://github.com/apache/fory/commit/fae06330edd049bb960536e978a45b97bca66faf
+https://github.com/apache/fory/commit/${release_commit}
-The artifacts signed with PGP key [5E580BA4], corresponding to
-[[email protected]], that can be found in keys file:
+The artifacts signed with PGP key [${gpg_key_id}], corresponding to
+[${apache_email}], that can be found in keys file:
https://downloads.apache.org/fory/KEYS
The vote will be open for at least 72 hours until the necessary number of
votes are reached.
@@ -326,7 +328,7 @@ Thanks,
Chaokun Yang
```
-在至少获得 3 + 1 且具有约束力的投票(来自 Fory Podling PMC 成员和提交者)并没有收到否决票之后,发布投票结果:
+在至少获得 3 个来自 Apache Fory PMC member 的 binding +1,并且没有收到否决票之后,发布投票结果:
标题:
@@ -341,7 +343,7 @@ Hello, Apache Fory Community,
The vote to release Apache Fory v${release_version}-${rc_version} has passed.
-The vote PASSED with 3 binding +1 and 0 -1 vote:
+The vote PASSED with 3 binding +1 votes and 0 -1 votes:
Binding votes:
@@ -366,8 +368,8 @@ ${name}
### 将 artifacts 发布到 SVN 发布目录
-- release_version:Fory 的发布版本,如 0.12.0
-- release_candidate_version:投票版本,如 0.12.0-rc1
+- release_version:Fory 的发布版本,如 1.0.0
+- release_candidate_version:投票版本,如 1.0.0-rc1
```bash
svn mv
https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}
https://dist.apache.org/repos/dist/release/fory/${release_version} -m "Release
fory ${release_version}"
@@ -377,6 +379,12 @@ svn mv
https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_versi
提交 PR 到 https://github.com/apache/fory-site 仓库更新 Fory
版本,[下载页面](https://fory.apache.org/download)
+同时更新 release blog、download page、checksum/signature 示例、release notes 链接、current
docs、zh-CN 翻译、`${release_version}` 的 versioned docs snapshot、`versions.json` 以及
`docusaurus.config.ts` 默认 docs 版本。
+
+### GitHub 正式发布
+
+投票通过后,从通过投票的 commit 创建并推送最终 tag `v${release_version}`。该 tag 会触发
Python、compiler、JavaScript、Rust、Dart 和 C# 的最终包发布 workflows。发送公告前,请监控所有
workflows 直到完成。
+
### 发布 Maven artifacts
- maven_artifact_number:Maven 暂存 artifacts 的数量。如 1001。
@@ -399,16 +407,26 @@ svn mv
https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_versi
Hi all,
The Apache Fory community is pleased to announce
-that Apache Fory {release_version} has been released!
+that Apache Fory ${release_version} is now available.
+
+Apache Fory is a blazingly fast multi-language serialization framework
+for idiomatic domain objects, schema IDL, and cross-language data
+exchange.
+
+This release includes ${pr_count} PRs from ${contributor_count} contributors.
+
+Highlights in ${release_version} include:
+
+- ...
-Apache Fory - A blazingly fast multi-language serialization
-framework powered by JIT and zero-copy.
+Release blog, with details and examples:
+https://fory.apache.org/blog/fory_${release_version_with_underscores}_release
The release notes are available here:
https://github.com/apache/fory/releases/tag/v${release_version}
For the complete list of changes:
-https://github.com/apache/fory/compare/v0.12.0...v${release_version}
+https://github.com/apache/fory/compare/v${previous_release_version}...v${release_version}
Apache Fory website: https://fory.apache.org/
diff --git a/versioned_docs/version-1.0.0/community/how_to_release.md
b/versioned_docs/version-1.0.0/community/how_to_release.md
index ae29da7724..eaafe6788a 100644
--- a/versioned_docs/version-1.0.0/community/how_to_release.md
+++ b/versioned_docs/version-1.0.0/community/how_to_release.md
@@ -19,12 +19,13 @@ Publishing software is a serious thing and has legal
consequences.
This release process is operated in the Ubuntu OS, and the following tools are
required:
-- JDK 1.8
-- Apache Maven 3.x
-- Python 3.8
+- OpenJDK 25+
+- Apache Maven 3.6.3+
+- Python 3.8+
- GnuPG 2.x
- Git
- SVN (apache uses svn to host project releases)
+- Optional package release and verification tools: Node.js LTS and npm, Rust
via rustup, Go 1.24+, Dart, .NET SDK 8.0+, and sbt
- Pay attention to setting environment variables: if you configure gpg keys
under a different directory,
please `export GNUPGHOME=$(xxx)`
@@ -191,9 +192,9 @@ Hello, Apache Fory Community,
This is a call for a discussion to release Apache Fory version
${release_version}.
-The change lists about this release:
+The planned change list for this release:
-https://github.com/apache/fory/compare/v0.12.0...v0.12.1-rc1
+https://github.com/apache/fory/compare/v${previous_release_version}...main
Please leave your comments here about this release plan. We will bump the
version in repo and start the release process after the discussion.
@@ -204,25 +205,25 @@ ${name}
## Preparing for release
-If the discussion goes positive, you will need to prepare the release
artifiacts.
+If the discussion goes positive, you will need to prepare the release
artifacts.
-### Github branch and tag
+### GitHub branch and tag
-- Create a new branch named `releases-0.16.0`
-- Bump version to `$version` by executing command `python ci/release.py
bump_version -l all -version $version`
+- Create a new branch named `releases-${release_version}`. You can also run
`python ci/release.py prepare -v ${release_version}` to create the branch, bump
all versions, and create the preparation commit.
+- Bump version to `${release_version}` by executing command `python
ci/release.py bump_version -l all -version ${release_version}` if you do not
use `prepare`
- Make a git commit and push the branch to `[email protected]:apache/fory.git`
-- Create a new release tag by `git tag v0.16.0-rc1`, then push it to
`[email protected]:apache/fory.git`
-- If the Go module under `go/fory` is part of this release, create and push
the Go submodule tag as well. For example, for the final `0.16.0` release:
+- Create a new release-candidate tag by `git tag
v${release_version}-${rc_version}`, then push it to
`[email protected]:apache/fory.git`
+- If the Go module under `go/fory` is part of this release, create and push
the Go submodule tag after the vote passes. For example, for the final
`${release_version}` release:
```bash
git remote add apache [email protected]:apache/fory.git
-git tag go/fory/v0.16.0
-git push apache go/fory/v0.16.0
+git tag go/fory/v${release_version}
+git push apache go/fory/v${release_version}
```
### Build and upload artifacts to SVN dist/dev repo
-First you need to build source release artifacts by `python ci/release.py
build -v $version`.
+First you need to build source release artifacts by `python ci/release.py
build -v ${release_version}`.
Then you need to upload it to svn dist repo. The dist repo of the dev branch
is: https://dist.apache.org/repos/dist/dev/fory
@@ -262,8 +263,8 @@ If some files are unexpected, you need to remove by `svn
delete` and repeat the
Fory requires votes from the Fory Community.
-- release_version: the version for fory, like 0.12.0.
-- release_candidate_version: the version for voting, like 0.12.0-rc1.
+- release_version: the version for fory, like 1.0.0.
+- release_candidate_version: the version for voting, like 1.0.0-rc1.
- maven_artifact_number: the number for Maven staging artifacts, like 1001.
Specifically, the maven_artifact_number can
be found by searching "fory" on
https://repository.apache.org/#stagingRepositories.
@@ -343,10 +344,9 @@ cd java
# -T10: Use 10 threads for parallel build, improving speed
# clean: Clean the project
# deploy: Deploy to remote repository
-# -Papache-release: Activate apache-release profile
+# -Prelease: Activate the release profile
# -DskipTests: Skip tests
-# -Dgpg.skip=false: Enable GPG signing (required for release verification)
-mvn -T10 clean deploy -Papache-release -DskipTests -Dgpg.skip=false
+mvn -T10 clean deploy --no-transfer-progress -DskipTests -Prelease
```
@@ -359,7 +359,7 @@ cd ../kotlin
# Execute the same Maven command as Java module
# Configuration parameters are identical to Java module
-mvn -T10 clean deploy -Papache-release -DskipTests -Dgpg.skip=false
+mvn -T10 clean deploy --no-transfer-progress -DskipTests -Prelease
```
@@ -389,22 +389,28 @@ echo "Scala JAR deployment succeeded!"
```
-#### Lock the Release in Nexus
+#### Close the Maven staging repository in Nexus
After completing the publication of all modules, perform the following steps
in Nexus:
1. Log in to the Apache Nexus repository management interface
-2. Navigate to the "Snapshots" or "Releases" repository (depending on your
release type)
-3. Locate the latest Fory project version
+2. Navigate to the staging repositories page
+3. Locate the latest Fory staging repository, such as `orgapachefory-1001`
4. Execute the "Close" operation to validate all uploaded artifacts
-5. After successful validation, execute the "Release" operation to finalize
the deployment
+5. Record the staging repository ID for the vote email
+6. Do not execute the "Release" operation until the vote passes
-These steps ensure all published artifacts are verified and correctly deployed
to the public repository.
+These steps ensure all staged artifacts are verified before the community vote.
-### build a Pre-release
+### Build a pre-release
You need to build a Pre-release before voting, such as:
-https://github.com/apache/fory/releases/tag/v0.12.0-rc1
+https://github.com/apache/fory/releases/tag/v${release_version}-${rc_version}
+
+Pushing a `v*` tag triggers the tag-based package release workflows for
Python, compiler, JavaScript, Rust, Dart, and C#.
+For release-candidate tags that contain `-`, workflows publish prerelease or
staging artifacts where the ecosystem supports
+it, such as TestPyPI for Python packages and the `next` tag for npm packages.
Monitor all triggered workflows before
+starting the vote.
### Fory Community Vote
@@ -422,34 +428,35 @@ Content:
Hello, Apache Fory Community:
This is a call for vote to release Apache Fory
-version release-${release_version}-${rc_version}.
+v${release_version}-${rc_version}.
-Apache Fory - A blazingly fast multi-language serialization
-framework powered by JIT and zero-copy.
+Apache Fory is a blazingly fast multi-language serialization framework
+for idiomatic domain objects, schema IDL, and cross-language data
+exchange.
The discussion thread:
https://lists.apache.org/thread/xxr3od301g6v3ndj14zqc05byp9qvclh
The change lists about this release:
-https://github.com/apache/fory/compare/v0.12.0...v0.12.1-rc1
+https://github.com/apache/fory/compare/v${previous_release_version}...v${release_version}-${rc_version}
The release candidates:
-https://dist.apache.org/repos/dist/dev/fory/0.5.0-rc3/
+https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}/
The maven staging for this release:
-https://repository.apache.org/content/repositories/orgapachefory-1003
+https://repository.apache.org/content/repositories/orgapachefory-${maven_artifact_number}
Git tag for the release:
-https://github.com/apache/fory/releases/tag/v0.12.0-rc1
+https://github.com/apache/fory/releases/tag/v${release_version}-${rc_version}
If this release also publishes the Go module, include the Go submodule tag too:
-https://github.com/apache/fory/releases/tag/go/fory/v0.16.0
+https://github.com/apache/fory/releases/tag/go/fory/v${release_version}
Git commit for the release:
-https://github.com/apache/fory/commit/fae06330edd049bb960536e978a45b97bca66faf
+https://github.com/apache/fory/commit/${release_commit}
-The artifacts signed with PGP key [5E580BA4], corresponding to
-[[email protected]], that can be found in keys file:
+The artifacts signed with PGP key [${gpg_key_id}], corresponding to
+[${apache_email}], that can be found in keys file:
https://downloads.apache.org/fory/KEYS
The vote will be open for at least 72 hours until the necessary number of
votes are reached.
@@ -479,7 +486,7 @@ Thanks,
${name}
```
-After at least 3 +1 binding vote (from Fory Podling PMC member and committers)
and no veto,
+After at least 3 +1 binding votes from Apache Fory PMC members and no veto,
first, reply to the above voting thread to notify that the voting has ended.
```
@@ -510,7 +517,7 @@ Hello, Apache Fory Community,
The vote to release Apache Fory v${release_version}-${rc_version} has passed.
-The vote PASSED with 3 binding +1 and 0 -1 vote:
+The vote PASSED with 3 binding +1 votes and 0 -1 votes:
Binding votes:
@@ -525,7 +532,7 @@ Thanks,
${name}
```
-### What if vote fail
+### What if vote fails
If the vote failed, click "Drop" to drop the staging Maven artifacts.
@@ -535,8 +542,8 @@ Address the raised issues, then bump `rc_version` and file
a new vote again.
### Publish artifacts to SVN Release Directory
-- release_version: the release version for fory, like 0.5.0
-- release_candidate_version: the version for voting, like 0.5.0-rc1
+- release_version: the release version for fory, like 1.0.0
+- release_candidate_version: the version for voting, like 1.0.0-rc1
```bash
svn mv
https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}
https://dist.apache.org/repos/dist/release/fory/${release_version} -m "Release
fory ${release_version}"
@@ -546,7 +553,7 @@ In the repository at
https://dist.apache.org/repos/dist/dev/fory/, if any
outdated release_candidate_version are left behind when releasing the
release_version,
please clear them to keep the dev repository tidy.
-When `https://archive.apache.org/dist/fory/0.12.0/${release_version}` is
+When `https://archive.apache.org/dist/fory/${release_version}/` is
accessible (confirming that the release_version has been successfully released
and archived), we may clean up the previous release version in the release
repository,
leaving only the current version.
@@ -559,7 +566,7 @@ and [#285](https://github.com/apache/fory-site/pull/285).
#### Update Fory-Site
-In general, the following two key areas need to be modified:
+In general, the following key areas need to be modified:
1. Write a new announcement, for example:
Add a new markdown file under the blog folder:
@@ -579,15 +586,22 @@ The Apache Fory team is pleased to announce the [?]
release. This is a major rel
</dependency>
```
+3. Update the download page, checksum and signature examples, release notes
link, current docs, zh-CN translations, versioned docs snapshot,
`versions.json`, and `docusaurus.config.ts` default docs version.
+
#### Update Fory
-Submit a PR to https://github.com/apache/fury to update
[README](https://github.com/apache/fury/blob/main/README.md),
-like [#2207](https://github.com/apache/fury/pull/2207).
+Submit a PR to https://github.com/apache/fory to update
[README](https://github.com/apache/fory/blob/main/README.md),
+package metadata for the next development version, and user-facing install
snippets that should point at the latest
+released version.
-### Github officially released
+### GitHub officially released
You need to officially release this version in the Fory project
-Reference implementation: https://github.com/apache/fory/releases/tag/v0.12.0
+Reference implementation:
https://github.com/apache/fory/releases/tag/v${release_version}
+
+Create and push the final `v${release_version}` tag from the voted commit
after the vote passes. This tag triggers the
+final package publishing workflows for Python, compiler, JavaScript, Rust,
Dart, and C#. Monitor every workflow to
+completion before sending the announcement.
### Release Maven artifacts
@@ -611,16 +625,26 @@ Content:
Hi all,
The Apache Fory community is pleased to announce
-that Apache Fory {release_version} has been released!
+that Apache Fory ${release_version} is now available.
+
+Apache Fory is a blazingly fast multi-language serialization framework
+for idiomatic domain objects, schema IDL, and cross-language data
+exchange.
+
+This release includes ${pr_count} PRs from ${contributor_count} contributors.
+
+Highlights in ${release_version} include:
+
+- ...
-Apache Fory - A blazingly fast multi-language serialization
-framework powered by JIT and zero-copy.
+Release blog, with details and examples:
+https://fory.apache.org/blog/fory_${release_version_with_underscores}_release
The release notes are available here:
https://github.com/apache/fory/releases/tag/v${release_version}
For the complete list of changes:
-https://github.com/apache/fory/compare/v0.12.0...v${release_version}
+https://github.com/apache/fory/compare/v${previous_release_version}...v${release_version}
Apache Fory website: https://fory.apache.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]