| 1 | # Contributing to Rust |
| 2 | |
| 3 | Thank you for your interest in contributing to Rust! There are many ways to contribute |
| 4 | and we appreciate all of them. |
| 5 | |
| 6 | The best way to get started is by asking for help in the [#new |
| 7 | members](https://rust-lang.zulipchat.com/#narrow/stream/122652-new-members) |
| 8 | Zulip stream. We have a lot of documentation below on how to get started on your own, but |
| 9 | the Zulip stream is the best place to *ask* for help. |
| 10 | |
| 11 | Documentation for contributing to the compiler or tooling is located in the [Guide to Rustc |
| 12 | Development][rustc-dev-guide], commonly known as the [rustc-dev-guide]. Documentation for the |
| 13 | standard library is in the [Standard library developers Guide][std-dev-guide], commonly known as the [std-dev-guide]. |
| 14 | |
| 15 | ## Making changes to subtrees and submodules |
| 16 | |
| 17 | For submodules, changes need to be made against the repository corresponding to the |
| 18 | submodule, and not the main `rust-lang/rust` repository. |
| 19 | |
| 20 | For subtrees, prefer sending a PR against the subtree's repository if it does |
| 21 | not need to be made against the main `rust-lang/rust` repository (e.g. a |
| 22 | rustc-dev-guide change that does not accompany a compiler change). |
| 23 | |
| 24 | ## About the [rustc-dev-guide] |
| 25 | |
| 26 | The [rustc-dev-guide] is meant to help document how rustc –the Rust compiler– works, |
| 27 | as well as to help new contributors get involved in rustc development. It is recommended |
| 28 | that you read and understand the [rustc-dev-guide] before making a contribution. This guide |
| 29 | talks about the different bots in the Rust ecosystem, the Rust development tools, |
| 30 | bootstrapping, the compiler architecture, source code representation, and more. |
| 31 | |
| 32 | ## [Getting help](https://rustc-dev-guide.rust-lang.org/getting-started.html#asking-questions) |
| 33 | |
| 34 | There are many ways you can get help when you're stuck. Rust has two platforms for this: |
| 35 | [internals] and [rust-zulip]. It is recommended to ask for help on |
| 36 | the [rust-zulip], but any of these platforms are great ways to seek help and even |
| 37 | find a mentor! You can learn more about asking questions and getting help in the |
| 38 | [Asking Questions](https://rustc-dev-guide.rust-lang.org/getting-started.html#asking-questions) chapter of the [rustc-dev-guide]. |
| 39 | |
| 40 | ## Bug reports |
| 41 | |
| 42 | Did a compiler error message tell you to come here? If you want to create an ICE report, |
| 43 | refer to [this section][contributing-bug-reports] and [open an issue][issue template]. |
| 44 | |
| 45 | [rustc-dev-guide]: https://rustc-dev-guide.rust-lang.org/ |
| 46 | [std-dev-guide]: https://std-dev-guide.rust-lang.org/ |
| 47 | [contributing-bug-reports]: https://rustc-dev-guide.rust-lang.org/contributing.html#bug-reports |
| 48 | [issue template]: https://github.com/rust-lang/rust/issues/new/choose |
| 49 | [internals]: https://internals.rust-lang.org |
| 50 | [rust-zulip]: https://rust-lang.zulipchat.com |