The Release Manager must have at least committer status. Some tasks require PMC membership and are marked accordingly throughout this guide.
Overview
The Apache Arrow release follows the Apache Software Foundation Release Policy.Release Principles
- Releases are created from maintenance branches
- Feature freeze occurs when the maintenance branch is created
- Only bug fixes are accepted after feature freeze (unless community consensus allows an exception)
- Issues labeled as
blockermust be resolved before creating a release candidate - Pull requests are voted on by the PMC, requiring a net of 3 +1 votes from PMC members
Prerequisites
Required Tools and Access
Required Tools and Access
GPG Key Setup
GPG Key Setup
You need a GPG key in the Apache Web of Trust to sign artifacts.
Add key to SVN repositories
Add your GPG key to both:(Requires PMC membership)
Environment Configuration
Environment Configuration
Create
dev/release/.env from dev/release/.env.example and configure the variables as described in the example file.Build Environment
Build Environment
- No Arrow environment variables should be defined except
CCorCXXif building with a specific compiler - Ensure you have adequate RAM:
- Minimal build: 1GB
- Minimal debug build with tests: 4GB
- Full build: 8GB
Preparing for a Release
Communicate with the community
In advance of the release date, announce the upcoming release via:
- Zulip
- Mailing list
- Bi-weekly community call
Create feature freeze
After feature freeze, no new features are allowed unless there’s community consensus. Only bug fixes will be accepted.
Resolve blockers
All issues labeled
blocker must be resolved before creating the first release candidate.Ensure proper milestones
Verify that resolved GitHub issues have the appropriate milestone set for proper changelog generation:The report shows any issues with incorrect version numbers.
Creating a Release Candidate
Initial Release Candidate
For the first RC of a major release, create a maintenance branch from main.Create release candidate branch and tag
verify-rc.yml: Verifies the release candidaterelease_candidate.yml: Signs source code and creates a GitHub pre-release
Start the vote
Once automatic verification passes, start the vote thread on dev@arrow.apache.org:Voting requires:
- Net of 3 +1 votes from PMC members
- Vote open for at least 72 hours
- Cannot be vetoed
Follow-up Release Candidates
If issues are found during verification:Patch Releases
Patch releases are created for major breaking issues like security fixes or broken packages.Request patch release
Any developer can request a patch release by emailing dev@arrow.apache.org with the reason. Consensus and a willing Release Manager are required.
Tag issues for backport
Committers tag issues for the next patch release using the
backport-candidate label.Create patch release checklist
- Create milestone
- Create maintenance branch from previous release
- Include the issue requiring the patch
- Add new milestone to issues with
backport-candidatelabel - Cherry-pick issues into maintenance branch
Post-Release Tasks
After the release vote passes, complete these tasks:Update package managers
- Homebrew
- MSYS2
- vcpkg
- Conan
apache-arrow, apache-arrow-glib: X.Y.ZUpload to package repositories
- RubyGems
- PyPI
- CRAN (R)
Requires account on https://rubygems.org/ with owner permissions.To add new owners:Upload (after Homebrew and MSYS2 are updated):
Update Arrow Cookbook
Follow the documentation in the Arrow Cookbook repository.
Announce the release
Write an announcement (see example) and send to:
- announce@apache.org (must send from your @apache.org email)
- dev@arrow.apache.org
Publish blog post
- Clone https://github.com/apache/arrow-site
- Create new branch for blog post PR
- Duplicate recent blog post in
_posts/ - Update filename and YAML metadata with new release date (GMT)
- Update content as needed
- Create PR and request community help filling in details
Announce on social media
Post about the release on official accounts (PMC members have access):
- BlueSky: @arrow.apache.org
- LinkedIn: https://www.linkedin.com/company/apache-arrow/
Add to Apache Reporter
Add release data to Apache Reporter.
Remove old artifacts (PMC)
Remove RC artifacts and old releases per ASF policy:
Testing Before Release
Some Release Managers prefer testing before creating the first RC:Create dummy PR
Create a PR from
maint-X.Y.Z to main titled “WIP: Dummy PR to check maint-X.Y.Z status”.Verification
See the Release Verification Guide for detailed steps on verifying:- Source release integrity
- Binary package functionality
- Signature verification
- License compliance
Troubleshooting
GPG signing issues on macOS
GPG signing issues on macOS
If you get “ioctl” errors when signing:Then retry the signing command.
Cherry-pick conflicts
Cherry-pick conflicts
If automated cherry-picking fails:
- Manually cherry-pick the problematic commits
- Resolve conflicts
- Continue the release process
- Note: PRs without corresponding GitHub issues must be cherry-picked manually
Crossbow failures
Crossbow failures
Check the Crossbow dashboard for specific job failures. Common issues:
- Timeout: Rerun the job
- Dependency version mismatch: Update the build scripts
- Platform-specific build failure: May need architecture-specific fixes
Resources
ASF Release Policy
Official Apache Software Foundation release guidelines
Archery Utility
Arrow’s development and release management tool
Release Verification
Guide to verifying Arrow releases
Crossbow
Automated build and test system for releases