Rewriting bors: how hard can it be?
by Jakub Beránek
Three years ago, we set out to rewrite bors, the merge queue
bot used to merge all pull requests in the rust-lang/rust
repository. A merge queue bot just parses some pull request
commands, then pushes commits to a repo, waits until CI is
green and merges the result into a target branch. Sounds
simple, right? How hard can that be? Well, let’s find out
together in this talk! I’ll show what infrastructure changes we
had to make to enable using new bors, how its integration test
suite works and how we designed it to robustly handle various
nasty race conditions so that it is able to battle with
GitHub’s quirks.
Jakub Beránek
he/himJakub is a member of the Rust Infrastructure and Compiler teams. He likes to work on various pieces of infrastructure that support both Rust users, but also other Rust Project contributors, such as our suite of bots. Apart from that, he teaches Rust at a university and organizes and talks at Rust meetups in the Czech Republic.