From eca55fea155aa2de200f4d3661e740a634062652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Le=C3=B3n=20Orell=20Valerian=20Liehr?= Date: Mon, 13 May 2024 18:36:29 +0200 Subject: [PATCH] Tweak and update subsection Labels of Issue Triaging --- src/release/issue-triaging.md | 51 +++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/src/release/issue-triaging.md b/src/release/issue-triaging.md index aeeb77398..c1f536088 100644 --- a/src/release/issue-triaging.md +++ b/src/release/issue-triaging.md @@ -75,25 +75,48 @@ Triaging them the same way as `needs-triage` is also useful. There are many different labels that can be applied to issues. - `needs-triage`: Signals that an issue is new and needs initial triage -- `T-*`: Specifies the team or teams that this issue is relevant to, for example compiler, types or libs -- `WG-*`: Specifies the working groups that this issue is relevant to, for example WG-debugging. -- `C-*`: Specifies the category of the label, for example a bug, tracking issue or discussion - - `A-diagnostics` issues usually don't have any C label. +- [`T-*`]: Specifies the **team** or teams that this issue is relevant to. For example `T-compiler`, `T-types` or `T-libs`. +- [`WG-*`]: Specifies the **working groups** that this issue is relevant to, for example `WG-debugging`. +- [`PG-*`]: Specifies the **project groups** that this issue is relevant to, for example the `PG-exploit-mitigations`. +- [`C-*`]: Specifies the **category** of the label, for example a bug, tracking issue or discussion + - `A-diagnostics` issues usually don't have any `C-*` label. - Also note `C-optimization` for missed compiler optimizations. -- `O-*`: For platform-specific issues, specifies the platform (architecture or operating system). For example macos, aarch64, windows -- `A-*`: The areas that the issue is relevant to, for example linkage, patterns, diagnostics -- `F-*`: When the issue concerns a specific (usually unstable) feature +- [`O-*`]: For platform-specific issues, specifies the **platform** (architecture or operating system). For example `O-macos`, `O-aarch64`, `O-windows`. +- [`A-*`]: The **areas** that the issue is relevant to, for example `A-linkage`, `A-patterns`, `A-diagnostics`. +- [`L-*`]: When the issue concerns a specific **lint**. +- [`F-*`]: When the issue concerns a specific (usually unstable, usually language) **feature**. +- [`-Z*`]: When the issue concerns a specific unstable `-Z` compiler flag. - `requires-nightly`: This issue is not relevant to the stable compiler - `requires-{incomplete,internal}-features`: This issue requires an incomplete or internal feature. The latter often means that the issue should be closed in accordance with compiler [MCP 620](https://github.com/rust-lang/compiler-team/issues/620). -- `regression-*`: Labels for tracking issues that are regressions. -- `D-*`: Labels for diagnostics issue. -- `I-*`: Different labels about the nature (originally, importance) of a bug. For example ICE, slow code, heavy code (binary size), crashes, unsoundness. - There are also some other `I-*` labels that don't really fit into this. For triaging, focus on `I-slow`, `I-heavy`, `I-ICE`, `I-crash`, `I-unsound`. -- `P-*`: Priority labels. Applied using the [Compiler Prioritization procedure](../compiler/prioritization.md) -- `S-*`: The status of an issue, for example S-needs-repro. -- `E-*`: Calls for participation, for example to minimize an issue +- [`regression-*`]: Labels for tracking issues that are regressions. +- [`D-*`]: Labels for **diagnostic** issues. +- [`I-*`]: Different labels about the nature[^1] of a bug. For example ICE, slow code, heavy code (binary size), crashes, unsoundness. + There are also some other `I-*` labels that don't really fit into this. For triaging, focus on `I-ICE`, `I-crash`, `I-hang`, `I-slow`, `I-heavy`, `I-compiletime` and `I-unsound`. +- [`P-*`]: **Priority** labels. Applied using the [compiler prioritization procedure](../compiler/prioritization.md). +- [`S-*`]: The **status** of an issue, for example `S-needs-repro`. +- [`E-*`]: Calls for participation[^2], for example to minimize an issue. - `E-mentor`: A mentor is available to help with the issue, which makes for good first issues. - `E-needs-mcve`: This issue has a reproduction, but it is not minimal, it should be minimized. - `E-needs-test`: The issue has been fixed, but no test has been added for it. After someone adds a test, it can be closed. - `E-{easy,medium,hard}`: Someone has estimated how hard the issue is to fix. This can help with finding good first issues, but is [bound to be inaccurate](https://en.wikipedia.org/wiki/Curse_of_knowledge). + +See also section [Issue Triage](https://rustc-dev-guide.rust-lang.org/contributing.html#issue-triage) in the Rust Compiler Development Guide. + +[`T-*`]: https://github.com/rust-lang/rust/labels?q=T- +[`WG-*`]: https://github.com/rust-lang/rust/labels?q=WG- +[`PG-*`]: https://github.com/rust-lang/rust/labels?q=PG- +[`C-*`]: https://github.com/rust-lang/rust/labels?q=C- +[`O-*`]: https://github.com/rust-lang/rust/labels?q=O- +[`A-*`]: https://github.com/rust-lang/rust/labels?q=A- +[`L-*`]: https://github.com/rust-lang/rust/labels?q=L- +[`F-*`]: https://github.com/rust-lang/rust/labels?q=F- +[`-Z*`]: https://github.com/rust-lang/rust/labels?q=-Z +[`regression-*`]: https://github.com/rust-lang/rust/labels?q=regression- +[`D-*`]: https://github.com/rust-lang/rust/labels?q=D- +[`I-*`]: https://github.com/rust-lang/rust/labels?q=I- +[`P-*`]: https://github.com/rust-lang/rust/labels?q=P- +[`S-*`]: https://github.com/rust-lang/rust/labels?q=S- +[`E-*`]: https://github.com/rust-lang/rust/labels?q=E- +[^1]: The `I` in `I-*` labels originally stood for *importance*. This makes the most sense for the `I-*-nominated` labels. For most `I-*` labels however it makes sense to interpret the `I` as *issue (kind)*. +[^2]: The `E` in `E-*` labels stands for *experience*.