diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 63bb0ecb66..713c750779 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,21 +7,35 @@ Welcome! We're happy to have you here. Thank you in advance for your contributio > This guide is for Ruff. If you're looking to contribute to ty, please see [the ty contributing > guide](https://github.com/astral-sh/ruff/blob/main/crates/ty/CONTRIBUTING.md). -## The Basics +## Finding ways to help -Ruff welcomes contributions in the form of pull requests. +We label issues that would be good for a first time contributor as +[`good first issue`](https://github.com/astral-sh/ruff/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). +These usually do not require significant experience with Rust or the Ruff code base. -For small changes (e.g., bug fixes), feel free to submit a PR. +We label issues that we think are a good opportunity for subsequent contributions as +[`help wanted`](https://github.com/astral-sh/ruff/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22). +These require varying levels of experience with Rust and Ruff. Often, we want to accomplish these +tasks but do not have the resources to do so ourselves. -For larger changes (e.g., new lint rules, new functionality, new configuration options), consider -creating an [**issue**](https://github.com/astral-sh/ruff/issues) outlining your proposed change. -You can also join us on [Discord](https://discord.com/invite/astral-sh) to discuss your idea with the -community. We've labeled [beginner-friendly tasks](https://github.com/astral-sh/ruff/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) -in the issue tracker, along with [bugs](https://github.com/astral-sh/ruff/issues?q=is%3Aissue+is%3Aopen+label%3Abug) -and [improvements](https://github.com/astral-sh/ruff/issues?q=is%3Aissue+is%3Aopen+label%3Aaccepted) -that are ready for contributions. +You don't need our permission to start on an issue we have labeled as appropriate for community +contribution as described above. However, it's a good idea to indicate that you are going to work on +an issue to avoid concurrent attempts to solve the same problem. -If you have suggestions on how we might improve the contributing documentation, [let us know](https://github.com/astral-sh/ruff/discussions/5693)! +Please check in with us before starting work on an issue that has not been labeled as appropriate +for community contribution. We're happy to receive contributions for other issues, but it's +important to make sure we have consensus on the solution to the problem first. + +Outside of issues with the labels above, issues labeled as +[`bug`](https://github.com/astral-sh/ruff/issues?q=is%3Aopen+is%3Aissue+label%3A%22bug%22) are the +best candidates for contribution. In contrast, issues labeled with `needs-decision` or +`needs-design` are _not_ good candidates for contribution. Please do not open pull requests for +issues with these labels. + +Please do not open pull requests for new features without prior discussion. While we appreciate +exploration of new features, we will often close these pull requests immediately. Adding a +new feature to ruff creates a long-term maintenance burden and requires strong consensus from the ruff +team before it is appropriate to begin work on an implementation. ### Prerequisites