- Test the revision to be released
- Prepare RC and vote (detailed later)
- Publish (detailed later)
- Announce the new release on the mailing list (detailed later)
- Announce the new release on social media (detailed later)
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 GnuPG
We 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/.envSee
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:
- https://dist.apache.org/repos/dist/dev/arrow/KEYS
- https://dist.apache.org/repos/dist/release/arrow/KEYS
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 KEYSYou can use dev/release/release_rc.sh.
Requirements to run release_rc.sh:
- You must be an Apache Arrow committer or PMC member
- You must prepare your PGP key for signing
Run dev/release/release_rc.sh on a working copy of
[email protected]:apache/arrow-swift not your fork:
$ git clone [email protected]:apache/arrow-swift.git
$ cd arrow-swift
$ dev/release/release_rc.sh ${VERSION} ${RC}
(Send a vote email to [email protected].
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 0The 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:
- Publish the source archive to apache.org
Run dev/release/release.sh on a working copy of
[email protected]: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 0Add the release to ASF's report database via Apache Committee Report Helper.
Send an email to "[email protected]" from your Apache email, CC'ing [email protected]/[email protected]. See an example post.
To: [email protected]
CC: [email protected], [email protected]
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:
curlgogpgshasumorsha256sum/sha512sumswift5.10 or latertar
To 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 0If the verification is successful, the message RC looks good! is shown.