Commit graph

155 commits

Author SHA1 Message Date
Marco Castelluccio
5aca2dd1e3 Bug 1639164 - Ignore chunk number when matching task labels with configurations returned by bugbug. r=jmaher DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D104503
2021-02-09 14:08:44 +00:00
Bob Clary
f53d2424e1 Bug 1675330 - Do not use exception tasks when replacing tasks using index-search. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D96565
2020-11-16 18:18:43 +00:00
Andrew Halberstadt
1e76ae8e1f Bug 1673436 - [taskgraph] Run more manifests per-push on autoland, r=marco
This decreases the scheduling algorithm from a CT_MEDIUM (0.8) threshold to
CT_LOW (0.7). It also reduces the threshold used in the manifest resolving
algorithm down to 0.5. This means we'll have more "ride-along" manifests that
happen to be in the same chunk as the more important ones.

Differential Revision: https://phabricator.services.mozilla.com/D94757
2020-11-02 21:31:05 +00:00
Ricky Stewart
02a7b4ebdf Bug 1654103: Standardize on Black for Python code in mozilla-central.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00
Bogdan Tara
da1098d4aa Backed out 10 changesets (bug 1654103, bug 1672023, bug 1518999) for PanZoomControllerTest.touchEventForResult gv-junit failures CLOSED TREE
Backed out changeset ff3fb0b4a512 (bug 1672023)
Backed out changeset e7834b600201 (bug 1654103)
Backed out changeset 807893ca8069 (bug 1518999)
Backed out changeset 13e6b92440e9 (bug 1518999)
Backed out changeset 8b2ac5a6c98a (bug 1518999)
Backed out changeset 575748295752 (bug 1518999)
Backed out changeset 65f07ce7b39b (bug 1518999)
Backed out changeset 4bb80556158d (bug 1518999)
Backed out changeset 8ac8461d7bd7 (bug 1518999)
Backed out changeset e8ba13ee17f5 (bug 1518999)
2020-10-24 03:36:18 +03:00
Ricky Stewart
c0cea3b0fa Bug 1654103: Standardize on Black for Python code in mozilla-central. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-23 20:40:42 +00:00
Dorel Luca
1ff59cb7a3 Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart
50762dacab Bug 1654103: Standardize on Black for Python code in mozilla-central. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-21 21:27:27 +00:00
Marco Castelluccio
1a973762af Bug 1638447 - Drop the build-fuzzing optimization strategy and use 'skip-unless-expanded' instead. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D75625
2020-10-05 21:31:10 +00:00
Andrew Halberstadt
9673d50ff2 Bug 1643689 - [taskgraph] enable manifest-scheduling on autoland, r=marco
Sets autoland to use the 'bugbug' test manifest loader. This is being enabled
as part of a temporary trial to see the impact it has on sheriffing.

Differential Revision: https://phabricator.services.mozilla.com/D90160
2020-09-30 13:27:14 +00:00
Marco Castelluccio
7b04b731a9 Bug 1639164 - Define a shadow scheduler that uses bugbug's platform selection. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D91606
2020-09-28 17:06:33 +00:00
Marco Castelluccio
051ad28ea8 Bug 1639164 - Add an option to the BugbugPushSchedules optimization strategy to select configurations on which to run manifests based on bugbug decisions. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D91605
2020-09-28 20:12:43 +00:00
Andrew Halberstadt
4f9bc7b6dc Bug 1643689 - [taskgraph] Fix taskgraph tests broken by f07222b728fa,
Differential Revision: https://phabricator.services.mozilla.com/D91342
2020-09-24 20:05:06 +00:00
Andrew Halberstadt
bd84e6e3aa Bug 1643689 - [taskgraph] Fix error in 'split_bugbug_args', r=marco
The dict needs to be passed to the last two substrategies, not just the last
one.

Differential Revision: https://phabricator.services.mozilla.com/D90159
2020-09-17 22:49:19 +00:00
Andrew Halberstadt
bc44cf8b2d Bug 1643689 - Backed out changeset 10110918b6c0
This was causing |mach try auto| to stop selecting manifests.

Differential Revision: https://phabricator.services.mozilla.com/D90553
2020-09-17 12:57:39 +00:00
Mihai Alexandru Michis
fa05fd89fa Backed out changeset 0b196026ed59 (bug 1643689) for causing issues with manifest scheduling.
CLOSED TREE
2020-09-17 11:26:12 +03:00
Rob Lemley
142c37fe5d Bug 1661493 - Support extending OptimizationSchema in taskgraph projects. r=taskgraph-reviewers,ahal
In order for Thunderbird to effectively cut down on excess builds, there needs
to be a way to define taskgraph optimization strategies beyond what is made
available in the mozilla repository.
taskgraph.optimize.register_strategy gets half of the job done. The other piece
is task schema validation which checks optimizations against OptimizationSchema.

OptimizationSchema gets moved to taskgraph.optimize.schema so that it is not set
too early by taskgraph.util.schema. Projects then call set_optimization_schema()
to replace the default schema object. set_optimization_schema() needs to be called
in the project's taskgraph:register function before any transform code is loaded.

Differential Revision: https://phabricator.services.mozilla.com/D88429
2020-09-15 23:08:52 +00:00
Andrew Halberstadt
e8970ddcb9 Bug 1643689 - [taskgraph] enable manifest-scheduling on autoland, r=marco
Sets autoland to use the 'bugbug' test manifest loader. This is being enabled
as part of a temporary trial to see the impact it has on sheriffing.

Depends on D90159

Differential Revision: https://phabricator.services.mozilla.com/D90160
2020-09-14 23:12:31 +00:00
Andrew Halberstadt
ca0aefcd5b Bug 1643689 - [taskgraph] Fix error in 'split_bugbug_args', r=marco
The dict needs to be passed to the last two substrategies, not just the last
one.

Differential Revision: https://phabricator.services.mozilla.com/D90159
2020-09-14 23:08:28 +00:00
Andrew Halberstadt
0845c6922f Bug 1656465 - Drop the 'remove_on_projects' feature from the Backstop optimization, r=marco
In the past, the 'backstop' optimization was applied to tasks by default across
all projects, even though it only really made sense on autoland. To choose what
would happen on non-autoland branches, we invented this 'remove_on_projects'
concept.

These days, we only apply the backstop optimization in the first place for
autoland. So 'remove_on_projects' is no longer necessary.

Depends on D88149

Differential Revision: https://phabricator.services.mozilla.com/D88150
2020-09-10 14:42:10 +00:00
Andrew Halberstadt
455f1d3e89 Bug 1656465 - [taskgraph.optimize] Rename 'push-interval-{10,20}' strategies to 'expanded' and 'backstop' respectively, r=marco
This removes the last uses of the 'push-interval-10' and 'push-interval-20' strategies.
They are being removed because they are dangerous in that its easy to accidentally not run
tasks when they should.

Instead, task authors should decide whether they want their tasks to run on
"backstop" pushes (run everything) or "expanded" pushes (run more than usual,
but still not as much as a backstop). Note that using "expanded" means the task
will *also* run on backstop pushes. It'll just additionally run on "expanded"
pushes.

In practice 'backstop' pushes will be every 20th push and 'expanded' pushes
will be every 10th push. Though this may vary due to the time component in
backstops.

Differential Revision: https://phabricator.services.mozilla.com/D89503
2020-09-10 14:47:02 +00:00
Andrew Halberstadt
3abd53ae2c Bug 1656465 - [taskgraph.optimize] Refactor "optimized-backstop" pushes into "expanded" pushes, r=marco
This is a nomenclature change + refactoring. Now there is only a single
"backstop" push. Which is currently set to every 20th push on autoland (or
every push on non-autoland branches).

Now there is also a concept of an "expanded" push. These are pushes that run
more stuff than usual, but not as much as a backstop normally would. These are
currently set to run at half the interval of a backstop.

Concretely, here are the strategy changes:

* Renamed 'backstop' -> 'skip-unless-backstop'
* Introduced the 'skip-unless-expanded' strategy which has 'skip-unless-backstop' baked in
* Merged 'optimized-backstop' into the 'test' strategy (with expanded comments)
* Baked both 'skip-unless-expanded' and 'skip-unless-backstop' into the 'test' strategy

Differential Revision: https://phabricator.services.mozilla.com/D89501
2020-09-11 15:42:33 +00:00
Andrew Halberstadt
fba47918cb Bug 1656465 - [taskgraph.optimize] Implement a 'Not' composite strategy, r=marco
It turns out that 'Not' is needed to negate "backstops". E.g, we normally
we want to use a pattern like so:

    All("skip-unless-backstop", "test")

Since 'skip-unless-backstop' returns False on backstop pushes, it disables
the test strategy there.

However, suppose we wanted to run a special optimization, *only* on backstop
pushes. I.e, the opposite of the above example. Then we need to use:

    All(Not("skip-unless-backstop"), "test-backstop")

Depends on D89500

Differential Revision: https://phabricator.services.mozilla.com/D89734
2020-09-11 09:07:21 +00:00
Andrew Halberstadt
3cffeac488 Bug 1656465 - [taskgraph.optimize] Allow 'split_bugbug_arg' to work with arbitrary number of substrategies, r=marco
This still assumes that the bugbug-based strategy is last however.

Differential Revision: https://phabricator.services.mozilla.com/D89500
2020-09-10 14:47:14 +00:00
Dorel Luca
79e0eba4b3 Backed out changeset 4123a3bc6173 (bug 1664300) as requested by dev 2020-09-11 21:32:06 +03:00
Joel Maher
70b89b5091 Bug 1664300 - double the frequency of windows perf tests temporarily. r=ahal
temporarily double the frequency of windows perf tests

Differential Revision: https://phabricator.services.mozilla.com/D89832
2020-09-11 12:24:14 +00:00
Andrew Halberstadt
8f45b2b0d4 Bug 1650406 - [taskgraph] Never run 'upload-symbols' tasks with |mach try auto|, r=marco
Differential Revision: https://phabricator.services.mozilla.com/D88874
2020-09-02 20:20:26 +00:00
Andrew Halberstadt
b995cc5a0c Bug 1650406 - [ci] Ensure 'test-verify' tasks use the 'test' strategy with |mach try auto|, r=marco
Differential Revision: https://phabricator.services.mozilla.com/D88873
2020-09-02 20:19:33 +00:00
Andrew Halberstadt
7020f6a20a Bug 1656465 - Move all 'push-interval-25' optimizations to 'push-interval-20', r=jmaher
We want to try to align 'push-interval' tasks to the 'backstop'. This way
we have greater confidence in our backstop pushes, and it will allow us to
simplify a lot of our backstop logic.

Depends on D89055

Differential Revision: https://phabricator.services.mozilla.com/D89056
2020-09-02 14:05:11 +00:00
Andrew Halberstadt
d82c6de5d5 Bug 1662427 - Backout 7c48fc6f04e3 for causing tasks with 'push-interval' optimizations to stop running on central,
Differential Revision: https://phabricator.services.mozilla.com/D89004
2020-09-01 16:38:15 +00:00
Andrew Halberstadt
3c28444d2d Bug 1660506 - Move backstop determination to the decision task and store it in a parameter, r=marco,taskgraph-reviewers,jmaher
We want to be able to retroactively tell whether a push was a backstop or not.
This patch stores whether or not a push was a "backstop" directly in the
parameters. The optimization strategy now simply returns 'not
params["backstop"]'.

For simplicity, I'm not counting the 'optimized-backstop' as a backstop. It's
unclear if we'll want to be able to detect these types of the pushes in the
future or not, but we can cross that bridge when we get there.

Differential Revision: https://phabricator.services.mozilla.com/D88151
2020-08-26 21:56:05 +00:00
Andrew Halberstadt
0def0cc961 Bug 1660506 - Drop the 'remove_on_projects' feature from the Backstop optimization, r=marco
In the past, the 'backstop' optimization was applied to tasks by default across
all projects, even though it only really made sense on autoland. To choose what
would happen on non-autoland branches, we invented this 'remove_on_projects'
concept.

These days, we only apply the backstop optimization in the first place for
autoland. So 'remove_on_projects' is no longer necessary.

Depends on D88149

Differential Revision: https://phabricator.services.mozilla.com/D88150
2020-08-26 19:11:22 +00:00
Andrew Halberstadt
81eecf7f8c Bug 1660506 - Simplify the backstop optimizations, r=marco
This patch cleans up some of the backstop strategy names. Specifically:

1. Rename 'full-backstop' -> 'backstop'. The old 'backstop' algorithm was
unused anyway, so there is no conflict. It is also just defined directly in
the decorator rather than using 'Alias'.

So now rather than 'full-backstop' and 'optimized-backstop', it's just
'backstop' and 'optimized-backstop'.


2. Remove 'backstop-X-hours-Y-minutes' strategies, and replace them with
the corresponding 'push-interval-X' strategy.

This means we lose the time component in the 'optimized-backstop'. But it isn't
a problem, because we shouldn't be using a time component there at all anyway
(we should just use it with the 'backstop').

Differential Revision: https://phabricator.services.mozilla.com/D88149
2020-08-26 21:40:05 +00:00
Andrew Halberstadt
e07398454b Bug 1659187 - [taskgraph] Implement a mechanism to only run tasks when a specified dependency is present, r=bhearsum
Certain tasks are meant to perform follow-up work to another task. For example,
a 'signing' task signs an artifact from a dependency task. An 'upload-symbols'
tasks uploads an artifact from a dependency task.

In general, we only want to run these types of tasks when the dependency task
is running. But in practice, these tasks often cause the dependency to get
pulled in.

We've tried to fix this in the past by making the 'run-on-projects' and
'optimization' keys match their primary dependency. But it's very easy to
mess this up, and some optimizations (like bugbug) take the content of the
task definition into account. So even if both tasks use the same optimization,
they could have different results.

This revision adds a new 'if-dependencies' key that denotes a task that should
only run if one of the dependencies specified in this list is also run. It
will allow us to stop playing whack-a-mole when trying to make sure tasks
aren't being pulled in solely due to these types of dependencies.

This feature is implemented independently of the 'optimization', so tasks that
specify this can still be optimized even if their primary dependency does run.

Differential Revision: https://phabricator.services.mozilla.com/D80508
2020-08-27 20:45:33 +00:00
Andrew Halberstadt
54dac3bfb2 Bug 1659187 - [taskgraph] Move optimization reason logging to the _log_optimizations function, r=taskgraph-reviewers,aki
This is needed as future revisions will refactor the optimization process to be
two pass. So we can't be sure if a task is optimized or not until the very end.

Depends on D87771

Differential Revision: https://phabricator.services.mozilla.com/D87772
2020-08-20 16:39:19 +00:00
Razvan Maries
6fa43f1893 Backed out changeset 9251996ce8c9 (bug 1657939) for Gecko Decision Task failures. CLOSED TREE 2020-08-11 00:32:44 +03:00
Justin Wood
b78899c21d Bug 1657939 - Output an artifact that identifies replaced taskID's. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D86379
2020-08-10 19:20:28 +00:00
Marco Castelluccio
3fe74901e4 Bug 1656465 - Run fuzzing builds on backstop pushes. r=ahal DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D86357
2020-08-07 15:08:53 +00:00
Andrew Halberstadt
5c5ab01583 Bug 1657649 - [taskgraph] Remove the SETA optimizer, r=jmaher
Depends on D86251

Differential Revision: https://phabricator.services.mozilla.com/D86252
2020-08-06 20:01:39 +00:00
Andrew Halberstadt
1be2069331 Bug 1657649 - [taskgraph] Fallback to relevant_tests instead of seta in the bugbug optimizer, r=jmaher
Depends on D86250

Differential Revision: https://phabricator.services.mozilla.com/D86251
2020-08-06 20:14:59 +00:00
Andrew Halberstadt
8733547d93 Bug 1657649 - [ci] Remove the SETA shadow-scheduler, r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D86250
2020-08-06 20:27:26 +00:00
Andrew Halberstadt
31d5259a1a Bug 1657622 - [taskgraph] Revert to 'bugbug-reduced-fallback' optimization strategy on autoland, r=marco
Differential Revision: https://phabricator.services.mozilla.com/D86219
2020-08-06 19:52:05 +00:00
Marco Castelluccio
893866a2ee Bug 1657097 - Stop running all builds on autoland, only run builds selected by bugbug and builds that are dependencies of test tasks. r=ahal,jmaher
Differential Revision: https://phabricator.services.mozilla.com/D85976
2020-08-06 14:25:17 +00:00
Marco Castelluccio
1f770c10a5 Bug 1655515 - Remove temporary workaround to consider shippable tasks returned by bugbug as opt tasks. r=bhearsum DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D85159
2020-08-05 12:32:49 +00:00
Marco Castelluccio
ba8d99b8aa Bug 1648723 - Run full backstops every 20 pushes, and backstops optimized by bugbug every 10 pushes. r=ahal,jmaher
Differential Revision: https://phabricator.services.mozilla.com/D81874
2020-08-05 11:25:20 +00:00
Marco Castelluccio
f092f2d06e Bug 1648723 - Define a new push-interval-20 strategy that optimizes everything except every 20th push. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D85277
2020-07-30 17:14:21 +00:00
Marco Castelluccio
f3f890a7de Bug 1648723 - Make it possible to run the bugbug optimization strategy on a set of pushes. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D85275
2020-07-30 17:13:56 +00:00
Andrew Halberstadt
b4a179f22b Bug 1643689 - [taskgraph] enable manifest-scheduling on autoland, r=marco
Sets autoland to use the 'bugbug' test manifest loader. This is being enabled
as part of a temporary trial to see the impact it has on sheriffing.

Differential Revision: https://phabricator.services.mozilla.com/D85011
2020-07-29 17:05:48 +00:00
Bogdan Tara
244125ea67 Backed out changeset 9be5f086895c (bug 1643689) for busting gecko decision task and causig bug 1655807 CLOSED TREE 2020-07-28 19:46:47 +03:00
Andrew Halberstadt
512734fa0a Bug 1643689 - [taskgraph] enable manifest-scheduling on autoland, r=marco
Sets autoland to use the 'bugbug' test manifest loader. This is being enabled
as part of a temporary trial to see the impact it has on sheriffing.

Differential Revision: https://phabricator.services.mozilla.com/D85011
2020-07-28 14:40:40 +00:00