Description
Is your feature request related to a problem? Please describe.
A typical Apache Software Foundation release has the following workflow:
- Draft a release
- Start a VOTE on the dev mailing list
- If the VOTE fails, the release has failed - "go to step 1"
- If the VOTE passes, publish the release
As of this writing (Jul 9, 2025), the process is manual and undocumented. #648 attempts to address the documentation. The Apache Trusted Releases effort (as a part of the larger ASF Tooling Initiative) dictates that all releases should be automated. See https://tooling.apache.org/trusted-release.html for more details. To that end, this ticket proposes automating the mechanisms for the release including automated processes for:
- Drafting a release
- Verifying major portions of the release
- Publishing the release
The benefit of this issue are:
- Reduce the friction of being a release manager
- Ensure higher quality for releases through automated verification
- Ensure less release mistakes by reducing manual steps
- Enable the project to release more often
- Allow releases to be created on “trusted instances” rather than user’s computers
Describe the solution you'd like
There are various ways to do the automated release. The major acceptance criteria are:
- Automated testing as part of the release verification process
- Failing to publish the release if verification process fails
- The ability to redraft a release if verification fails or voting fails
- Drafting, verification, & publishing should all be able to be triggered via a single command
- Drafting a release notifies the dev mailing list for a vote
- The automation must have a descriptive README.md that covers the automation framework.
- The releases should not be built upon a user’s hardware, but only on “trusted instances” (for example, GitHub).
- A user can verify that the code was built on a “trusted instance”.
- A user can verify that the code was built from a specific Git commit.
- A user can verify the code was not modified.
- A user can verify the code was uploaded by a “trusted instance”. For example, all binaries could be uploaded via a GitHub workflow.
- In general, the process is public, reproducible, and contains all the information to trust the release.
Describe alternatives you've considered
The team has been working on documenting the manual processes required for release, but this has the issues noted above.
Additional context
Relevant Issues:
- Document release process and how to verify a release #648
- Polaris Release Cadence and Roadmap Alignment #584
Relevant Links:
- https://github.com/apache/polaris/milestones - Milestones for Polaris
- WIP Release infra stuff #485 - A WIP ideation
- https://tooling.apache.org/trusted-release.html - The Apache Trusted Release Platform
- https://www.apache.org/legal/release-policy - Apache Foundation release policy
In addition to this work, there are two other related efforts ongoing:
- GitHub Workflow for Helm Publishing
- GitHub Workflow for Docker Images