@@ -170,7 +170,38 @@ communicate with the server to coordinate running tests (see
170
170
171
171
## Crater
172
172
173
- TODO
173
+ [ Crater] ( https://github.com/rust-lang-nursery/crater ) is a tool for compiling
174
+ and running tests for _ every_ crate on [ crates.io] ( https://crates.io/ ) . It is
175
+ mainly used for checking for extent of breakage when implementing potentially
176
+ breaking changes.
177
+
178
+ ### When to run Crater
179
+
180
+ You should request a crater run if your PR makes large changes to the compiler
181
+ or could cause breakage. If you are unsure, feel free to ask your PR's reviewer.
182
+
183
+ ### Requesting Crater Runs
184
+
185
+ The rust team maintains a few machines that can be used for running crater runs
186
+ on the changes introduced by a PR. If your PR needs a crater run, leave a
187
+ comment for the triage team in the PR thread. Your will be enqueued by the
188
+ triage team and the results will be posted when they are ready. A crater run
189
+ usually takes a few days (as of this writing).
190
+
191
+ While crater is really useful, it is also important to be aware of a few caveats:
192
+
193
+ - Not all code is on crates.io! There is a lot of code in repos on GitHub and
194
+ elsewhere. Also, companies may not wish to publish their code. Thus, a
195
+ successful crater run is not a magically green light that there will be no
196
+ breakage; you still need to be careful.
197
+
198
+ - Crater only runs Linux builds (on x86_64, I believe). Thus, other
199
+ architectures and platforms are not tested. Critically, this includes
200
+ Windows.
201
+
202
+ - Many crates are not tested. This could be for a lot of reasons, including
203
+ that the crate doesn't compile any more (e.g. used old nightly features),
204
+ has broken or flaky tests, requires network access, or other reasons.
174
205
175
206
## Further reading
176
207
0 commit comments