From 65541fee894bbd3168c183ccd36bfa605ab8a1ac Mon Sep 17 00:00:00 2001 From: jyn Date: Sat, 8 Apr 2023 12:22:32 -0400 Subject: [PATCH] Add a "What should I work on?" section This is the first question I get from nearly all contributors. So far I've been giving links to individual issues, but they quickly go out of date or get fixed, and then I have more work to do to help people find an issue. Add some suggestions for work people can find themselves, without having to first consult an expert. This also moves the "Cloning and Building" stub to the bottom of the page. --- src/contributing.md | 3 -- src/getting-started.md | 63 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 57 insertions(+), 9 deletions(-) diff --git a/src/contributing.md b/src/contributing.md index 5d69ad30..d9d45b36 100644 --- a/src/contributing.md +++ b/src/contributing.md @@ -372,12 +372,9 @@ still valid. Load up an older issue, double check that it's still true, and leave a comment letting us know if it is or is not. The [least recently updated sort][lru] is good for finding issues like this. -If you're looking for somewhere to start, check out the [E-easy] tag. - [Thanks to `@rustbot`][rustbot], anyone can help triage issues by adding appropriate labels to issues that haven't been triaged yet: -[E-easy]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-easy [lru]: https://github.com/rust-lang/rust/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-asc [rustbot]: ./rustbot.md diff --git a/src/getting-started.md b/src/getting-started.md index 10134778..919b2415 100644 --- a/src/getting-started.md +++ b/src/getting-started.md @@ -70,20 +70,67 @@ Just pinging someone without providing any context can be a bit annoying and just create noise, so we ask that you be mindful of the fact that the `t-compiler` folks get a lot of pings in a day. -## Cloning and Building +## What should I work on? -See ["How to build and run the compiler"](./building//how-to-build-and-run.md). +The Rust project is quite large and it can be difficult to know which parts of the project need +help, or are a good starting place for beginners. Here are some suggested starting places. -## Contributing code to other Rust projects +### Easy or mentored issues + +If you're looking for somewhere to start, check out the following [issue +search][help-wanted-search]. See the [Triage] for an explanation of these labels. You can also try +filtering the search to areas you're interested in. For example: + +- `repo:rust-lang/rust-clippy` will only show clippy issues +- `label:T-compiler` will only show issues related to the compiler +- `label:A-diagnostics` will only show diagnostic issues + +Not all important or beginner work has issue labels. +See below for how to find work that isn't labelled. + +[help-wanted-search]: https://github.com/issues?q=is%3Aopen+is%3Aissue+org%3Arust-lang+no%3Aassignee+label%3AE-easy%2C%22good+first+issue%22%2Cgood-first-issue%2CE-medium%2CE-help-wanted%2CE-mentor +[Triage]: ./contributing.md#issue-triage + +### Recurring work + +Some work is too large to be done by a single person. In this case, it's commmon to have "Tracking +issues" to co-ordinate the work between contributors. Here are some example tracking issues where +it's easy to pick up a work without a large time commitment: + +- [Rustdoc Askama Migration](https://github.com/rust-lang/rust/issues/108868) +- [Diagnostic Translation](https://github.com/rust-lang/rust/issues/100717) +- [Move UI tests to subdirectories](https://github.com/rust-lang/rust/issues/73494) + +If you find more recurring work, please feel free to add it here! + +### Clippy issues + +The [Clippy] project has spent a long time making its contribution process as friendly to newcomers +as possible. Consider working on it first to get familiar with the process and the compiler +internals. + +See [the Clippy contribution guide][clippy-contributing] for instructions on getting started. + +[Clippy]: https://doc.rust-lang.org/clippy/ +[clippy-contributing]: https://github.com/rust-lang/rust-clippy/blob/master/CONTRIBUTING.md + +### Diagnostic issues + +Many diagnostic issues are self-contained and don't need detailed background knowledge of the +compiler. You can see a list of diagnostic issues [here][diagnostic-issues]. + +[diagnostic-issues]: https://github.com/rust-lang/rust/issues?q=is%3Aissue+is%3Aopen+label%3AA-diagnostics+no%3Aassignee + +### Contributing code to other Rust projects There are a bunch of other projects that you can contribute to outside of the -`rust-lang/rust` repo, including `clippy`, `miri`, `chalk`, and many others. +`rust-lang/rust` repo, including `cargo`, `miri`, `rustup`, and many others. These repos might have their own contributing guidelines and procedures. Many of them are owned by working groups (e.g. `chalk` is largely owned by WG-traits). For more info, see the documentation in those repos' READMEs. -## Other ways to contribute +### Other ways to contribute There are a bunch of other ways you can contribute, especially if you don't feel comfortable jumping straight into the large `rust-lang/rust` codebase. @@ -118,9 +165,13 @@ incredibly helpful: [wg]: https://rust-lang.github.io/compiler-team/working-groups/ [triage]: ./contributing.md#issue-triage +## Cloning and Building + +See ["How to build and run the compiler"](./building//how-to-build-and-run.md). + ## Contributor Procedures -This section has moved to the ["Contribution Procedures"](./contributing.md) chapter. +This section has moved to the ["Contribution Procedures"](./contributing.mD) chapter. ## Other Resources