Release Process¶
This guide is for Apache Iceberg committers and PMC members who are managing a release.
Overview¶
- Test the revision to be released
- Prepare a release candidate (RC) and start a vote
- Publish the release after the vote passes
Prerequisites¶
- You must be an Apache Iceberg committer or PMC member
- Required tools:
git,gh(GitHub CLI),gpg,svn - A PGP key for signing (see Apache release signing guide)
Setting Up Your PGP Key¶
Your PGP key must be published in the KEYS file. For first-time release managers:
# Check out the release distribution directory
svn co https://dist.apache.org/repos/dist/release/iceberg
cd iceberg
# Append your GPG public key
echo "" >> KEYS
gpg --list-sigs <YOUR_KEY_ID> >> KEYS
gpg --armor --export <YOUR_KEY_ID> >> KEYS
svn commit -m "Add GPG key for <YOUR_NAME>"
Step 1: Prepare RC and Vote¶
Run release_rc.sh on a working copy of apache/iceberg-cpp (not your fork):
git clone git@github.com:apache/iceberg-cpp.git && cd iceberg-cpp
GH_TOKEN=${YOUR_GITHUB_TOKEN} dev/release/release_rc.sh ${VERSION} ${RC}
For example, to release RC0 of version 0.3.0:
The script will:
- Tag the release candidate (e.g.,
v0.3.0-rc0) - Wait for the GitHub Actions RC workflow to build the source tarball
- Download and sign the tarball
- Upload to ASF's dev distribution
- Print a draft vote email for
dev@iceberg.apache.org
If an RC has problems, increment the RC number (RC1, RC2, etc.) and repeat.
Step 2: Publish¶
After the vote passes (requires 72 hours and at least 3 binding +1 votes), publish the release:
The script will:
- Create the final release tag (e.g.,
v0.3.0) - Move the RC artifacts from dev to release distribution
- Create a GitHub Release with the source tarball and signatures
- Clean up old releases from the distribution directory
- Print a draft announcement email
After running the script, add the release to ASF's report database.