One trick when sharing this with everyone is that almost every project has slightly different build systems or requirements, such as using Gradle or needing other artifacts released. But I think someone familiar with the release process (or how releases should work) should be able to convert it pretty easily with LLMs.
On Thu, May 7, 2026 at 9:21 AM Arnav Balyan <[email protected]> wrote: > Hi Russell, > > Thank you so much for putting this together, this would be really useful. > > I ran locally prepare-rc.sh and cancel-rc.sh in dry run mode, everything > works end to end on my side. > Both commands generated the expected [VOTE] and [RESULT][VOTE] email > templates and completed successfully. All 86 bats tests pass as well. > Could not test publish-release since I did not have a local RC available. > (On a side note since many ASF projects would find this useful, I was > wondering if it might be worth eventually living somewhere shared like an > ASF repo or a template, such that other projects could also benefit from > it?) > > Thank you so much for sharing this! > > Warm regards, > Arnav > > On Thu, May 7, 2026 at 3:23 AM Russell Spitzer <[email protected]> > wrote: > > > Hey Y'all, > > > > As we discussed briefly today, I think we can significantly improve > > Parquet's ability to do faster, more consistent releases by automating > more > > of the release process. > > > > To that end, I've taken a cue from Apache Polaris's automated release > > pipeline and put together a PR for Apache Parquet Java: > > > > Issue: https://github.com/apache/parquet-java/issues/3547 > > PR: https://github.com/apache/parquet-java/pull/3548 > > > > The basic idea is to leverage Apache-owned SVN, Nexus, and GPG keys as > > secrets in GitHub Actions. The release manager's workflow becomes: > > > > Prepare RC — Run the "Prepare Release Candidate" GitHub Action > > Vote — Send the generated vote email and monitor the vote > > If passing — Run the "Publish Release" GitHub Action > > If failing — Run the "Cancel Release Candidate" GitHub Action > > Each action defaults to dry-run mode, and the scripts can also be run > > locally outside of GitHub Actions. > > > > What's missing before we can fully test this is filing a few Apache Infra > > tickets to get the proper secrets (Nexus, SVN, GPG) configured on the > > parquet-java repository. I'm happy to file those if folks are on board > with > > the general approach. I've tested what I can locally with dry runs, but a > > real end-to-end test will require those secrets to be in place. > > > > Feedback and reviews welcome! > > > > Thanks, Russell > > >
