# How to Mark Regressions ## Regressions For regression bugs in Mozilla-Central, our policy is to tag the bug as a regression, identify the commits which caused the regression, then mark the bugs associated with those commits as causing the regression. ## What is a regression? A regression is a bug (in our scheme a `defect`) introduced by a [changeset](https://en.wikipedia.org/wiki/Changeset). - Bug 101 *fixes* Bug 100 with Change Set A - Bug 102 *reported which describes previously correct behavior now not happening* - Bug 102 *investigated and found to be introduced by Change Set A* ## Marking a Regression Bug These things are true about regressions: - **Bug Type** is `defect` - **Keywords** include `regression` - **Status_FirefoxNN** is `affected` for each version (in current nightly, beta, and release) of Firefox in which the bug was found - The bug’s description covers previously working behavior which is no longer working Until the change set which caused the regression has been found through [mozregression](https://mozilla.github.io/mozregression/) or another bisection tool, the bug should also have the `regressionwindow-wanted` keyword. Once the change set which caused the regression has been identified, remove the `regressionwindow-wanted` keyword and set the **Regressed By** field to the id of the bug associated with the change set. Setting the **Regressed By** field will update the **Regresses** field in the other bug. Set a needinfo for the author of the regressing patch asking them to fix or revert the regression. ## Previous Method Previously we over-loaded the **Blocks** and **Blocked By** fields to track the regression, setting **Blocks** to the id of the bug associated with the change set causing the regression, and using the `regression`, `regressionwindow-wanted` keywords and the status flags as described above. This made it difficult to understand what was a dependency and what was a regression when looking at dependency trees in Bugzilla. ## FAQs ## To be written