]> git.proxmox.com Git - rustc.git/blame - src/doc/rustc-guide/src/compiler-team.md
New upstream version 1.35.0+dfsg1
[rustc.git] / src / doc / rustc-guide / src / compiler-team.md
CommitLineData
a1dfa0c6
XL
1# About the compiler team
2
532ac7d7
XL
3rustc is maintained by the [Rust compiler team][team]. The people who belong to
4this team collectively work to track regressions and implement new features.
5Members of the Rust compiler team are people who have made significant
6contributions to rustc and its design.
7
8[team]: https://www.rust-lang.org/governance/teams/language-and-compiler
a1dfa0c6
XL
9
10## Discussion
11
12Currently the compiler team chats in a number of places. There is an
13ongoing [thread] on the internals board about trying to find a permanent
14home. 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
22If you're interested in figuring out who can answer questions about a
23particular part of the compiler, or you'd just like to know who works on what,
24check out our [experts directory](https://github.com/rust-lang/compiler-team/blob/master/experts/MAP.md).
25It contains a listing of the various parts of the compiler and a list of people
26who are experts on each one.
27
a1dfa0c6
XL
28## Rust compiler meeting
29
30The compiler team has a weekly meeting where we do triage and try to
31generally stay on top of new bugs, regressions, and other things. This
32general plan for this meeting can be found in
33[the rust-compiler-meeting etherpad][etherpad]. It works roughly as
34follows:
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
49The meeting currently takes place on Thursdays at 10am Boston time
50(UTC-4 typically, but daylight savings time sometimes makes things
51complicated).
52
53The meeting is held over a "chat medium" — it used to be IRC, but we
54are currently in the process of evaluating other alternatives. Check
55the [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
64Membership in the Rust team is typically offered when someone has been
65making significant contributions to the compiler for some
66time. Membership is both a recognition but also an obligation:
67compiler team members are generally expected to help with upkeep as
68well as doing reviews and other work.
69
70If you are interested in becoming a compiler team member, the first
71thing to do is to start fixing some bugs, or get involved in a working
72group. 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)
74or
75[E-mentor](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-mentor).
76
77### r+ rights
78
79Once you have made a number of individual PRs to rustc, we will often
80offer r+ privileges. This means that you have the right to instruct
81"bors" (the robot that manages which PRs get landed into rustc) to
82merge 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
87The 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
104Once you have r+ rights, you can also be added to the high-five
105rotation. high-five is the bot that assigns incoming PRs to
106reviewers. If you are added, you will be randomly selected to review
107PRs. If you find you are assigned a PR that you don't feel comfortable
108reviewing, you can also leave a comment like `r? @so-and-so` to assign
109to someone else — if you don't know who to request, just write `r?
110@nikomatsakis for reassignment` and @nikomatsakis will pick someone
111for you.
112
113[hi5]: https://github.com/rust-highfive
114
115Getting on the high-five list is much appreciated as it lowers the
116review burden for all of us! However, if you don't have time to give
117people timely feedback on their PRs, it may be better that you don't
118get on the list.
119
120### Full team membership
121
122Full team membership is typically extended once someone made many
123contributions to the Rust compiler over time, ideally (but not
124necessarily) to multiple areas. Sometimes this might be implementing a
125new feature, but it is also important — perhaps more important! — to
126have time and willingness to help out with general upkeep such as
127bugfixes, tracking regressions, and other less glamorous work.