You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by xu...@apache.org on 2025/09/18 16:34:01 UTC
(iceberg-rust) branch main updated: docs: update "how to release" (#1691)
This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-rust.git
The following commit(s) were added to refs/heads/main by this push:
new bd9aa634 docs: update "how to release" (#1691)
bd9aa634 is described below
commit bd9aa63484fcd3a568623acb86f2f2ce847f6a84
Author: Kevin Liu <ke...@users.noreply.github.com>
AuthorDate: Thu Sep 18 09:33:54 2025 -0700
docs: update "how to release" (#1691)
---
website/src/release.md | 90 +++++++++++++++++++++++++++++++-------------------
1 file changed, 56 insertions(+), 34 deletions(-)
diff --git a/website/src/release.md b/website/src/release.md
index 56900e6a..28b98f17 100644
--- a/website/src/release.md
+++ b/website/src/release.md
@@ -38,8 +38,8 @@ In the context of our release, we use several terms to describe different stages
Here's an explanation of these terms:
- `iceberg_version`: the version of Iceberg to be released, like `0.2.0`.
-- `release_version`: the version of release candidate, like `0.2.0-rc.1`.
- `rc_version`: the minor version for voting round, like `rc.1`.
+- `release_version`: the version of release candidate, like `0.2.0-rc.1`.
## Preparation
@@ -117,14 +117,16 @@ Please note that this version is the exact version of the release, not the relea
Download and setup `cargo-deny`. You can refer to [cargo-deny](https://embarkstudios.github.io/cargo-deny/cli/index.html).
-Running `python3 ./scripts/dependencies.py generate` to update the dependencies list of every package.
+Run `python3 ./scripts/dependencies.py generate` to update the dependencies list of every package.
+
+Run `python3 ./scripts/dependencies.py check` to verify the updated dependencies' license.
### Push release candidate tag
After bump version PR gets merged, we can create a GitHub release for the release candidate:
-- Create a tag at `main` branch on the `Bump Version` / `Patch up version` commit: `git tag -s "v0.2.0-rc.1"`, please correctly check out the corresponding commit instead of directly tagging on the main branch.
-- Push tags to GitHub: `git push --tags`.
+- Create a tag at `main` branch on the `Bump Version` / `Patch up version` commit: `git tag -s "v${release_version}"`, please correctly check out the corresponding commit instead of directly tagging on the main branch.
+- Push tags to GitHub: `git push origin "v${release_version}"`.
## ASF Side
@@ -145,7 +147,6 @@ After GitHub Release has been created, we can start to create ASF Release.
- `apache-iceberg-rust-${release_version}-src.tar.gz.asc`
- `apache-iceberg-rust-${release_version}-src.tar.gz.sha512`
- Check the header of the source code. This step needs docker to run.
-- Push the newly created branch to GitHub
This script will create a new release under `dist`.
@@ -163,7 +164,7 @@ dist
SVN is required for this step.
-The svn repository of the dev branch is: <https://dist.apache.org/repos/dist/dev/iceberg/iceberg-rust>
+The svn repository of the dev branch is: <https://dist.apache.org/repos/dist/dev/iceberg/>
First, checkout Iceberg to local directory:
@@ -178,22 +179,25 @@ Then, upload the artifacts:
```shell
# create a directory named by version
-mkdir /tmp/iceberg-dist-dev/${release_version}
+mkdir /tmp/iceberg-dist-dev/apache-iceberg-rust-${release_version}/
+
# copy source code and signature package to the versioned directory
-cp ${repo_dir}/dist/* /tmp/iceberg-dist-dev/iceberg-rust-${release_version}/
+cp ./dist/* /tmp/iceberg-dist-dev/apache-iceberg-rust-${release_version}/
+
# change dir to the svn folder
cd /tmp/iceberg-dist-dev/
+
# check svn status
svn status
+
# add to svn
-svn add ${release_version}
-# check svn status
-svn status
+svn add apache-iceberg-rust-${release_version}
+
# commit to SVN remote server
-svn commit -m "Prepare for ${release_version}"
+svn commit -m "Prepare for iceberg-rust ${release_version}"
```
-Visit <https://dist.apache.org/repos/dist/dev/iceberg/iceberg-rust/> to make sure the artifacts are uploaded correctly.
+Visit <https://dist.apache.org/repos/dist/dev/iceberg/> to make sure the artifacts are uploaded correctly.
### Rescue
@@ -209,7 +213,7 @@ Iceberg Community Vote should send email to: <de...@iceberg.apache.org>:
Title:
```
-[VOTE] Release Apache Iceberg Rust ${release_version} RC1
+[VOTE] Release Apache Iceberg Rust ${iceberg_version} ${rc_version}
```
Content:
@@ -219,11 +223,11 @@ Hello, Apache Iceberg Rust Community,
This is a call for a vote to release Apache Iceberg rust version ${iceberg_version}.
-The tag to be voted on is ${iceberg_version}.
+The tag to be voted on is v${release_version}.
The release candidate:
-https://dist.apache.org/repos/dist/dev/iceberg/iceberg-rust-${release_version}/
+https://dist.apache.org/repos/dist/dev/iceberg/apache-iceberg-rust-${release_version}/
Keys to verify the release candidate:
@@ -231,7 +235,7 @@ https://downloads.apache.org/iceberg/KEYS
Git tag for the release:
-https://github.com/apache/iceberg-rust/releases/tag/v${iceberg_version}
+https://github.com/apache/iceberg-rust/releases/tag/v${release_version}
Please download, verify, and test.
@@ -267,7 +271,7 @@ After at least 3 `+1` binding vote (from Iceberg PMC member), claim the vote res
Title:
```
-[RESULT][VOTE] Release Apache Iceberg Rust ${release_version} RC1
+[RESULT][VOTE] Release Apache Iceberg Rust ${iceberg_version} ${rc_version}
```
Content:
@@ -312,19 +316,35 @@ After downloading them, here are the instructions on how to verify them.
* Import keys:
-```bash
-curl https://downloads.apache.org/iceberg/KEYS -o KEYS
-gpg --import KEYS
-```
-* Verify the `.asc` file: ```gpg --verify apache-iceberg-rust-${iceberg_version}.tar.gz.asc```
-* Verify the checksums: ```shasum -a 512 -c apache-iceberg-rust-${iceberg_version}.tar.gz.sha512```
-* Verify license headers: ```docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check```
+ ```bash
+ curl https://downloads.apache.org/iceberg/KEYS -o KEYS
+ gpg --import KEYS
+ ```
+* Verify the `.asc` file:
+
+ ```bash
+ gpg --verify apache-iceberg-rust-*.tar.gz.asc
+ ```
+ Expects: `"apache-iceberg-rust-0.7.0-src.tar.gz: OK"`
+* Verify the checksums:
+
+ ```bash
+ shasum -a 512 -c apache-iceberg-rust-*.tar.gz.sha512
+ ```
+ Expects: `gpg: Good signature from ...`
* Verify build and test:
-```bash
-tar -xzf apache-iceberg-rust-${iceberg_version}.tar.gz
-cd apache-iceberg-rust-${iceberg_version}
-make build && make test
-```
+
+ ```bash
+ tar -xzf apache-iceberg-rust-*.tar.gz
+ cd apache-iceberg-rust-*/
+ make build && make test
+ ```
+* Verify license headers:
+
+ ```bash
+ docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check
+ ```
+ Expects: `INFO Totally checked _ files, valid: _, invalid: 0, ignored: _, fixed: 0 `
## Official Release
@@ -332,17 +352,17 @@ make build && make test
```shell
# Checkout the tags that passed VOTE
-git checkout ${release_version}
+git checkout "v${release_version}"
# Tag with the iceberg version
-git tag -s ${iceberg_version}
+git tag -s "v${iceberg_version}"
# Push tags to github to trigger releases
-git push origin ${iceberg_version}
+git push origin "v${iceberg_version}"
```
### Publish artifacts to SVN RELEASE branch
```shell
-svn mv https://dist.apache.org/repos/dist/dev/iceberg/iceberg-rust-${release_version} https://dist.apache.org/repos/dist/release/iceberg/iceberg-rust-${iceberg_version} -m "Release Apache Iceberg Rust ${iceberg_version}"
+svn mv https://dist.apache.org/repos/dist/dev/iceberg/apache-iceberg-rust-${release_version} https://dist.apache.org/repos/dist/release/iceberg/apache-iceberg-rust-${iceberg_version} -m "Release Apache Iceberg Rust ${iceberg_version}"
```
### Change Iceberg Rust Website download link
@@ -393,6 +413,8 @@ Apache Iceberg Rust website: https://rust.iceberg.apache.org/
Download Links: https://rust.iceberg.apache.org/download
+From official ASF distribution: https://dist.apache.org/repos/dist/release/iceberg/apache-iceberg-rust-${release_version}/
+
Iceberg Resources:
- Issue: https://github.com/apache/iceberg-rust/issues
- Mailing list: dev@iceberg.apache.org