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
> >
>

Reply via email to