]>
Commit | Line | Data |
---|---|---|
a1dfa0c6 XL |
1 | # About the compiler team |
2 | ||
532ac7d7 XL |
3 | rustc is maintained by the [Rust compiler team][team]. The people who belong to |
4 | this team collectively work to track regressions and implement new features. | |
5 | Members of the Rust compiler team are people who have made significant | |
6 | contributions to rustc and its design. | |
7 | ||
416331ca | 8 | [team]: https://www.rust-lang.org/governance/teams/compiler |
a1dfa0c6 XL |
9 | |
10 | ## Discussion | |
11 | ||
6a06907d | 12 | Currently the compiler team chats in Zulip: |
a1dfa0c6 | 13 | |
17df50a5 | 14 | - Team chat occurs in the [`t-compiler`][zulip-t-compiler] stream on the Zulip instance |
6a06907d XL |
15 | - There are also a number of other associated Zulip streams, |
16 | such as [`t-compiler/help`][zulip-help], where people can ask for help | |
17 | with rustc development, or [`t-compiler/meetings`][zulip-meetings], | |
18 | where the team holds their weekly triage and steering meetings. | |
a1dfa0c6 | 19 | |
532ac7d7 XL |
20 | ## Expert map |
21 | ||
22 | If you're interested in figuring out who can answer questions about a | |
23 | particular part of the compiler, or you'd just like to know who works on what, | |
416331ca | 24 | check out our [experts directory][experts]. |
532ac7d7 XL |
25 | It contains a listing of the various parts of the compiler and a list of people |
26 | who are experts on each one. | |
27 | ||
416331ca XL |
28 | [experts]: https://github.com/rust-lang/compiler-team/blob/master/content/experts/map.toml |
29 | ||
a1dfa0c6 XL |
30 | ## Rust compiler meeting |
31 | ||
32 | The compiler team has a weekly meeting where we do triage and try to | |
cdc7bbd5 XL |
33 | generally stay on top of new bugs, regressions, and discuss important |
34 | things in general. | |
35 | They are held on [Zulip][zulip-meetings]. It works roughly as follows: | |
36 | ||
37 | - **Announcements, MCPs/FCPs, and WG-check-ins:** We share some | |
38 | announcements with the rest of the team about important things we want | |
39 | everyone to be aware of. We also share the status of MCPs and FCPs and we | |
40 | use the opportunity to have a couple of WGs giving us an update about | |
41 | their work. | |
42 | - **Check for beta and stable nominations:** These are nominations of things to | |
43 | backport to beta and stable respectively. | |
44 | We then look for new cases where the compiler broke previously working | |
45 | code in the wild. Regressions are important issues to fix, so it's | |
46 | likely that they are tagged as P-critical or P-high; the major | |
47 | exception would be bug fixes (though even there we often [aim to give | |
48 | warnings first][procedure]). | |
49 | - **Review P-critical and P-high bugs:** P-critical and P-high bugs are | |
50 | those that are sufficiently important for us to actively track | |
51 | progress. P-critical and P-high bugs should ideally always have an | |
52 | assignee. | |
53 | - **Check S-waiting-on-team and I-nominated issues:** These are issues where feedback from | |
a1dfa0c6 | 54 | the team is desired. |
cdc7bbd5 XL |
55 | - **Look over the performance triage report:** We check for PRs that made the |
56 | performance worse and try to decide if it's worth reverting the performance regression or if | |
57 | the regression can be addressed in a future PR. | |
a1dfa0c6 XL |
58 | |
59 | The meeting currently takes place on Thursdays at 10am Boston time | |
60 | (UTC-4 typically, but daylight savings time sometimes makes things | |
61 | complicated). | |
62 | ||
ba9703b0 | 63 | [procedure]: ./bug-fix-procedure.md |
17df50a5 | 64 | [zulip-t-compiler]: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler |
6a06907d XL |
65 | [zulip-help]: https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp |
66 | [zulip-meetings]: https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings | |
a1dfa0c6 XL |
67 | |
68 | ## Team membership | |
69 | ||
70 | Membership in the Rust team is typically offered when someone has been | |
71 | making significant contributions to the compiler for some | |
72 | time. Membership is both a recognition but also an obligation: | |
73 | compiler team members are generally expected to help with upkeep as | |
74 | well as doing reviews and other work. | |
75 | ||
76 | If you are interested in becoming a compiler team member, the first | |
77 | thing to do is to start fixing some bugs, or get involved in a working | |
78 | group. One good way to find bugs is to look for | |
79 | [open issues tagged with E-easy](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-easy) | |
80 | or | |
81 | [E-mentor](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-mentor). | |
82 | ||
94222f64 XL |
83 | You can also dig through the graveyard of PRs that were |
84 | [closed due to inactivity](https://github.com/rust-lang/rust/pulls?q=is%3Apr+label%3AS-inactive), | |
85 | some of them may contain work that is still useful - refer to the | |
86 | associated issues, if any - and only needs some finishing touches | |
87 | for which the original author didn't have time. | |
88 | ||
a1dfa0c6 XL |
89 | ### r+ rights |
90 | ||
91 | Once you have made a number of individual PRs to rustc, we will often | |
92 | offer r+ privileges. This means that you have the right to instruct | |
93 | "bors" (the robot that manages which PRs get landed into rustc) to | |
94 | merge a PR | |
95 | ([here are some instructions for how to talk to bors][homu-guide]). | |
96 | ||
6a06907d | 97 | [homu-guide]: https://bors.rust-lang.org/ |
a1dfa0c6 XL |
98 | |
99 | The guidelines for reviewers are as follows: | |
100 | ||
101 | - You are always welcome to review any PR, regardless of who it is | |
102 | assigned to. However, do not r+ PRs unless: | |
103 | - You are confident in that part of the code. | |
104 | - You are confident that nobody else wants to review it first. | |
105 | - For example, sometimes people will express a desire to review a | |
106 | PR before it lands, perhaps because it touches a particularly | |
107 | sensitive part of the code. | |
108 | - Always be polite when reviewing: you are a representative of the | |
109 | Rust project, so it is expected that you will go above and beyond | |
110 | when it comes to the [Code of Conduct]. | |
111 | ||
532ac7d7 | 112 | [Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct |
a1dfa0c6 XL |
113 | |
114 | ### high-five | |
115 | ||
dc9dc135 | 116 | Once you have r+ rights, you can also be added to the [high-five][hi5] |
a1dfa0c6 XL |
117 | rotation. high-five is the bot that assigns incoming PRs to |
118 | reviewers. If you are added, you will be randomly selected to review | |
119 | PRs. If you find you are assigned a PR that you don't feel comfortable | |
120 | reviewing, you can also leave a comment like `r? @so-and-so` to assign | |
121 | to someone else — if you don't know who to request, just write `r? | |
122 | @nikomatsakis for reassignment` and @nikomatsakis will pick someone | |
123 | for you. | |
124 | ||
125 | [hi5]: https://github.com/rust-highfive | |
126 | ||
127 | Getting on the high-five list is much appreciated as it lowers the | |
128 | review burden for all of us! However, if you don't have time to give | |
129 | people timely feedback on their PRs, it may be better that you don't | |
130 | get on the list. | |
131 | ||
132 | ### Full team membership | |
133 | ||
134 | Full team membership is typically extended once someone made many | |
135 | contributions to the Rust compiler over time, ideally (but not | |
136 | necessarily) to multiple areas. Sometimes this might be implementing a | |
137 | new feature, but it is also important — perhaps more important! — to | |
138 | have time and willingness to help out with general upkeep such as | |
139 | bugfixes, tracking regressions, and other less glamorous work. |