[dmd-internals] Automatic Pull Merging!
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
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.
(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