Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
N/A
Description
Phase 1 for the auto-merge feature.
Goals
- Prevent merging Pull Requests if they will cause a conflict anywhere in the merge chain
- Assess the merge chain health periodically and notify developers what is causing a merge conflict
Desired end-result: a clean mergeable chain over time, enabling the automation of merges (merge PR's -> auto-merge -> merge-queue).
Implementation
Uses GitHub Actions workflows.
- 1. A stateless workflow, checking if a patch can be merged all the way up in the chain. Will run as a Pull Request check and block a merge if the proposed patch will cause a conflict. If the main branches chain is already broken at some edge, the workflow will attempt merges only up to the last known healthy edge, to avoid blocking a Pull Request because someone else broke the chain earlier.
- 2. A stateful workflow that will periodically check the main branch chain health. Will gather detailed information about what introduced the conflict and report back on a set of configured channels (Slack/Zulip). The workflow does synthetic merges, so the merge results are cumulative. If an edge is broken, it moves on to the next, so the final status will reflect the entire chain.
Process
- Phase 1 is not an auto-merge tool but enables developers to spot and resolve the conflicts early, allowing for a much smoother release process.
- The notifications should allow the developers to rapidly identify who is responsible for a conflict and act early for a resolution.
- The Pull Request check workflow is an additional guardrail, saving anyone's time on checking if their patch will cause a conflict later in the chain.
Attachments
Issue Links
- relates to
-
MDBF-105 Buildbot - Protected Branches Stage 2: autopush
-
- Closed
-
-
MDBF-523 protect branches against cross-version pushes
-
- Open
-
- split to
-
MDBF-1220 Auto-created forward-merge pull requests (Phase 2 of MDBF-895)
-
- Open
-
-
MDBF-1221 Merge queue and automerge of forward-merge PRs (Phase 3 of MDBF-895)
-
- Open
-
- links to
(4 links to)