New contributors on the Rust project are generally a bit lost on how the merge process is working. This little article intends to make things a bit more clear. But first, let's start with steps before opening a Pull Request.
First, it might seem obvious but better sure than sorry: run tests! The command is as follow:
make check
It can takes some time so don't worry and go do something else meanwhile.
Next, it's a very common mistake: new contributors (and all contributors more generally) don't know or don't think about running the make tidy
command. As long as this command doesn't end successfully, this work won't get merged!
Once this done, you can open the pull request.
Once the pull request has been opened, a Rust contributor/reviewer will review it. Don't be surprised if it isn't accepted at first try: it's normal. A few typos or formatting issues can still be present, so don't worry and just fix them.
If you update your code (and don't add new features in this process), you'll need to squash your commits. If you don't know how to do it, you can take a look here.
When it's all good, a reviewer will then "r+" your pull request. It means that it's now added to the pull requests list that need to be tested with buildbot
(an open source test platform, the rust instance is hosted by Mozilla). You can see the current pull request queue here.
It tests your changes on a wide range of platforms (Windows, Linux, OSX, ...) and architectures (32 bits, 64 bits, arm, ...). Once again, it can take some time so once your pull request has received "r+", just go do something else. Either your changes have succeeded or not, buildbot will leave a message on the pull request (with bors
pseudo).
It's important to differentiate both of them: travis is an online platform which tests changes. If travis passes, it doesn't mean that your changes will succeed on buildbot too. However, if travis fails, buildbot will as well.