[dmd-internals] Automatic Pull Merging!

Brad Roberts braddr at puremagic.com
Fri Nov 15 00:17:03 PST 2013

I've just put the automated pull merging code into production and visible to everyone.  The rough 

1) You have to be logged in and using https (should be automatic) -- note the new login link in the 
upper left corner.  The website is now integrated with github's oauth system and will direct you 
over there to accept this login.  It requires write credentials because the merge operation is 
performed as the person who requests the merge.  This is subject to debate.  It's possible to switch 
to read-only credentials and have all merges done as me, with a merge comment noting who did the 
commit -- but I prefer it NOT be me but rather be you guys.

2) To request that a pull be merged, head through link on the page with all the pull requests and 
their status (https://d.puremagic.com/test-results/pulls.ghtml?projectid=1) to the test history link 
(second column.. the one with the username/branch titled link).  At the top of that page, for anyone 
(logged in or not) is a new row labeled "Auto Merge" with a yes/no indicator.  If you're logged in 
you will see a Toggle link.

3) For any request which is already completely tested, it will merge right then and there (though no 
visual indicator on that page until a few minutes later when the system has detected the completed 
merge).  For any incompletely tested pull request, once it passes all 10 platforms, it will be 
merged in.

4) If the pull is updated to a new revision while waiting for a complete set of tests to pass, then 
the auto-merge state is dropped and must be re-enabled.

Two known issues:

1) the post-login step is always back at the default page rather than where you were when you logged in.

2) anyone who is logged in can toggle it.  Once the pull passes all tests, when it tries to perform 
the pull, it notices the requester can't and yanks the flag, not performing any merging.  Since 
someone who could have rightly set it will be mislead that it had been set, that's pretty ugly.

There's every possibility that there's bugs in the system, so please tread carefully and let me know 
if you see something acting fishy.  Future work will add more integration with github to make it 
easier to interact with.

Happy merging,

(yes, I realize those docs, such as they are, really belong within the website.. it's on the list)

More information about the dmd-internals mailing list