This step is needed only when you act as a release manager the first time.
We use the following variables in multiple steps:
GH_TOKEN: GitHub personal access token to automate GitHub related operationsGPG_KEY_ID: PGP key ID that is used for signing official artifacts by GnuPGWe use dev/release/.env to share these variables in multiple steps. You can use dev/release/.env.example as a template:
$ cp dev/release/.env{.example,} $ chmod go-r dev/release/.env $ editor dev/release/.env
See https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens how to prepare GitHub personal access token for GH_TOKEN.
Note that you also need to install gh command because our scripts use gh command to use GitHub API. See https://github.com/cli/cli#installation how to install gh command.
If you don't have a PGP key for GPG_KEY_ID, see https://infra.apache.org/release-signing.html#genegrate how to generate your PGP key.
Your PGP key must be registered to the followings:
See the header comment of them how to add a PGP key.
Apache arrow committers can update them by Subversion client with their ASF account. e.g.:
$ svn co https://dist.apache.org/repos/dist/dev/arrow $ cd arrow $ head KEYS (This shows how to update KEYS) $ svn ci KEYS
You can use dev/release/release_rc.sh.
Requirements to run release_rc.sh:
Run dev/release/release_rc.sh on a working copy of git@github.com:apache/arrow-swift not your fork:
$ git clone git@github.com:apache/arrow-swift.git $ cd arrow-swift $ dev/release/release_rc.sh ${VERSION} ${RC} (Send a vote email to dev@arrow.apache.org. You can use a draft shown by release_rc.sh for the email.)
Here is an example to release 21.0.0 RC0:
$ dev/release/release_rc.sh 21.0.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.
We need to do the followings to publish a new release:
Run dev/release/release.sh on a working copy of git@github.com:apache/arrow-swift not your fork to publish the source archive to apache.org:
$ dev/release/release.sh ${VERSION} ${RC}
Here is an example to release 21.0.0 RC0:
$ dev/release/release.sh 21.0.0 0
Add the release to ASF's report database via Apache Committee Report Helper.
Send an email to “announce@apache.org” from your Apache email, CC'ing dev@arrow.apache.org/user@arrow.apache.org. See an example post.
To: announce@apache.org CC: dev@arrow.apache.org, user@arrow.apache.org Subject: [ANNOUNCE] Apache Arrow Swift 21.0.0 released The Apache Arrow community is pleased to announce the Arrow Swift 21.0.0 release. The release is available now. Source archive: https://www.apache.org/dyn/closer.lua/arrow/apache-arrow-swift-21.0.0/ On Swift Package Index: https://swiftpackageindex.com/apache/arrow Read the full changelog: https://github.com/apache/arrow-swift/releases/tag/v21.0.0 What is Apache Arrow? --------------------- Apache Arrow is a universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics. It houses a set of canonical in-memory representations of flat and hierarchical data along with multiple language-bindings for structure manipulation. It also provides low-overhead streaming and batch messaging, zero-copy interprocess communication (IPC), and vectorized in-memory analytics libraries. Please report any feedback to the GitHub repository: https://github.com/apache/arrow-swift/issues https://github.com/apache/arrow-swift/discussions Regards, The Apache Arrow community.
Make a post on our BlueSky and LinkedIn accounts. (Ask your fellow PMC members for access if need be, or ask a PMC member to make the post on your behalf.) The post should link to the blog post. See example BlueSky post and example LinkedIn post.
We have a script to verify a RC.
You must install the following commands to use the script:
curlgogpgshasum or sha256sum/sha512sumswift 5.10 or latertarTo verify a RC, run the following command line:
$ dev/release/verify_rc.sh ${VERSION} ${RC}
Here is an example to verify the release 21.0.0 RC0:
$ dev/release/verify_rc.sh 21.0.0 0
If the verification is successful, the message RC looks good! is shown.