]> git.proxmox.com Git - rustc.git/blame - src/doc/rustc-dev-guide/src/compiler-team.md
New upstream version 1.56.0~beta.4+dfsg1
[rustc.git] / src / doc / rustc-dev-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
416331ca 8[team]: https://www.rust-lang.org/governance/teams/compiler
a1dfa0c6
XL
9
10## Discussion
11
6a06907d 12Currently 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
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,
416331ca 24check out our [experts directory][experts].
532ac7d7
XL
25It contains a listing of the various parts of the compiler and a list of people
26who 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
32The compiler team has a weekly meeting where we do triage and try to
cdc7bbd5
XL
33generally stay on top of new bugs, regressions, and discuss important
34things in general.
35They 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
59The meeting currently takes place on Thursdays at 10am Boston time
60(UTC-4 typically, but daylight savings time sometimes makes things
61complicated).
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
70Membership in the Rust team is typically offered when someone has been
71making significant contributions to the compiler for some
72time. Membership is both a recognition but also an obligation:
73compiler team members are generally expected to help with upkeep as
74well as doing reviews and other work.
75
76If you are interested in becoming a compiler team member, the first
77thing to do is to start fixing some bugs, or get involved in a working
78group. 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)
80or
81[E-mentor](https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AE-mentor).
82
94222f64
XL
83You 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),
85some of them may contain work that is still useful - refer to the
86associated issues, if any - and only needs some finishing touches
87for which the original author didn't have time.
88
a1dfa0c6
XL
89### r+ rights
90
91Once you have made a number of individual PRs to rustc, we will often
92offer r+ privileges. This means that you have the right to instruct
93"bors" (the robot that manages which PRs get landed into rustc) to
94merge 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
99The 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 116Once you have r+ rights, you can also be added to the [high-five][hi5]
a1dfa0c6
XL
117rotation. high-five is the bot that assigns incoming PRs to
118reviewers. If you are added, you will be randomly selected to review
119PRs. If you find you are assigned a PR that you don't feel comfortable
120reviewing, you can also leave a comment like `r? @so-and-so` to assign
121to someone else — if you don't know who to request, just write `r?
122@nikomatsakis for reassignment` and @nikomatsakis will pick someone
123for you.
124
125[hi5]: https://github.com/rust-highfive
126
127Getting on the high-five list is much appreciated as it lowers the
128review burden for all of us! However, if you don't have time to give
129people timely feedback on their PRs, it may be better that you don't
130get on the list.
131
132### Full team membership
133
134Full team membership is typically extended once someone made many
135contributions to the Rust compiler over time, ideally (but not
136necessarily) to multiple areas. Sometimes this might be implementing a
137new feature, but it is also important — perhaps more important! — to
138have time and willingness to help out with general upkeep such as
139bugfixes, tracking regressions, and other less glamorous work.