Confirmed users
14,525
edits
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Finding a Regression Window = | = Finding a Regression Window = | ||
== How Mozregression Works == | == How Mozregression Works == | ||
Mozregression works by downloading Firefox Nightly builds from a range of dates allowing you to easily narrow down the first Nightly which introduced a bug. Once a Nightly is downloaded and installed, Mozregression will start Firefox with a temporary profile and allow you to test your bug. After testing the bug, you give Mozregression a ''good'' or ''bad'' command and it will split the range in half, downloading the next build. Once the range has been narrowed down to a single day it will give you a pushlog for the build that will identify the changes which may have caused the bug. This should be attached to the bug report. | [http://mozilla.github.io/mozregression/install.html Mozregression] works by downloading Firefox Nightly builds from a range of dates allowing you to easily narrow down the first Nightly which introduced a bug. Once a Nightly is downloaded and installed, Mozregression will start Firefox with a temporary profile and allow you to test your bug. After testing the bug, you give Mozregression a ''good'' or ''bad'' command and it will split the range in half, downloading the next build. Once the range has been narrowed down to a single day it will give you a pushlog for the build that will identify the changes which may have caused the bug. This should be attached to the bug report. | ||
As mentioned above, the range will first be narrowed down to a particular Nightly build, then continue to an Inbound build, which will often get us down to a single patch. After the Nightly build search is done, mozregression will note the range for it, then continue to bisect the Inbound builds. When recording the results of mozregression, it is useful to record the Nightly range as well, even if the Inbound range is found. | As mentioned above, the range will first be narrowed down to a particular Nightly build, then continue to an Inbound build, which will often get us down to a single patch. After the Nightly build search is done, mozregression will note the range for it, then continue to bisect the Inbound builds. When recording the results of mozregression, it is useful to record the Nightly range as well, even if the Inbound range is found. | ||
Line 16: | Line 8: | ||
'''''Note: We recommend [[#Narrowing_the_Range|narrowing down the range]] manually before using mozregression.''''' | '''''Note: We recommend [[#Narrowing_the_Range|narrowing down the range]] manually before using mozregression.''''' | ||
Using mozregression is as simple as running ''mozregression'' from a command prompt. However, this will start with Nightly builds from January 1, 2009 which could make finding the regression range a longer process. Assuming you know the build dates for the first bad and last good Nightly you would run ''mozgression --good YYYY-MM-DD --bad YYYY-MM-DD'' where YYYY-MM-DD is the date of each build. See [[#Narrowing_the_Range|narrowing down the range]] for information on getting those dates. | |||
1) Open a command prompt and run ''mozgression --good YYYY-MM-DD --bad YYYY-MM-DD'' where YYYY-MM-DD is the range of dates you want to test. | |||
2) Mozregression will download builds between those dates, start with a new profile, and allow you to test for your bug. | |||
3) Once you're done testing, switch back to the command prompt and mark the status of the build: | |||
* ''bad'' if the build reproduces the bug | |||
* ''good'' if the build does not reproduce the bug | |||
* ''skip'' if you want to skip testing the bug in that build | |||
* ''broken'' if the build does not work and you're unable to test your bug | |||
4) Mozregression will bisect the range and grab the next nightly, repeating the process above | |||
5) Once the range has been narrowed to a single day it will provide changeset IDs and a pushlog for the range. | |||
* Make note of this and copy it to your bug report. | |||
6) Mozregression will then begin bisecting the range with mozilla-inbound builds | |||
* You can skip this step unless someone has asked you to bisect the range further. | |||
== Narrowing the Range == | == Narrowing the Range == |