| # Contribution procedures |
| |
| ## Bug reports |
| |
| While bugs are unfortunate, they're a reality in software. |
| We can't fix what we don't know about, so please report liberally. |
| If you're not sure if something is a bug, feel free to open an issue anyway. |
| |
| **If you believe reporting your bug publicly represents a security risk to Rust users, |
| please follow our [instructions for reporting security vulnerabilities][vuln]**. |
| |
| [vuln]: https://www.rust-lang.org/policies/security |
| |
| If you're using the nightly channel, please check if the bug exists in the |
| latest toolchain before filing your bug. |
| It might be fixed already. |
| |
| If you have the chance, before reporting a bug, please [search existing issues], |
| as it's possible that someone else has already reported your error. |
| This doesn't always work, and sometimes it's hard to know what to search for, so consider this |
| extra credit. |
| We won't mind if you accidentally file a duplicate report. |
| |
| Similarly, to help others who encountered the bug find your issue, consider |
| filing an issue with a descriptive title, which contains information that might be unique to it. |
| This can be the language or compiler feature used, the |
| conditions that trigger the bug, or part of the error message if there is any. |
| An example could be: **"impossible case reached" on lifetime inference for impl |
| Trait in return position**. |
| |
| Opening an issue is as easy as following [this link][create an issue] and filling out the fields |
| in the appropriate provided template. |
| |
| [search existing issues]: https://github.com/rust-lang/rust/issues?q=is%3Aissue |
| [create an issue]: https://github.com/rust-lang/rust/issues/new/choose |
| |
| ## Other procedures |
| |
| Other contribution procedures are documented with the parts of the guide that own them: |
| |
| <a id="bug-fixes-or-normal-code-changes"></a> |
| <a id="pull-requests"></a> |
| |
| - For routine changes or large, cross-cutting pull requests, see [normal code changes](getting-started.md#bug-fixes-or-normal-code-changes), [PR lifecycle](./pr-lifecycle.md), and [pull request guidance](getting-started.md#pull-requests). |
| |
| <a id="new-features"></a> |
| <a id="breaking-changes"></a> |
| <a id="major-changes"></a> |
| |
| - For new features, major changes, and breaking changes, see [Implementing new language features](implementing-new-features.md) and [Procedures for breaking changes](bug-fix-procedure.md). |
| |
| <a id="performance"></a> |
| |
| - For performance-sensitive changes, see [Performance testing](tests/perf.md#performance-considerations). |
| |
| <a id="writing-documentation"></a> |
| |
| - For compiler documentation, see [Contributing documentation](building/compiler-documenting.md#contributing-documentation). |
| |
| <a id="issue-triage"></a> |
| |
| - For issue triage, see [Issue triage](getting-started.md#issue-triage). |
| |
| <a id="llm-guidance"></a> |
| |
| - For guidance on LLM usage, see [Running LLMs](llm-guidance.md). |
| |
| <a id="contributing-to-rustc-dev-guide"></a> |
| |
| - For changes to this guide itself, see [Writing rustc-dev-guide documentation](contributing-to-guide.md). |
| |
| <a id="external-dependencies"></a> |
| |
| - For external dependencies, see [Using external repositories](external-repos.md). |
| |
| <a id="helpful-links-and-information"></a> |
| |
| - For further resources, see [About this guide](about-this-guide.md#other-places-to-find-information). |