Dear Apache Pulsar Committers, I hope this email finds you well. I wanted to share some important reminders regarding PR merging and release management. This reminder is for Apache Pulsar committers since they have access for these tasks. Please take a moment to review the following information:
Labeling PRs for Release Branches Before merging a PR, please ensure you label the releases where the PR should also be applied. Our current process involves adding release labels for the next pending releases so that we also cherry-pick fixes to maintenance branches. Always label non-breaking fixes to the supported maintenance version branches (currently branch-3.0 and branch-3.3). Right now 3.0.7 is the next release for branch-3.0 and 3.3.1 is the next release for branch-3.3. The respective PR labels are release/3.0.7 and release/3.3.1. These labels are crucial for searching PRs that need to be cherry-picked during the release process. Cherry-picking Process The cherry-picking process is partially explained in our release process documentation: https://pulsar.apache.org/contribute/release-process/#cherry-picking-changes-scheduled-for-the-release There's an ongoing discussion about improving this process: https://lists.apache.org/thread/j6qvt45rndnvjypcmqxsfmddqt41bxjv Current Process and Responsibilities It's sufficient to add the labels while merging. This is the expectation for the Apache Pulsar committer that merges a PR. A PR shouldn't be merged without checking that it contains the necessary labels. Committers actively working as release managers will handle cherry-picking and backporting. Release managers will request specific backports when a PR cannot be easily backported due to merge conflicts. Cherry-picking Cherry-picks should be performed in the same order as the PRs were merged in the master branch. This is necessary to reduce unnecessary merge conflicts in maintenance branches. Cherry-picking should retain a reference to the original commit. This can be achieved by passing the "-x" argument so that cherry-picks are performed with "git cherry-pick -x <commit hash>" command. Handling Merge Conflicts Merge conflicts are common, and it's necessary to understand the tooling and process to handle conflict resolution. Please refer to https://pulsar.apache.org/contribute/setup-git/ for suggestions on setting up git with proper merge & diff tools for maintaining Pulsar. In cases where a PR cannot be applied without substantial backporting effort or risk of breaking changes, a separate PR to the maintenance branch is requested from the original PR author. If the author is not willing to do this work, the release manager attempts to find a volunteer to handle this. In some cases, a large number of merge conflict signals that there's a dependent PR that is needed also in the maintenance branch which hasn't been cherry-picked. It is useful to review the dependency and consider cherry-picking it. Only non-breaking bug fixes or minor improvements (excludes PIP related changes) can be cherry-picked without discussion on the dev mailing list. Backporting is necessary when a fix depends on newer PIP related changes. Call for Volunteers We're looking for volunteers to help with these tasks. If you're interested in the release manager role for upcoming Pulsar releases, please: - Suggest it on this dev mailing list, or - Express interest on the Pulsar Slack #dev channel I'm one of the committers who can help with various Pulsar release maintenance tasks. Feel free to ping me or others on the Pulsar Slack #dev channel for assistance. We're excited to welcome new volunteers to sign up and contribute to these important processes! We are looking for volunteers that are already Apache Pulsar committers since that is a requirement for performing release management tasks. There are plenty of contribution opportunities for volunteers that aren't yet Apache Pulsar committers. There's a separate page about becoming a Apache Pulsar core developer and committer [1]. Best regards, Lari [1] https://pulsar.apache.org/contribute/become-core-developer/