1. Test the revision to be released 2. Prepare RC and vote (detailed later) 3. Publish (detailed later)
Run dev/release/release_rc.sh on a working copy of git@github.com:apache/iceberg-cpp not from your fork:
$ git clone git@github.com:apache/iceberg-cpp.git && cd iceberg-cpp $ dev/release/release_rc.sh ${VERSION} ${RC} (Send a vote email to dev@iceberg.apache.org. You can use a draft shown by release_rc.sh for the email.)
Here is an example to release RC0 of version 0.1.0:
$ GH_TOKEN=${YOUR_GITHUB_TOKEN} dev/release/release_rc.sh 0.1.0 0
The arguments of release_rc.sh are the version and the RC number. If RC0 has a problem, we'll increment the RC number such as RC1, RC2 and so on.
Requirements to run release_rc.sh:
* You must be an Apache Iceberg committer or PMC member * You must prepare your PGP key for signing
If you don't have a PGP key, https://infra.apache.org/release-signing.html#generate may be helpful.
Your PGP key must be published in the KEYS file, which is hosted at:
* https://downloads.apache.org/iceberg/KEYS
See the header comment of them for how to add a PGP key.
If you are a first-time release manager, you need to add your public key to this file. To prevent formatting errors, please use the following commands instead of editing the file manually:
$ svn co https://dist.apache.org/repos/dist/release/iceberg $ cd iceberg
$ echo "" >> KEYS # append a newline $ gpg --list-sigs <YOUR_KEY_ID> >> KEYS # append signatures $ gpg --armor --export <YOUR_KEY_ID> >> KEYS # append public key block $ svn commit -m "Add GPG key for <YOUR_NAME>"
We need to publish to apache.org to publish a new release.
Run dev/release/release.sh to publish to apache.org:
$ GH_TOKEN=${YOUR_GITHUB_TOKEN} dev/release/release.sh ${VERSION} ${RC}
Add the release to ASF's report database via Apache Committee Report Helper
We have a script for verifying a RC.
You must install the following to run the script:
* `curl` * `gpg` * `shasum` or `sha512sum` * `tar` * `cmake` (3.25 or higher) * C++23 compliant compiler (GCC 14+, Clang 16+, MSVC 2022+)
To verify a RC, run the following:
$ dev/release/verify_rc.sh ${VERSION} ${RC}
If the verification is successful, the message RC looks good! is shown.