Design discussions only - Merge Train Visualization
Release notes
🧩 Problem to solve
On the UI, merge train appears as an abstract concept that allows users to merge multiple MRs consecutively without breaking the target. When adding an MR to a merge train, or even when starting a merge train, users don't have any visibility into the process that is being executed in the background. If users are able to see a visual for the process, the MRs listed before and after theirs, they would be able to make informed decisions with their merge strategy. They can get an approximate idea about the estimated time to merge, decide to drop their or another MR from the train for efficiency.
💬 User insights and findings supporting the need
We think that Developers, Platform Engineers, Release Managers would all benefit from using a page like this and understand they have different use cases or problems to solve when they visit the page.
-
Lack of visibility into train activities makes merge train less useable as a feature
- Sometimes even flaky tests can make an MR drop from a train, but there's no clear reason shown in the system message. Users don’t want to infinitely retry in a hope that one retry might finally fix everything
- Users want to know the position, the link to the queued merge requests, and an estimate of time required to merge
- Merging immediately is an emergency escape hatch that teams avoid to a large extent
- Users are not left wondering what’s happening to their MR once added to the queue. Presenting visibility and estimation is a good QoL improvement.
- When users don’t get to know what caused their merge request to drop from a train, its hard for them to fix the problem.
- No Slack integration makes it hard for users to follow when the train doesn’t merge as expected
📝 Feedback from old explorations to keep in mind
- There's no cap in the number of MRs that can be added to a train, but only 20 MRs can be processed in a parallel
- Users are interested in knowing an ETA or the queue position for their MR to trust on the feature more
- There can be as many merge trains in a project as the number of target branches
- Users want to know when a train is started/restartes
🎨 Proposal and user experience goal
In the design management section.
The goal is to provide users visibility into the train activities and integrating the touchpoint in to their current workflow.
🧇 Iterations
MVC
- Should allow users to see the position of their MR in relation to all the other items in the train
- Visibility into
removed
items - Ability to merge immediately in one click(it drops from train and merges immediately, with warning of course)
What does MVC not cover?
- Estimated time to merge
- Ability to rearrange MR position
Documentation
Available Tier
Premium +
Feature Usage Metrics
let's set up?
What does success look like, and how can we measure that?
Increased adoption of merge trains
Is this a cross-stage feature?
Need to keep groupcode review updated as the merge widget may be impacted.
What is the competitive advantage or differentiation for this feature?
Increases usability of merge trains, boosting the positioning against competing offerings.