]>
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 | ||
8 | [team]: https://www.rust-lang.org/governance/teams/language-and-compiler | |
a1dfa0c6 XL |
9 | |
10 | ## Discussion | |
11 | ||
12 | Currently the compiler team chats in a number of places. There is an | |
13 | ongoing [thread] on the internals board about trying to find a permanent | |
14 | home. In any case, you can find people in one of three places at the moment: | |
15 | ||
16 | - The `#rustc` channel on mozilla's IRC (`irc.mozilla.org`) | |
17 | - The `t-compiler` stream on [the Zulip instance](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler) | |
18 | - The `compiler` channel on the [rust-lang discord](https://discord.gg/rust-lang) | |
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, | |
24 | check out our [experts directory](https://github.com/rust-lang/compiler-team/blob/master/experts/MAP.md). | |
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 | ||
a1dfa0c6 XL |
28 | ## Rust compiler meeting |
29 | ||
30 | The compiler team has a weekly meeting where we do triage and try to | |
31 | generally stay on top of new bugs, regressions, and other things. This | |
32 | general plan for this meeting can be found in | |
33 | [the rust-compiler-meeting etherpad][etherpad]. It works roughly as | |
34 | follows: | |
35 | ||
36 | - **Review P-high bugs:** P-high bugs are those that are sufficiently | |
37 | important for us to actively track progress. P-high bugs should | |
38 | ideally always have an assignee. | |
39 | - **Look over new regressions:** we then look for new cases where the | |
40 | compiler broke previously working code in the wild. Regressions are | |
41 | almost always marked as P-high; the major exception would be bug | |
42 | fixes (though even there we often | |
43 | [aim to give warnings first][procedure]). | |
44 | - **Check I-nominated issues:** These are issues where feedback from | |
45 | the team is desired. | |
46 | - **Check for beta nominations:** These are nominations of things to | |
47 | backport to beta. | |
48 | ||
49 | The meeting currently takes place on Thursdays at 10am Boston time | |
50 | (UTC-4 typically, but daylight savings time sometimes makes things | |
51 | complicated). | |
52 | ||
53 | The meeting is held over a "chat medium" — it used to be IRC, but we | |
54 | are currently in the process of evaluating other alternatives. Check | |
55 | the [etherpad] to find the current home (and see | |
56 | [this internals thread][thread] for some ongoing discussion). | |
57 | ||
58 | [etherpad]: https://public.etherpad-mozilla.org/p/rust-compiler-meeting | |
59 | [thread]: https://internals.rust-lang.org/t/where-should-the-compiler-team-and-perhaps-working-groups-chat/7894 | |
60 | [procedure]: https://forge.rust-lang.org/rustc-bug-fix-procedure.html | |
61 | ||
62 | ## Team membership | |
63 | ||
64 | Membership in the Rust team is typically offered when someone has been | |
65 | making significant contributions to the compiler for some | |
66 | time. Membership is both a recognition but also an obligation: | |
67 | compiler team members are generally expected to help with upkeep as | |
68 | well as doing reviews and other work. | |
69 | ||
70 | If you are interested in becoming a compiler team member, the first | |
71 | thing to do is to start fixing some bugs, or get involved in a working | |
72 | group. One good way to find bugs is to look for | |
73 | [open issues tagged with E-easy](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-easy) | |
74 | or | |
75 | [E-mentor](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-mentor). | |
76 | ||
77 | ### r+ rights | |
78 | ||
79 | Once you have made a number of individual PRs to rustc, we will often | |
80 | offer r+ privileges. This means that you have the right to instruct | |
81 | "bors" (the robot that manages which PRs get landed into rustc) to | |
82 | merge a PR | |
83 | ([here are some instructions for how to talk to bors][homu-guide]). | |
84 | ||
85 | [homu-guide]: https://buildbot2.rust-lang.org/homu/ | |
86 | ||
87 | The guidelines for reviewers are as follows: | |
88 | ||
89 | - You are always welcome to review any PR, regardless of who it is | |
90 | assigned to. However, do not r+ PRs unless: | |
91 | - You are confident in that part of the code. | |
92 | - You are confident that nobody else wants to review it first. | |
93 | - For example, sometimes people will express a desire to review a | |
94 | PR before it lands, perhaps because it touches a particularly | |
95 | sensitive part of the code. | |
96 | - Always be polite when reviewing: you are a representative of the | |
97 | Rust project, so it is expected that you will go above and beyond | |
98 | when it comes to the [Code of Conduct]. | |
99 | ||
532ac7d7 | 100 | [Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct |
a1dfa0c6 XL |
101 | |
102 | ### high-five | |
103 | ||
104 | Once you have r+ rights, you can also be added to the high-five | |
105 | rotation. high-five is the bot that assigns incoming PRs to | |
106 | reviewers. If you are added, you will be randomly selected to review | |
107 | PRs. If you find you are assigned a PR that you don't feel comfortable | |
108 | reviewing, you can also leave a comment like `r? @so-and-so` to assign | |
109 | to someone else — if you don't know who to request, just write `r? | |
110 | @nikomatsakis for reassignment` and @nikomatsakis will pick someone | |
111 | for you. | |
112 | ||
113 | [hi5]: https://github.com/rust-highfive | |
114 | ||
115 | Getting on the high-five list is much appreciated as it lowers the | |
116 | review burden for all of us! However, if you don't have time to give | |
117 | people timely feedback on their PRs, it may be better that you don't | |
118 | get on the list. | |
119 | ||
120 | ### Full team membership | |
121 | ||
122 | Full team membership is typically extended once someone made many | |
123 | contributions to the Rust compiler over time, ideally (but not | |
124 | necessarily) to multiple areas. Sometimes this might be implementing a | |
125 | new feature, but it is also important — perhaps more important! — to | |
126 | have time and willingness to help out with general upkeep such as | |
127 | bugfixes, tracking regressions, and other less glamorous work. |