Open
Description
SLOGAN: "If we can't repro, we can't fix"
ONE PROBLEM AT A TIME: A repro case with 2 problems multiplies our work by 4. A repro case with 3 problems multiplies our work by a factor of 8. A repro case with 10 problems multiplies our work by a factor of 1,024.
BIG IDEA: Make it easy for us to repro. Think about it from our point of view. We need to pinpoint the cause of a problem in C++ code. That means we must trigger the problem from Python code and also compare / contrast with Python code that does NOT trigger the problem. Make that easy for us!
More formally:
A bug report shall contain a minimal repro-case consisting of
- Code that works via a workaround if possible. Otherwise, put "BLOCKER" in the title of the bug report and it gets override priority from us
- Code that doesn't work and exposes the bug. Make the diff of the code-that-works and the code-that-doesn't work as SMALL as possible. Best case is one change: one function call, one type annotation, one parameter, etc. If one is not possible, make it as small as possible.
- build & run instructions -- typically a copy-paste of the command-line terminal. All dependencies must be included in your repro case. "If we can't repro, we can't fix!"
- Verbal description -- can be minimal
- Commit and push the code-that-works and code-that-doesn't work to a branch or to permanent location that is easy for the team to find and WILL NOT CHANGE.
- EMPHASIS: These files must NEVER BE CHANGED. They must either go in a permanent bug branch or copied into bug directories so the compiler team can find them