[rust-dev] bors

Hi, Many on the IRC channel (or those watching the commit stream) will have noticed we've recently enabled an "auto-merge" robot (named "bors"[1]). This slightly changes the path for merging code into our repository. For the most part no changes are required to people submitting pull requests: keep doing what you've been doing, and when a reviewer signs off on one of your commits by writing "r+" in a comment on the final commit of a pull req, bors will automatically: - Form a new merge node based on your pull + incoming - Wait for results from that to come back from buildbot - If successful, advance incoming to that node - Otherwise report how the change failed The only thing you're likely to notice is a certain degree of chatter from bors as it steps through its automation. It makes comments, such as in this pull request: https://github.com/mozilla/rust/pull/4832 This is just automation of a somewhat tedious merge-making and testsuite-watching behavior that we were previously doing manually (and spending a lot of time at, and occasionally skipping steps of). Automating it frees up time, lets the robot do useful work overnight when reviewers are asleep, and ensures that we never skip running tests "optimistically". Incoming only ever advances to merge nodes that are _exactly_ the bits that tested OK. It retries if you move incoming while it's working, so tends to behave "mostly gracefully" with respect to disruption around it. If it misbehaves, it can be provoked to retry a commit with a comment from a reviewer saying "@bors: retry". It ignores comments by non-reviewers. It also does not merge "updates" to a pull req. It considers comments on commits only, not pull reqs; if you update a pull req to contain new commits, they need to be reviewed anew. While we were testing it, it only considered pull requests with the word "auto: " in the title, so this is what those strings mean in recent pull requests. I've now opened it up to processing all pull requests; you do not need to put "auto: " on the title anymore. If you have feature requests or want it to behave differently, please let me know. I'll be conducting a brief security review with some mozilla folks and open-sourcing it soon for others who want to apply similar behavior to their own repositories. It's a very small, simple script. I'll also be posting a new URL soon that will hold a regularly-refreshing description of bors' work queue so folks can monitor what it's doing and planning-to-do (and ignoring) without having to re-read the state of all the pull reqs. -Graydon [1] It was hard to find a non-annoying robot name that isn't already taken on github; settled on this one: en.wikipedia.org/wiki/The_Last_of_the_Masters#The_last_government