Merge pull request #2460 from cyrgani/icebreaker
remove the archived ICE ping groups
This commit is contained in:
commit
d68b8d6280
|
|
@ -63,10 +63,8 @@
|
|||
- [Notification groups](notification-groups/about.md)
|
||||
- [Apple](notification-groups/apple.md)
|
||||
- [ARM](notification-groups/arm.md)
|
||||
- [Cleanup Crew](notification-groups/cleanup-crew.md)
|
||||
- [Emscripten](notification-groups/emscripten.md)
|
||||
- [Fuchsia](notification-groups/fuchsia.md)
|
||||
- [LLVM](notification-groups/llvm.md)
|
||||
- [RISC-V](notification-groups/risc-v.md)
|
||||
- [Rust for Linux](notification-groups/rust-for-linux.md)
|
||||
- [WASI](notification-groups/wasi.md)
|
||||
|
|
|
|||
|
|
@ -158,9 +158,6 @@ feel comfortable jumping straight into the large `rust-lang/rust` codebase.
|
|||
The following tasks are doable without much background knowledge but are
|
||||
incredibly helpful:
|
||||
|
||||
- [Cleanup crew][iceb]: find minimal reproductions of ICEs, bisect
|
||||
regressions, etc. This is a way of helping that saves a ton of time for
|
||||
others to fix an error later.
|
||||
- [Writing documentation][wd]: if you are feeling a bit more intrepid, you could try
|
||||
to read a part of the code and write doc comments for it. This will help you
|
||||
to learn some part of the compiler while also producing a useful artifact!
|
||||
|
|
@ -179,7 +176,6 @@ incredibly helpful:
|
|||
[users]: https://users.rust-lang.org/
|
||||
[so]: http://stackoverflow.com/questions/tagged/rust
|
||||
[community-library]: https://github.com/rust-lang/rfcs/labels/A-community-library
|
||||
[iceb]: ./notification-groups/cleanup-crew.md
|
||||
[wd]: ./contributing.md#writing-documentation
|
||||
[wg]: https://rust-lang.github.io/compiler-team/working-groups/
|
||||
[triage]: ./contributing.md#issue-triage
|
||||
|
|
|
|||
|
|
@ -21,9 +21,7 @@ search for existing issues that haven't been claimed yet.
|
|||
Here's the list of the notification groups:
|
||||
- [Apple](./apple.md)
|
||||
- [ARM](./arm.md)
|
||||
- [Cleanup Crew](./cleanup-crew.md)
|
||||
- [Emscripten](./emscripten.md)
|
||||
- [LLVM Icebreakers](./llvm.md)
|
||||
- [RISC-V](./risc-v.md)
|
||||
- [WASI](./wasi.md)
|
||||
- [WebAssembly](./wasm.md)
|
||||
|
|
@ -64,9 +62,7 @@ Example PRs:
|
|||
|
||||
* [Example of adding yourself to the Apple group.](https://github.com/rust-lang/team/pull/1434)
|
||||
* [Example of adding yourself to the ARM group.](https://github.com/rust-lang/team/pull/358)
|
||||
* [Example of adding yourself to the Cleanup Crew.](https://github.com/rust-lang/team/pull/221)
|
||||
* [Example of adding yourself to the Emscripten group.](https://github.com/rust-lang/team/pull/1579)
|
||||
* [Example of adding yourself to the LLVM group.](https://github.com/rust-lang/team/pull/140)
|
||||
* [Example of adding yourself to the RISC-V group.](https://github.com/rust-lang/team/pull/394)
|
||||
* [Example of adding yourself to the WASI group.](https://github.com/rust-lang/team/pull/1580)
|
||||
* [Example of adding yourself to the WebAssembly group.](https://github.com/rust-lang/team/pull/1581)
|
||||
|
|
@ -81,9 +77,7 @@ group. For example:
|
|||
```text
|
||||
@rustbot ping apple
|
||||
@rustbot ping arm
|
||||
@rustbot ping cleanup-crew
|
||||
@rustbot ping emscripten
|
||||
@rustbot ping icebreakers-llvm
|
||||
@rustbot ping risc-v
|
||||
@rustbot ping wasi
|
||||
@rustbot ping wasm
|
||||
|
|
@ -92,12 +86,12 @@ group. For example:
|
|||
|
||||
To make some commands shorter and easier to remember, there are aliases,
|
||||
defined in the [`triagebot.toml`] file. For example, all of these commands
|
||||
are equivalent and will ping the Cleanup Crew:
|
||||
are equivalent and will ping the Apple group:
|
||||
|
||||
```text
|
||||
@rustbot ping cleanup
|
||||
@rustbot ping bisect
|
||||
@rustbot ping reduce
|
||||
@rustbot ping apple
|
||||
@rustbot ping macos
|
||||
@rustbot ping ios
|
||||
```
|
||||
|
||||
Keep in mind that these aliases are meant to make humans' life easier.
|
||||
|
|
|
|||
|
|
@ -1,90 +0,0 @@
|
|||
# Cleanup Crew
|
||||
|
||||
**Github Label:** [ICEBreaker-Cleanup-Crew] <br>
|
||||
**Ping command:** `@rustbot ping cleanup-crew`
|
||||
|
||||
[ICEBreaker-Cleanup-Crew]: https://github.com/rust-lang/rust/labels/ICEBreaker-Cleanup-Crew
|
||||
|
||||
The "Cleanup Crew" are focused on improving bug reports. Specifically,
|
||||
the goal is to try to ensure that every bug report has all the
|
||||
information that will be needed for someone to fix it:
|
||||
|
||||
* a minimal, standalone example that shows the problem
|
||||
* links to duplicates or related bugs
|
||||
* if the bug is a regression (something that used to work, but no longer does),
|
||||
then a bisection to the PR or nightly that caused the regression
|
||||
|
||||
This kind of cleanup is invaluable in getting bugs fixed. Better
|
||||
still, it can be done by anybody who knows Rust, without any
|
||||
particularly deep knowledge of the compiler.
|
||||
|
||||
Let's look a bit at the workflow for doing "cleanup crew" actions.
|
||||
|
||||
## Finding a minimal, standalone example
|
||||
|
||||
Here the ultimate goal is to produce an example that reproduces the same
|
||||
problem but without relying on any external crates. Such a test ought to contain
|
||||
as little code as possible, as well. This will make it much easier to isolate the problem.
|
||||
|
||||
However, even if the "ultimate minimal test" cannot be achieved, it's
|
||||
still useful to post incremental minimizations. For example, if you
|
||||
can eliminate some of the external dependencies, that is helpful, and
|
||||
so forth.
|
||||
|
||||
It's particularly useful to reduce to an example that works
|
||||
in the [Rust playground](https://play.rust-lang.org/), rather than
|
||||
requiring people to checkout a cargo build.
|
||||
|
||||
There are many resources for how to produce minimized test cases. Here
|
||||
are a few:
|
||||
|
||||
* The [rust-reduce](https://github.com/jethrogb/rust-reduce) tool can try to reduce
|
||||
code automatically.
|
||||
* The [C-reduce](https://github.com/csmith-project/creduce) tool also works
|
||||
on Rust code, though it requires that you start from a single
|
||||
file. (A post explaining how to do it can be found [here](https://insaneinside.net/2017/09/12/whole-crate-bug-reduction-with-creduce.html).)
|
||||
* pnkfelix's [Rust Bug Minimization Patterns] blog post
|
||||
* This post focuses on "heavy bore" techniques, where you are
|
||||
starting with a large, complex cargo project that you wish to
|
||||
narrow down to something standalone.
|
||||
|
||||
[Rust Bug Minimization Patterns]: http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/
|
||||
|
||||
## Links to duplicate or related bugs
|
||||
|
||||
If you are on the "Cleanup Crew", you will sometimes see multiple bug
|
||||
reports that seem very similar. You can link one to the other just by
|
||||
mentioning the other bug number in a Github comment. Sometimes it is
|
||||
useful to close duplicate bugs. But if you do so, you should always
|
||||
copy any test case from the bug you are closing to the other bug that
|
||||
remains open, as sometimes duplicate-looking bugs will expose
|
||||
different facets of the same problem.
|
||||
|
||||
## Bisecting regressions
|
||||
|
||||
For regressions (something that used to work, but no longer does), it
|
||||
is super useful if we can figure out precisely when the code stopped
|
||||
working. The gold standard is to be able to identify the precise
|
||||
**PR** that broke the code, so we can ping the author, but even
|
||||
narrowing it down to a nightly build is helpful, especially as that
|
||||
then gives us a range of PRs. (One other challenge is that we
|
||||
sometimes land "rollup" PRs, which combine multiple PRs into one.)
|
||||
|
||||
### cargo-bisect-rustc
|
||||
|
||||
To help in figuring out the cause of a regression we have a tool
|
||||
called [cargo-bisect-rustc]. It will automatically download and test
|
||||
various builds of rustc. For recent regressions, it is even able to
|
||||
use the builds from our CI to track down the regression to a specific
|
||||
PR; for older regressions, it will simply identify a nightly.
|
||||
|
||||
To learn to use [cargo-bisect-rustc], check out [this blog post][learn], which
|
||||
gives a quick introduction to how it works. Additionally, there is a [Guide]
|
||||
which goes into more detail on how to use it. You can also ask questions at
|
||||
the Zulip stream [`#t-compiler/cargo-bisect-rustc`][zcbr], or help in
|
||||
improving the tool.
|
||||
|
||||
[cargo-bisect-rustc]: https://github.com/rust-lang/cargo-bisect-rustc/
|
||||
[learn]: https://blog.rust-lang.org/inside-rust/2019/12/18/bisecting-rust-compiler.html
|
||||
[zcbr]: https://rust-lang.zulipchat.com/#narrow/stream/217417-t-compiler.2Fcargo-bisect-rustc
|
||||
[Guide]: https://rust-lang.github.io/cargo-bisect-rustc/
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
# LLVM Icebreakers Notification group
|
||||
|
||||
**Github Label:** [A-LLVM] <br>
|
||||
**Ping command:** `@rustbot ping icebreakers-llvm`
|
||||
|
||||
[A-LLVM]: https://github.com/rust-lang/rust/labels/A-LLVM
|
||||
|
||||
*Note*: this notification group is *not* the same as the LLVM working group
|
||||
(WG-llvm).
|
||||
|
||||
The "LLVM Icebreakers Notification Group" are focused on bugs that center around
|
||||
LLVM. These bugs often arise because of LLVM optimizations gone awry, or as the
|
||||
result of an LLVM upgrade. The goal here is:
|
||||
|
||||
- to determine whether the bug is a result of us generating invalid LLVM IR,
|
||||
or LLVM misoptimizing;
|
||||
- if the former, to fix our IR;
|
||||
- if the latter, to try and file a bug on LLVM (or identify an existing bug).
|
||||
|
||||
The group may also be asked to weigh in on other sorts of LLVM-focused
|
||||
questions.
|
||||
|
||||
## Helpful tips and options
|
||||
|
||||
The ["Debugging LLVM"][d] section of the
|
||||
rustc-dev-guide gives a step-by-step process for how to help debug bugs
|
||||
caused by LLVM. In particular, it discusses how to emit LLVM IR, run
|
||||
the LLVM IR optimization pipelines, and so forth. You may also find
|
||||
it useful to look at the various codegen options listed under `-C help`
|
||||
and the internal options under `-Z help` -- there are a number that
|
||||
pertain to LLVM (just search for LLVM).
|
||||
|
||||
[d]: ../backend/debugging.md
|
||||
|
||||
## If you do narrow to an LLVM bug
|
||||
|
||||
The ["Debugging LLVM"][d] section also describes what to do once
|
||||
you've identified the bug.
|
||||
Loading…
Reference in New Issue