Sheriffing/How To/Recommended Try Practices: Difference between revisions
Jump to navigation
Jump to search
ChrisCooper (talk | contribs) m (ChrisCooper moved page Sheriffing/How:To:Recommended Try Practices to Sheriffing/How To/Recommended Try Practices: More intuitive naming scheme) |
(linked to Firefox docs for further information about Try server some cleanup) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Sheriffing How To|Recommended Try practices}} | {{Sheriffing How To|Recommended Try practices}} | ||
The [https://wiki.mozilla.org/ReleaseEngineering/TryServer TryServer] is a critical piece of our infrastructure for ensuring that patches are suitable for landing prior to being pushed. However, proper usage is important to avoid pushing under- or over-tested patches. This page is intended to provide some recommended practices for finding the right balance | The [https://wiki.mozilla.org/ReleaseEngineering/TryServer TryServer] is a critical piece of our infrastructure for ensuring that patches are suitable for landing prior to being pushed. However, proper [https://firefox-source-docs.mozilla.org/tools/try/index.html usage] is important to avoid pushing under- or over-tested patches. This page is intended to provide some recommended practices for finding the right balance. | ||
Note that the guidelines below are not a substitute for using your best | Note that the guidelines below are not a substitute for using your best judgment. The guidelines below are intended to be general recommendations but not absolute musts. | ||
<ol> | <ol> | ||
<li>In many cases, | <li>In many cases, running all builds and tests is overkill and <b>should be avoided</b>. A full Try run consumes <b><u>over 500hrs of machine time</u></b> to generate a full set of builds and run the full suite of tests across them. This can have a real impact on wait times across resource-constrained platforms, including production runs.</li> | ||
<li>If in doubt, run both debug and opt builds.</li> | <li>If in doubt, run both debug and opt builds.</li> | ||
<li>If the patch only affects one platform, only that platform should have builds and tests. | <li>If the patch only affects one platform, only that platform should have builds and tests.</li> | ||
<li>Be aware of which test suites are likely to be affected by your patch and avoid running others that won't. | |||
<ul><li>For example, a devtools-only change is unlikely to break any tests outside of mochitest-dt and xpcshell.</li></ul></li> | |||
<li>Be aware of which test suites are likely to be affected by your patch and avoid running others that won't. | <li>If the code is cross-platform, a <i>T-style</i> run (build on all platforms, test on one) will find most problems while making best use of resources. (Use copy several filter changes with <code>./mach try chooser</code> and copy and paste if necessary). | ||
<ul><li>For example, a devtools-only change is unlikely to break any tests outside of mochitest-dt and xpcshell.</li></ul> | |||
<li>If the code is cross-platform, a <i>T-style</i> run (build on all platforms, test on one) will find most problems while making best use of resources. | |||
<ul> | <ul> | ||
<li> | <li>Linux64 is the best choice for the test platform as it is the least resource-constrained.</li> | ||
</ul> | </ul> | ||
</li> | </li> | ||
<li>If you no longer need builds/tests from a run, cancel the remaining jobs. | <li>If you no longer need builds/tests from a run, cancel the remaining jobs. | ||
<ul> | <ul> | ||
<li>Use the stop button on Treeherder's job details panel.</li> | <li>Use the stop button on Treeherder's job details panel.</li> | ||
Line 35: | Line 30: | ||
</ol> | </ol> | ||
[https:// | [https://catlee.github.io/highscores/highscores.html High scores!] |
Latest revision as of 15:30, 28 February 2020
The TryServer is a critical piece of our infrastructure for ensuring that patches are suitable for landing prior to being pushed. However, proper usage is important to avoid pushing under- or over-tested patches. This page is intended to provide some recommended practices for finding the right balance.
Note that the guidelines below are not a substitute for using your best judgment. The guidelines below are intended to be general recommendations but not absolute musts.
- In many cases, running all builds and tests is overkill and should be avoided. A full Try run consumes over 500hrs of machine time to generate a full set of builds and run the full suite of tests across them. This can have a real impact on wait times across resource-constrained platforms, including production runs.
- If in doubt, run both debug and opt builds.
- If the patch only affects one platform, only that platform should have builds and tests.
- Be aware of which test suites are likely to be affected by your patch and avoid running others that won't.
- For example, a devtools-only change is unlikely to break any tests outside of mochitest-dt and xpcshell.
- If the code is cross-platform, a T-style run (build on all platforms, test on one) will find most problems while making best use of resources. (Use copy several filter changes with
./mach try chooser
and copy and paste if necessary).- Linux64 is the best choice for the test platform as it is the least resource-constrained.
- If you no longer need builds/tests from a run, cancel the remaining jobs.
- Use the stop button on Treeherder's job details panel.
- Unneeded jobs are a frequent source of frustration-inducing backlog.
- Any existing jobs on a push can be retriggered without a new push.
- Use the retrigger button on Treeherder's job details panel.
- You can trigger as many additional runs as needed (i.e. trying to track down an intermittent failure).
- Retriggering a build will cause all tests to be run again after the build completes.