how to contribute to the Rust project

## whoami

Nilstrieb (he/him)

- contributing since 2021
- compiler contributors team since 2022
- all areas of the compiler
- issue triaging
- 1.72 cargo feature cfg diagnostics

## reviewed ♥

compiler-errors, style team member
WaffleLapkin, the most non-binary compiler contributor
jyn514, the gayest alumni of the bootstrap team
lunasorcery, friend of the above
## i want to contribute - don't need to be an expert! - time and interest
# what to contribute?
# not writing code

## thanks.rust-lang.org

## triaging issues easy to get started - labelling - minimization - bisecting - adding tests

## labelling

https://forge.rust-lang.org/release/issue-triaging.html

## bisection

    						$ cargo new bisect
    							Created binary (application) `bisect` package
    						$ cd bisect
    						$ vim src/main.rs
    						$ cargo-bisect-rustc --access github --regress ice \
    							--start 2023-01-01 --end 2023-12-19

https://github.com/rust-lang/cargo-bisect-rustc
downloads toolchains instead of building them

## bisection

## minimization

very useful for fixing an issue

## minimization

I minimized that issue to 60 lines in 2 hours

https://github.com/Nilstrieb/ice-104649 http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/
https://github.com/Nilstrieb/cargo-minimize

## adding tests

bug has been fixed, but no test added

just commit a test to close the issue!

## existing unstable features - stabilize - close

## tracking issues

tracking the state of a feature

719 issues (2023-01-03)

new issues aren't ready yet

really old issues often have problems

go to golden middle :)

## summarize,

aggregate open questions

aggregate resolved questions

propose next steps

## stabilize...

## ...or close

## final comment periods

## writing code

## official tooling always in need of help! - clippy - rust-analyzer - cargo - rustup - rustfmt
## standard library limited review bandwidth! - improve documentation - performance improvements - bug fixes - APIs are selective
## compiler contributions - diagnostics are a great starting point (A-diagnostics) - internal compiler error fixes - E-{mentor,easy} labels

## examples of my PRs

https://github.com/rust-lang/rust/pull/89892

## examples of my PRs

https://github.com/rust-lang/rust/pull/119710

## examples of my PRs

https://github.com/rust-lang/rust/pull/118143

## examples of my PRs

https://github.com/rust-lang/rust/pull/117079

## rustc dev guide

https://rustc-dev-guide.rust-lang.org/
## looking at prs - learn more about what other people are doing - leave review comments if you see something
## to remember - volunteers - review times sometimes long (weeks) - rust-lang/rust: ping if review >2 weeks

## ask for help

rust-lang.zulipchat.com

## see you on GitHub!

https://rustc-dev-guide.rust-lang.org/ https://forge.rust-lang.org/release/issue-triaging.html https://github.com/rust-lang/cargo-bisect-rustc http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/
https://github.com/Nilstrieb/cargo-minimize rust-lang.zulipchat.com