Forward Mergers

Overview

The forward mergers are automated pull requests to merge a branch in burndown into the next versioned branch. For example merging branch-22.12 into branch-23.02. This ensures all changes to the current branch are reflected in the next version.

Forward merging is implemented with the ops-bot forward-merger plugin. The plugin is activated for a repository by adding forward_merger: true to .github/ops-bot.yaml.

Intended audience

Developers

Project Leads

Operations

Forward Mergers

During the release process, the branch for the next release is created and set as default. For any repository in which the forward-merger plugin is enabled, forward-mergers automatically merge any commits made to the release branch to the latest default branch during burn down.

When Forward Merging Fails

It is important to note that the forward-merge jobs will sometimes fail due to merge conflicts, and will request a manual merge to be done. Never use the GitHub Web UI to fix the merge conflicts as it will cause changes in the default branch to be merged into the release branch. Please use the following steps to fix the merge conflicts manually:

Using the example of branch-24.08 release branch and a new default branch-24.10.

git checkout branch-24.08
git pull <rapidsai remote>
git checkout branch-24.10
git pull <rapidsai remote>
git checkout -b branch-24.10-merge-24.08
git merge --no-squash branch-24.08
# Fix any merge conflicts caused by this merge
git commit -am "Merge branch-24.08 into branch-24.10"
git push <personal fork> branch-24.10-merge-24.08

Once this is done, open a PR that targets the new default branch (branch-24.10 in this example) with your changes.

IMPORTANT: When merging this PR, do not use the auto-merger (i.e. the /merge comment). Instead, an admin must manually merge by changing the merging strategy to Create a Merge Commit. Otherwise, history will be lost and the branches become incompatible.

Once this PR is approved and merged, the original forward-merger PR should automatically be merged since it will contain the same commit hashes.