Hi, I would like to propose a change in our release process.
The rationale for the change is to avoid introducing new issues once a Release Candidate has already been cut by only merging specific commits to new release candidates. Currently once a new Release Candidate is required we drop the previous version branch and create a new Release Candidate from the master branch on the repository [1]. This has the problem that we might introduce new bugs to the Release creating the need of cutting further release candidates. As an example, for the release 7.0.0, 10 release candidates were required and for the release 8.0.0 there was the need to remove a specific commit that introduced some new issues [2]. For the release 8.0.0 we were able to find it early but it could have potentially been introduced and created the need for further RCs. I would like to propose the following workflow. When creating the initial RC, create both an rc1 branch and the version branch from master. release-x.0.0 and release-x.0.0.rc1 If a new RC is required, drop the release-x.0.0 (as we do today) and create a new RC branch from the previous RC branch (instead of master), then cherry pick only the specific commits that have been identified to be part of the new release candidate. We can automate the cherrypick process via a script specifying the JIRA tickets or the commit hashes that we want to add to the new release candidate. Once the new RC branch is ready, create a new version branch from it and proceed as today. The commits to be added to the release once a release candidate has already been cut will usually be fixes for the release but could also be features if there is community consensus that a feature must be introduced to the release. This change will allow us to have a more granular control of what goes in the release once a release candidate has been cut and speed up the release by focusing both the release manager's and the community's efforts and potentially reducing the number of RCs to be created and verified. Thanks, Raúl [1] https://cwiki.apache.org/confluence/display/ARROW/Release+Management+Guide [2] https://github.com/apache/arrow/pull/12590#issuecomment-1116144088