Branch Merge Queues
Branch merge queues are a way for us to continue a branch merge proposal through code review and follow it all the way into being merged into the branch, whether by a human, or a robot like Tarmac. Basically, it's PQM with Launchpad integration and without legacy arch support.
As a developer using Launchpad for development, I want to queue merges to be handled by a bot so that I can do more interesting work like actually writing code.
Rationale
We are doing this now to reduce the pain the launchpad team experiences in the current PQM/buildbot story. It will also provide benefits to existing users of tarmac (U1, OpenStack) by clarifying the automated merge story on Launchpad itself.
Stakeholders
- U1 - Ubuntu One uses Tarmac because it's much easier to set up than PQM, and much easier to maintain. They are 90% there, and would like some merge queues to make sure the story is complete. I talk with dobey, who is on the ops+ team on U1, regularly about this.
- Launchpad - I spoke with Gary at the Launchpad Epic about what the current issues are with the PQM/buildbot story. There are commonly so many moving parts that it makes it difficult to work with.
Constraints and Requirements
Must
The new behavior must provide a full replacement to the queuing/merging that PQM provides, and allow users to either easily identify merges they must do OR allow users to set up a bot to merge it for them.
Workflows
See Code/MergeQueues for user stories and planning.
Success
How will we know when we are done?
We know we are done when U1 can completely abandon PQM for Tarmac and Merge Queues. As a side, we hope this also means that we've also satisfied all of the issues Launchpad-foundations needs, although their needs may be so specific that we can't put it squarely in Launchpad, and will have to build some external scripts (probably Tarmac plugins)
How will we measure how well we have done?
I'd like to set up a few graphs to see this:
- Total number of merge queues created
- Number of merge queue items created in a single day
- Number of merge queue items completed in a single day
- Number of branches merged by one queue