Release#
Principles#
The Apache Arrow Release follows the guidelines defined at the Apache Software Foundation Release Policy.
Prepare#
Some steps of the release require being a committer or a PMC member.
A GPG key in the Apache Web of Trust to sign artifacts. This will have to be cross signed by other Apache committers/PMC members. You must set your GPG key ID in
dev/release/.env
(seedev/release/.env.example
for a template).The GPG key needs to be added to this Subversion repository for dev and Subversion repository for release.
An Artifactory API key (log in with your ASF credentials, then generate it from your profile in the upper-right). You must set the Artifactory API key in
dev/release/.env
(seedev/release/.env.example
for a template).A GitHub personal access token that has at lease
workflow
scope. You must set the GitHub personal access token indev/release/.env
(seedev/release/.env.example
for a template).Clone apache/arrow and prepare
apache/arrow
’sdev/release/.env
(seedev/release/.env.example
for a template) likeapache/arrow-flight-sql-postgresql
’sdev/release/.env
.
Create a RC#
Prepare a new RC when you create a first RC:
rake release:rc:prepare ARROW_SOURCE=/path/to/apache/arrow/repository/
You need to specify your cloned apache/arrow
repository.
This creates a prepare-${VERSION}
branch on local repository. You
need to push it and open a new pull request for it.
Tag for a new RC after the pull request is merged:
rake release:rc:tag
This creates a new tag for the new RC. You check it and push to
apache/arrow-flight-sql-postgresql
.
Artifacts for the new RC are built automatically on GitHub Actions.
Sign these artifacts:
rake release:rc:sign
Note that you don’t need to wait for finishing GitHub Actions jobs before you run the above command line. Because the above command line waits for finishing GitHub Actions jobs automatically.
Upload Linux packages:
rake release:rc:linux ARROW_SOURCE=/path/to/apache/arrow/repository/
You need to specify your cloned apache/arrow
repository. You must
prepare its dev/release/.env
(not only
apache/arrow-flight-sql-postgresql
’s dev/release/.env
.)
Re-run RC verify CI jobs on GitHub Actions:
rake release:rc:verify
Start a vote thread for the new RC on dev@arrow.apache.org
. You can
generate a vote e-mail template:
rake release:vote
Approval requires a net of 3 +1 votes from PMC members. A release cannot be vetoed.
How to verify#
Install dependencies#
At minimum, you will need:
Apache Arrow C++ (Apache Arrow Flight SQL must be enabled)
C++ compiler
Git
GnuPG
Meson
Ninja
PostgreSQL 15 or later
cURL
jq
shasum (built into macOS) or sha256sum/sha512sum (on Linux)
Verify#
Clone the project:
git clone https://github.com/apache/arrow-flight-sql-postgresql.git
Run the verification script:
cd arrow-flight-sql-postgresql
# Pass the version and the RC number.
# This stops after build is succeeded. You need to verify manually after it.
# See "Hints" the script shows what you do.
dev/release/verify-rc.sh 0.1.0 1
These environment variables may be helpful:
ARROW_TMPDIR=/path/to/directory
to specify the temporary directory used. Using a fixed directory can help avoid repeating the same setup and build steps if the script has to be run multiple times.TEST_SOURCE_MANUAL=0
to disable manual verification.
Once finished and once the script passes, reply to the mailing list
vote thread with a +1
or a -1
.
Post-release tasks#
After the release vote, we must undertake the following tasks:
Publish artifacts:
rake release:rc:publish ARROW_SOURCE=/path/to/apache/arrow/repository/
This command line opens Apache reporter by your Web browser. Don’t forget to register the new release by the form in the page.
This command line creates the tag for the new release but doesn’t push it automatically by default. Don’t forget to push it.
Publish release blog post. The following command line generates the
blog post outline, then fill out outline and create a PR on
apache/arrow-site
:
rake release:announce:blog PREVIOUS_VERSION=X.Y.Z
Announce the new release on mailing lists. The following command line
generates the announce e-mail outline, then fill out outline and send
the announce e-mail to announce@apache.org
, user@arrow.apache.org
and dev@arrow.apache.org
. You must use your @apache.org
e-mail
address to send an e-mail to announce@apache.org
:
rake release:announce:mail
Announce the new release on pgsql-announce@postgresql.org
.
You need to create your PostgreSQL community account: https://www.postgresql.org/account/
You need to join the Apache Arrow organization on PostgreSQL community. TODO: Create it.
The following command line generates the announce e-mail outline, then fill out outline and submit it to https://www.postgresql.org/account/edit/news/ :
rake release:announce:postgresql
Bump version:
rake version:bump NEW_VERSION=X.Y.Z