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

Reply via email to