Skip to content

Commit df3cde9

Browse files
authored
Move around Team compiler docs about prioritization and triaging (#1022)
1 parent 65c3c82 commit df3cde9

File tree

3 files changed

+166
-121
lines changed

3 files changed

+166
-121
lines changed

src/compiler/operations.md

Lines changed: 114 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,17 @@ You can trigger a discussion about a specific topic, issue or pull request by op
2121

2222
## Prioritization for T-compiler
2323

24+
See here how to [prioritization][prioritization] works.
25+
2426
Some useful filters when looking at regressions.
2527

2628
- [Nightly regressions without priority](https://github.com/rust-lang/rust/issues?q=is%3Aissue+label%3AT-compiler+label%3Aregression-from-stable-to-nightly+-label%3AI-prioritize++is%3Aopen)
2729
- [Beta regressions without priority](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3Aregression-from-stable-to-beta+-label%3AI-prioritize)
2830
- [Stable regressions without priority](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3Aregression-from-stable-to-stable+-label%3AI-prioritize)
2931
- [Untriaged regressions without a priority](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AT-compiler+label%3Aregression-untriaged+-label%3AP-critical+-label%3AP-high+-label%3AP-medium+-label%3AP-low+-label%3AI-prioritize)
3032

33+
[prioritization]: ./prioritization.md
34+
3135
## PRs hygiene
3236

3337
- Every PR should have a team assigned
@@ -48,7 +52,116 @@ Some useful filters when looking at regressions.
4852

4953
## Meetings
5054

51-
T-compiler has two kinds of meetings: triage and design meetings. Triage meetings happen weekly, there is a [tool](https://github.com/rust-lang/triagebot/blob/master/src/bin/prioritization-agenda.rs) to generate 80% of the meeting's agenda. Design meetings proposals are advanced on the [T-compiler repository](https://github.com/rust-lang/compiler-team/issues?q=sort%3Aupdated-desc%20is%3Aissue%20is%3Aopen%20label%3Ameeting-proposal) and scheduled during recurrent *steering* meetings (where the next *design* meetings are scheduled). Design meetings also need an agenda and a bit of work to summarize the topic and bring together documentation, invite relevant people and so on.
55+
T-compiler has two kinds of meetings: triage and design meetings. Triage meetings happen weekly on Thursdays (you can subscribe to the Team Compiler calendar [from this repository][compiler-calendar]
56+
), there is a [tool](https://github.com/rust-lang/triagebot/blob/master/src/bin/prioritization-agenda.rs) to generate 80% of the meeting's agenda (see [Triage meetings](#triage-meetings) for details). Design meetings proposals are advanced on the [T-compiler repository](https://github.com/rust-lang/compiler-team/issues?q=sort%3Aupdated-desc%20is%3Aissue%20is%3Aopen%20label%3Ameeting-proposal) and scheduled during recurrent *steering* meetings (where the next *design* meetings are scheduled). Design meetings also need an agenda and a bit of work to summarize the topic and bring together documentation, invite relevant people and so on.
57+
58+
[compiler-calendar]: https://github.com/rust-lang/calendar
59+
60+
### Triage meetings
61+
62+
First, ensure that relevant issues are labelled as `T-compiler`:
63+
64+
- [Issues labeled with `I-prioritize`](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+-label%3AP-critical+-label%3AP-high+-label%3AP-medium+-label%3AP-low+label%3AI-prioritize+-label%3AT-compiler+-label%3AT-cargo+-label%3AT-core+-label%3AT-doc+-label%3AT-infra+-label%3AT-lang+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AA-rustdoc+-label%3AA-rustdoc-ui)
65+
- [Pull requests nominated for the stable release channel backport](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+-label%3AT-compiler+-label%3AT-cargo+-label%3AT-core+-label%3AT-doc+-label%3AT-infra+-label%3AT-lang+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AA-rustdoc+-label%3AA-rustdoc-ui)
66+
- [Pull requests nominated for the beta release channel backport](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+-label%3AT-compiler+-label%3AT-cargo+-label%3AT-core+-label%3AT-doc+-label%3AT-infra+-label%3AT-lang+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AA-rustdoc+-label%3AA-rustdoc-ui)
67+
- [Issues labeled `I-compiler-nominated`](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+-label%3AT-compiler+-label%3AT-cargo+-label%3AT-core+-label%3AT-doc+-label%3AT-infra+-label%3AT-lang+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AA-rustdoc+-label%3AA-rustdoc-ui) (i.e. needing a T-compiler discussion)
68+
- [Pull requests waiting on a team's feedback](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AS-waiting-on-team+-label%3AT-compiler+-label%3AT-cargo+-label%3AT-core+-label%3AT-doc+-label%3AT-infra+-label%3AT-lang+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AA-rustdoc+-label%3AA-rustdoc-ui)
69+
- [Issues classified with priority `P-high`](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-high+-label%3AT-compiler+-label%3AT-cargo+-label%3AT-core+-label%3AT-doc+-label%3AT-infra+-label%3AT-lang+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AA-rustdoc+-label%3AA-rustdoc-ui)
70+
71+
..and that prioritization has been completed. Regressions labeled with `I-prioritize` are signaling
72+
that a priority assessment is waiting. When this label is added to an issue, the `triagebot` sends a
73+
notification to the [`#t-compiler/prioritization/alerts`][prio_channel] Zulip channel.
74+
75+
[prio_channel]: https://rust-lang.zulipchat.com/#narrow/channel/245100-t-compiler.2Fprioritization.2Falerts
76+
77+
Ideally, all [`T-compiler` issues with a `I-prioritize` label][issues_needing_prio] should have a
78+
priority assigned, or strive to reach this goal: sometimes different factors are blocking issues
79+
from being assigned a priority label, either because the report or the context is unclear or because
80+
cannot be reproduced and an MCVE would help. Don't hesitate to ask for clarifications to the issue
81+
reporter or to other contributors.
82+
83+
Review [stable][stable_regressions], [beta][beta_regressions] and [nightly][nightly_regressions] and
84+
try to ensure they are assigned when possible.
85+
86+
[issues_needing_prio]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AT-compiler+-label%3AP-critical+-label%3AP-high+-label%3AP-medium+-label%3AP-low+label%3AI-prioritize
87+
[stable_regressions]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-stable+-label%3AP-critical+-label%3AP-high+-label%3AP-medium+-label%3AP-low+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc
88+
[beta_regressions]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+-label%3AP-critical+-label%3AP-high+-label%3AP-medium+-label%3AP-low+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc
89+
[nightly_regressions]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+-label%3AP-critical+-label%3AP-high+-label%3AP-medium+-label%3AP-low+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc
90+
91+
The final step prior to generating the agenda is to accept Major Change Proposals (MCP), this is
92+
usually automated. MCPs that have been in the Final Comment Period (FCP) phase (identified by having
93+
the [`final-comment-period` label][mcp_fcp]) for more than ten days can be accepted. If an MCP has
94+
no unresolved concerns (look for the `has-concerns` label), you can remove the
95+
`final-comment-period` label, add the `major-change-accepted` label and close the issue.
96+
97+
[mcp_fcp]: https://github.com/rust-lang/compiler-team/issues?q=is%3Aissue+is%3Aopen+label%3Amajor-change+label%3Afinal-comment-period
98+
99+
Finally, the meeting agenda can be generated. Clone and build [`triagebot`][triagebot] and run:
100+
101+
[triagebot]: https://github.com/rust-lang/triagebot
102+
103+
```console
104+
$ cargo run --bin prioritization-agenda
105+
```
106+
107+
Copy the content into a new HackMD in the "Rust Lang Compiler Team" space. The tool will also
108+
download the latest weekly compiler triage logs. In case it didn't work out, manually copy the most
109+
recent [performance triage logs][perf_triage_log] (doing a bit of cleanup, removing anything that
110+
won't display well in Zulip)
111+
112+
[perf_triage_log]: https://github.com/rust-lang/rustc-perf/tree/master/triage#triage-logs
113+
114+
Add additional manual details to the agenda:
115+
116+
- Add summaries of stable/beta nominations (e.g. who nominated the backport and why)
117+
- Add summaries of PRs waiting on the team (i.e. why are they waiting)
118+
- Add initial impressions of `P-critical`/`P-high` bugs
119+
- Add summaries of nominated issues (e.g. who the assignee is, why it was nominated, etc)
120+
- Populate the oldest PRs waiting on review
121+
- Use judgement to determine whether a ping is appropriate (e.g. if the pull request is an
122+
experiment, it may not need a review; how long has it been since review activity; what do
123+
recent comments say?)
124+
125+
About two hours prior to the meeting, announce and share the completed agenda in the Zulip thread for the
126+
upcoming meeting (creating it if it does not already exist):
127+
128+
```text
129+
Hello @*T-compiler/meeting*, triage meeting in about 2h.
130+
Pre-triage done in #**t-compiler/prioritization/alerts**.
131+
Meeting agenda [on HackMD](https://hackmd.io/aaabbbccc123456)
132+
```
133+
134+
It is always recommended to re-run the generator and copy any new details over to the agenda as
135+
issue statuses on GitHub may have changed.
136+
137+
After the meeting, there are a few closing tasks:
138+
139+
- Lock the agenda on HackMD assigning write permissions to `Owners`.
140+
- Remove the `to-announce` label from [MCPs], unless this label was added exactly during
141+
the meeting (and therefore will be seen during the following meeting).
142+
- Remove `to-announce` FCPs from [`rust-lang/rust`][rust_announce], [`compiler-team`][team_announce]
143+
and the [forge][forge_announce]. Same disclaimer as before regarding changes during the meeting.
144+
- Accept or decline [`beta nominated`][beta_nominated] and [`stable nominated`][stable_nominated]
145+
backports that have been accepted during the meeting. For more info check [`t-release` backporting
146+
docs][release_backports]
147+
- To accept a backport, add a `{beta,stable}-accepted` label and keep the `{beta,stable}-nominated`
148+
label. Other automated procedures will process these pull requests, it's important to leave both
149+
labels. Add a comment on Github linking the Zulip discussion.
150+
- To decline a backport, simply remove `{beta,stable}-nominated` label. Add a comment on Github
151+
explaining why the backport was declined and link the Zulip discussion.
152+
- Remove [`I-compiler-nominated`][compiler_nominated] label from issues that were discussed.
153+
Sometimes not all nominated issues are discussed (because of time constraints) and can slip to the
154+
next meeting.
155+
156+
[beta_nominated]: https://github.com/rust-lang/rust/issues?q=is%3Apr+label%3Abeta-nominated+-label%3Abeta-accepted
157+
[stable_nominated]: https://github.com/rust-lang/rust/issues?q=is%3Apr+label%3Astable-nominated+-label%3Astable-accepted
158+
[rust_announce]: https://github.com/rust-lang/rust/issues?q=label%3Afinished-final-comment-period%20label%3Ato-announce%20is%3Aissue
159+
[team_announce]: https://github.com/rust-lang/compiler-team/issues?q=label%3Afinished-final-comment-period%20label%3Ato-announce%20is%3Aissue
160+
[forge_announce]: https://github.com/rust-lang/rust-forge/issues?q=label%3Afinished-final-comment-period%20label%3Ato-announce%20is%3Aissue
161+
[fcps]: https://github.com/rust-lang/compiler-team/issues?q=label%3Amajor-change+label%3Ato-announce
162+
[mcps]: https://github.com/rust-lang/compiler-team/issues?q=label%3Amajor-change%20label%3Ato-announce%20is%3Aissue
163+
[release_backports]: ../release/backporting.md
164+
[compiler_nominated]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated+label%3AT-compiler
52165

53166
## Rest of the world
54167

0 commit comments

Comments
 (0)