diff --git a/website/src/release.md b/website/src/release.md index 56900e6a0..28b98f170 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: +The svn repository of the dev branch is: 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 to make sure the artifacts are uploaded correctly. +Visit to make sure the artifacts are uploaded correctly. ### Rescue @@ -209,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: @@ -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