Contributing to Rust — finding, triaging and fixing issues

The day-to-day maintenance of the project revolves around Rust’s
issue tracker and pull requests, and more help is always
needed. The most basic way to get started contributing to Rust is to
look for the E-easy or E-mentor labels. These are meant to be
approachable for new Rust programmers.

On E-mentor issues an experienced Rust developer has volunteered in
the comments to mentor you through solving the issue and submitting
the fix via GitHub pull request. Contact them about the issue,
on the issue tracker by @mentioning their name in a comment, on IRC,
or through email. Note that Rust developers get a lot of notifications
and it is easy to miss some; don’t hesitate to hunt them down by
whatever means necessary!

Other projects in Rust maintain similar entry-level tasks, including
the web browser Servo, the HTTP library hyper, the
source-formatter rustfmt, the Unix library bindings nix,
and the lint collection clippy.

While Rust has an extensive test suite there is always more to
test. The E-needstest label indicates issues that are thought to be
fixed but don’t have tests. Writing test cases is a great way to
understand a new project and get started contributing.

Rust is always in need of people to triage issues: reproduce bugs,
minimize test cases, apply labels, close resolved issues. Note that
you’ll need elevated GitHub permissions to apply labels, but this is
easy to obtain for somebody with a bit of experience in the
project. Ask a team member.

Once you’ve found your way around the project and have created a few
pull requests in a particular area, consider reviewing others’ pull
requests: good reviewership is a rare skill and always appreciated. No
prior permission is needed — just start constructively and politely
commenting on pull requests that interest you. If you want training
on conducting good code reviews read this guide.