Sheriffing/How To/Beta simulations: Difference between revisions

m
increased version numbers (Nightly = 148, Beta = 147)
m (increased version numbers (Nightly = 135, Beta = 134))
m (increased version numbers (Nightly = 148, Beta = 147))
 
(24 intermediate revisions by 4 users not shown)
Line 13: Line 13:
== SILENCING KNOWN PERMAFAILS ==
== SILENCING KNOWN PERMAFAILS ==
* If you need to import patches or backout something, make sure to start with an up to date local copy:
* If you need to import patches or backout something, make sure to start with an up to date local copy:
**<code>hg pull central</code>
**<code>git checkout main</code>
**<code>hg update central</code>
**<code>git pull</code>
If a permanent failure is known from previous simulations but not fixed according to the bug, it's helpful to prevent this failure to reduce the need for failure classifications and to provide a better picture when one looks at the whole beta simulation. These are the possibilities:
If a permanent failure is known from previous simulations but not fixed according to the bug, it's helpful to prevent this failure to reduce the need for failure classifications and to provide a better picture when one looks at the whole beta simulation. These are the possibilities:
*'''Fix on phabricator''': If there is a fix hosted on phabricator, import it to migitate the issue. By default, the <code>moz-phab patch</code> command will import all revisions a patch depends on (has as ancestors). If it's a patch series, import the last patch to also auto-import the previous ones:<br/>
*'''Fix on phabricator''': If there is a fix hosted on phabricator, import it to migitate the issue. By default, the <code>moz-phab patch</code> command will import all revisions a patch depends on (has as ancestors). If it's a patch series, import the last patch to also auto-import the previous ones:<br/>
<code>moz-phab patch D<number> --apply-to . </code><br/>
<code>moz-phab patch D<number> --apply-to @ </code><br/>
The patch number is mentioned at the top of the phabricator page for the patch.<br/>
The patch number is mentioned at the top of the phabricator page for the patch.<br/>
If the dependencies should not be imported, e.g. because they are not needed, they can be skipped like this:<br/>
If the dependencies should not be imported, e.g. because they are not needed, they can be skipped like this:<br/>
<code>moz-phab patch D<number> --apply-to . --skip-dependencies</code><br/>
<code>moz-phab patch D<number> --apply-to @ --skip-dependencies</code><br/>
*'''Back out change causing failure''': If the bug about the perma failure mentions the bug whose check-ins cause the failures, those can be backed out '''locally''' for the beta simulation:
*'''Back out change causing failure''': If the bug about the perma failure mentions the bug whose check-ins cause the failures, those can be backed out '''locally''' for the beta simulation:
**<code>hg oops -esr/er <revisions></code><span style="color:#14866d">//The revisions of the bug whose backout fixes the issue. The backout revisions will have to be deleted with hg histedit once the beta simulations have been created.</span>
**<code>git revert <git hash></code> (if more than one hash needs reverting use <code>git revert first_git_hash~1..last_git_hash --no-edit</code> and then squash them) <span style="color:#14866d">//The revisions of the bug whose backout fixes the issue. The backout revisions will have to be deleted with <code>git reset --hard origin/main</code> once the beta simulations have been created.<span>
*'''Disable failing test''': Similar to how frequently failing tests are disabled. Disadvantage: Additional failures or changes in the failure message in the test get missed.
*'''Disable failing test''': Similar to how frequently failing tests are disabled. Disadvantage: Additional failures or changes in the failure message in the test get missed.


== TRUNK AS EARLY BETA ==
== TRUNK AS EARLY BETA ==
*Open the '''console''' and run the following commands:
*Open the '''console''' and run the following commands:
**<code>hg pull central</code> - needed only if you didn't import/backout anything
**<code>git checkout main</code> - needed only if you didn't import/backout anything
**<code>hg update central</code> - needed only if you didn't import/backout anything
**<code>git pull</code> - needed only if you didn't import/backout anything
**<code>./mach try release -v 135.0b1 --tasks release-sim --migration central-to-beta</code> <span style="color:#FF0000">'''If not all the jobs shall run (e.g. to verify a test fix), append <code>--stage-changes</code> to the command, <code>hg commit -m "Early beta sim"</code> and select the jobs with <code>./mach try chooser --no-artifact</code>'''</span>
**<code>./mach try release -v 148.0b1 --tasks release-sim --migration main-to-beta</code> <span style="color:#FF0000">'''If not all the jobs shall run (e.g. to verify a test fix), append <code>--stage-changes</code> to the command, <code>git commit -a -m "Early beta sim"</code> and select the jobs with <code>./mach try chooser --no-artifact</code>'''</span>
***'''-v 135.0b1''': Sets the version number to use in the beta simulation. <span style="color:#FF0000">'''Replace "135" with the version number mention in the beta simulation document.'''</span>
***'''-v 148.0b1''': Sets the version number to use in the beta simulation. <span style="color:#FF0000">'''Replace "148" with the version number mention in the beta simulation document.'''</span>
***'''--tasks release-sim''': Activates the tasks which shall run for beta simulations to get scheduled.
***'''--tasks release-sim''': Activates the tasks which shall run for beta simulations to get scheduled.
***'''--migration central-to-beta''': Activates modification of the configuration to switch from central to beta.
***'''--migration main-to-beta''': Activates modification of the configuration to switch from central to beta.
This changes the configuration to the beta simulation, pushes to the Try server and reverts the changes.
This changes the configuration to the beta simulation, pushes to the Try server and reverts the changes.
Open the first Treeherder link in the console. It might take a few minutes for Treeherder to find that job, though. '''Add the link''' after you '''deselect''' the running and the green jobs and check that the classified jobs are visible, in the current date section at '''Run Links: Trunk as Early Beta in the Gdoc.'''
Open the first Treeherder link in the console. It might take a few minutes for Treeherder to find that job, though. '''Add the link''' after you '''deselect''' the running and the green jobs and check that the classified jobs are visible, in the current date section at '''Run Links: Trunk as Early Beta in the Gdoc.'''
* To build locally, run <code>./mach try release -v 135.0b1 --tasks release-sim --migration central-to-beta --stage-changes && ./mach build</code> - do to not use artifact builds.
* To build locally, run <code>./mach try release -v 148.0b1 --tasks release-sim --migration main-to-beta --stage-changes && ./mach build</code> - do to not use artifact builds.


== TRUNK AS LATE BETA ==
== TRUNK AS LATE BETA ==
To create a central-as-late-beta simulation, go to the console and use the following commands:
To create a central-as-late-beta simulation, go to the console and use the following commands:
*<code>./mach try release -v 135.0b12 --tasks release-sim --migration central-to-beta --migration early-to-late-beta</code>
*<code>./mach try release -v 148.0b12 --tasks release-sim --migration main-to-beta --migration early-to-late-beta</code>
Note the different version number '''135.0b12''' compared to the early beta's '''135.0b1'''.
Note the different version number '''148.0b12''' compared to the early beta's '''148.0b1'''.
<br />
<br />
Add the link in the document after you deselect running and green jobs, in the current date section at RUN LINKS Trunk as Late Beta.<br />
Add the link in the document after you deselect running and green jobs, in the current date section at RUN LINKS Trunk as Late Beta.<br />
Line 49: Line 49:
<br />
<br />
When <span style="color:#14866d">done</span>, <span style="color:#14866d">clean up the repository</span>:
When <span style="color:#14866d">done</span>, <span style="color:#14866d">clean up the repository</span>:
*<code>hg purge</code>: Removes the backup files generate when the command to generate the beta simulations modified configuration files.
*<code>git reset --hard origin/main</code>: Removes the backup files generate when the command to generate the beta simulations modified configuration files.
<br />
<br />
After the beta simulations are done:
After the beta simulations are done:
Line 66: Line 66:
This should be run weekly after all the uplifts to beta for the Thursday beta are done. Skip it if it's the last week of the Nigthly cycle - then mozilla-beta has already been merged to release. It's based on mozilla-beta and simulates the behavior when it switches to mozilla-release.
This should be run weekly after all the uplifts to beta for the Thursday beta are done. Skip it if it's the last week of the Nigthly cycle - then mozilla-beta has already been merged to release. It's based on mozilla-beta and simulates the behavior when it switches to mozilla-release.
<br />
<br />
*<code>hg pull beta</code>
*<code>git checkout beta</code>
*<code>hg update beta</code>
*<code>git pull</code>
*<code>./mach try release -v 134.0 --tasks release-sim --migration beta-to-release</code>
*<code>./mach try release -v 147.0 --tasks release-sim --migration beta-to-release</code>
'''134.0''' should be replaced with the current version in mozilla-beta (should be one version less than in mozilla-central which is mentioned in Gecko XX beta simulation document).
'''147.0''' should be replaced with the current version in mozilla-beta (should be one version less than in mozilla-central which is mentioned in Gecko XX beta simulation document).
Issues found should reported similar to bugs for beta. Differences:
Issues found should reported similar to bugs for beta. Differences:
* Set status-firefoxXX to '''affected''' for the two highest version numbers.
* Set status-firefoxXX to '''affected''' for the two highest version numbers.
Confirmed users
609

edits