From af868150c534f960eaa944fd2b29c7a1c4f906ff Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:03:50 -0700 Subject: [PATCH 01/14] include python3 ./scripts/dependencies.py check --- website/src/release.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/src/release.md b/website/src/release.md index 56900e6a06..37db4b88fb 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -117,7 +117,8 @@ 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 dependencies' license. ### Push release candidate tag From ce37da8fd5f0720244da2c594e78d755e1fe27e6 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:08:56 -0700 Subject: [PATCH 02/14] update svn instructions --- website/src/release.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/website/src/release.md b/website/src/release.md index 37db4b88fb..5aeda6e6f3 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -179,22 +179,22 @@ 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} +svn add apache-iceberg-rust-${release_version} # check svn status svn status # commit to SVN remote server -svn commit -m "Prepare for ${release_version}" +svn commit -m "Prepare for iceberg-rust ${release_version}" ``` -Visit to make sure the artifacts are uploaded correctly. +Visit to make sure the artifacts are uploaded correctly. ### Rescue From 85208864ab0345b2f926d03f1ff3dcb2d6ede315 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:12:20 -0700 Subject: [PATCH 03/14] dont need to push release branch to github --- website/src/release.md | 1 - 1 file changed, 1 deletion(-) diff --git a/website/src/release.md b/website/src/release.md index 5aeda6e6f3..c735a6197c 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -146,7 +146,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`. From 680369a2a71b08b5975b60aeec96993e09e6525d Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:13:01 -0700 Subject: [PATCH 04/14] url --- website/src/release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/release.md b/website/src/release.md index c735a6197c..a3bd708317 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -163,7 +163,7 @@ dist SVN is required for this step. -The svn repository of the dev branch is: +The svn repository of the dev branch is: First, checkout Iceberg to local directory: From 051722954e26c273f29cdfb3b90b4ebb85e6b99a Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:13:28 -0700 Subject: [PATCH 05/14] spacing --- website/src/release.md | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/release.md b/website/src/release.md index a3bd708317..397aa8c6e2 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -118,6 +118,7 @@ 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). Run `python3 ./scripts/dependencies.py generate` to update the dependencies list of every package. + Run `python3 ./scripts/dependencies.py check` to verify the dependencies' license. ### Push release candidate tag From 74335f9f08737a710fb038a56335de9fa7c6bed1 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:13:50 -0700 Subject: [PATCH 06/14] word --- website/src/release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/release.md b/website/src/release.md index 397aa8c6e2..9c6d660f91 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -119,7 +119,7 @@ Download and setup `cargo-deny`. You can refer to [cargo-deny](https://embarkstu Run `python3 ./scripts/dependencies.py generate` to update the dependencies list of every package. -Run `python3 ./scripts/dependencies.py check` to verify the dependencies' license. +Run `python3 ./scripts/dependencies.py check` to verify the updated dependencies' license. ### Push release candidate tag From 49c6f0073e12e161b68aceb9b6a940d3c8b44edb Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:15:10 -0700 Subject: [PATCH 07/14] spacing for readability --- website/src/release.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/website/src/release.md b/website/src/release.md index 9c6d660f91..8d6a8defff 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -180,16 +180,19 @@ Then, upload the artifacts: ```shell # create a directory named by version mkdir /tmp/iceberg-dist-dev/apache-iceberg-rust-${release_version}/ + # copy source code and signature package to the versioned directory 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 apache-iceberg-rust-${release_version} -# check svn status -svn status + # commit to SVN remote server svn commit -m "Prepare for iceberg-rust ${release_version}" ``` From 1168b3e8ec7648922e435bbec8305ce4e7236fec Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:31:30 -0700 Subject: [PATCH 08/14] fix link and vars --- website/src/release.md | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/website/src/release.md b/website/src/release.md index 8d6a8defff..5cb912fbad 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 @@ -125,8 +125,8 @@ Run `python3 ./scripts/dependencies.py check` to verify the updated dependencies 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 @@ -213,7 +213,7 @@ Iceberg Community Vote should send email to: : Title: ``` -[VOTE] Release Apache Iceberg Rust ${release_version} RC1 +[VOTE] Release Apache Iceberg Rust ${iceberg_version} ${rc_version} ``` Content: @@ -223,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: @@ -271,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: @@ -320,13 +320,13 @@ After downloading them, here are the instructions on how to verify them. 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 the `.asc` file: ```gpg --verify apache-iceberg-rust-*.tar.gz.asc``` +* Verify the checksums: ```shasum -a 512 -c apache-iceberg-rust-*.tar.gz.sha512``` * Verify license headers: ```docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check``` * Verify build and test: ```bash -tar -xzf apache-iceberg-rust-${iceberg_version}.tar.gz -cd apache-iceberg-rust-${iceberg_version} +tar -xzf apache-iceberg-rust-*.tar.gz +cd apache-iceberg-rust-*/ make build && make test ``` @@ -338,15 +338,15 @@ make build && make test # Checkout the tags that passed VOTE git checkout ${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 @@ -397,6 +397,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 From 49ba0a4492532a098f54eae68ba406fc19153b2e Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:35:24 -0700 Subject: [PATCH 09/14] order --- website/src/release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/release.md b/website/src/release.md index 5cb912fbad..88f2fef9d6 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -322,13 +322,13 @@ gpg --import KEYS ``` * Verify the `.asc` file: ```gpg --verify apache-iceberg-rust-*.tar.gz.asc``` * Verify the checksums: ```shasum -a 512 -c apache-iceberg-rust-*.tar.gz.sha512``` -* Verify license headers: ```docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check``` * Verify build and test: ```bash tar -xzf apache-iceberg-rust-*.tar.gz cd apache-iceberg-rust-*/ make build && make test ``` +* Verify license headers: ```docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check``` ## Official Release From f255983929c25cd4bfd3ce24cb9a1c042be6b6e5 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:37:54 -0700 Subject: [PATCH 10/14] tag --- website/src/release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/release.md b/website/src/release.md index 88f2fef9d6..b0427faf44 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -336,7 +336,7 @@ 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 "v${iceberg_version}" # Push tags to github to trigger releases From 4f5a4e1bccfccd1d35dffad704d9453546de626c Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Wed, 17 Sep 2025 19:42:53 -0700 Subject: [PATCH 11/14] version --- website/src/release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/release.md b/website/src/release.md index b0427faf44..a66d59685e 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -235,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. From 7287caddc87b7deb554c8a55a57cf4bbcb823232 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Thu, 18 Sep 2025 07:30:32 -0700 Subject: [PATCH 12/14] order --- website/src/release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/release.md b/website/src/release.md index a66d59685e..e430b39aa3 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -322,13 +322,13 @@ gpg --import KEYS ``` * Verify the `.asc` file: ```gpg --verify apache-iceberg-rust-*.tar.gz.asc``` * Verify the checksums: ```shasum -a 512 -c apache-iceberg-rust-*.tar.gz.sha512``` +* Verify license headers: ```docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check``` * Verify build and test: ```bash tar -xzf apache-iceberg-rust-*.tar.gz cd apache-iceberg-rust-*/ make build && make test ``` -* Verify license headers: ```docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check``` ## Official Release From 5c532e3b7a16b16a7cb5a3797a87c9e2a7aa90cd Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Thu, 18 Sep 2025 07:37:32 -0700 Subject: [PATCH 13/14] md formatting --- website/src/release.md | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/website/src/release.md b/website/src/release.md index e430b39aa3..ec9f593daa 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -316,19 +316,32 @@ 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-*.tar.gz.asc``` -* Verify the checksums: ```shasum -a 512 -c apache-iceberg-rust-*.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 + ``` +* Verify the checksums: + + ```bash + shasum -a 512 -c apache-iceberg-rust-*.tar.gz.sha512 + ``` +* Verify license headers: + + ```bash + docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check + ``` * Verify build and test: -```bash -tar -xzf apache-iceberg-rust-*.tar.gz -cd apache-iceberg-rust-*/ -make build && make test -``` + + ```bash + tar -xzf apache-iceberg-rust-*.tar.gz + cd apache-iceberg-rust-*/ + make build && make test + ``` ## Official Release From 49ce3e600d8b181543bbcdb012f31ce967e114fe Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Thu, 18 Sep 2025 07:40:47 -0700 Subject: [PATCH 14/14] format --- website/src/release.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/website/src/release.md b/website/src/release.md index ec9f593daa..28b98f1700 100644 --- a/website/src/release.md +++ b/website/src/release.md @@ -325,16 +325,13 @@ After downloading them, here are the instructions on how to verify them. ```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 ``` -* Verify license headers: - - ```bash - docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check - ``` + Expects: `gpg: Good signature from ...` * Verify build and test: ```bash @@ -342,6 +339,12 @@ After downloading them, here are the instructions on how to verify them. 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