Skip to content

Commit 5f9379b

Browse files
committed
pr: add advice about hard-to-review changes
1 parent f15edb8 commit 5f9379b

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

Diff for: src/contributing.md

+31
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,39 @@ where contributors push changes to their personal fork and create pull requests
113113
bring those changes into the source repository. We have more info about how to use git
114114
when contributing to Rust under [the git section](./git.md).
115115

116+
> **Advice for potentially large, complex and/or very domain-specific changes**
117+
>
118+
> The compiler reviewers on rotation usually each have areas of the compiler that they know well,
119+
> but also have areas that they are not very familiar with. If your PR contains changes that are
120+
> large, complex, cross-cutting and/or highly domain-specific, it becomes very difficult to find a
121+
> suitable reviewer who is comfortable in reviewing all of the changes in such a PR. This is also
122+
> true if the changes are not only compiler-specific but also contains changes which fall under the
123+
> purview of reviewers from other teams, like the standard library team.
124+
>
125+
> Before making such changes, you are strongly encouraged to **discuss you proposed changes with the
126+
> compiler team beforehand** (and with other teams that the changes would require approval from),
127+
> and work with the compiler team to see if we can help you **break down a large potentially
128+
> unreviewable PR into a series of smaller more individually reviewable PRs**.
129+
>
130+
> You can communicate with the compiler team by creating a [#t-compiler thread on zulip][t-compiler]
131+
> to discuss your proposed changes.
132+
>
133+
> Communicating with the compiler team beforehand helps in several ways:
134+
>
135+
> 1. It increases the likelihood of your PRs being reviewed in a timely manner.
136+
> - We can help you identify suitable reviewers *before* you open actual PRs, or help find
137+
> advisors and liaisons to help you navigate the change procedures, or help with running
138+
> try-jobs, perf runs and crater runs as suitable.
139+
> 2. It helps the compiler team track your changes.
140+
> 3. The compiler team can perform vibe checks on your changes early and often, to see if the
141+
> direction of the changes align with what the compiler team prefers to see.
142+
> 4. Helps to avoid situations where you may have invested significant time and effort into large
143+
> changes that the compiler team might not be willing to accept, or finding out very late that the
144+
> changes are in a direction that the compiler team disagrees with.
145+
116146
[about-pull-requests]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests
117147
[development-models]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models#fork-and-pull-model
148+
[t-compiler]: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler
118149

119150
### r?
120151

0 commit comments

Comments
 (0)