Commit Graph

154 Commits

Author SHA1 Message Date
Bob Clary
5a611eb191 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
bf68daa877 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
31b8ca9716 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
612312a64c 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
065d2eb893 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
95b44c982f Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart
43baed3c18 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
2afd09bf37 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
16b601cc2a 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
b1e652d264 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
c41557b85c 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
aba9aaf6b8 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
66df383894 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
ba0552dd93 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
7880c3527d Backed out changeset 0b196026ed59 (bug 1643689) for causing issues with manifest scheduling.
CLOSED TREE
2020-09-17 11:26:12 +03:00
Rob Lemley
d2eaa3d610 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
4f67f40e40 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
7ff2636f14 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
e5e02c179d 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
b3ed37fbe1 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
6eb4d62f2b 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
291bd1a769 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
bfa2e75552 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
295890671d Backed out changeset 4123a3bc6173 (bug 1664300) as requested by dev 2020-09-11 21:32:06 +03:00
Joel Maher
5c318bf38c 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
83c2cb4b51 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
88579a969b 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
bdc04392cb 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
3741e36974 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
1a5d28b93c 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
db7a7f9bb8 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
ea13a3ab98 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
5f39e949bf 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
ed922e0dc1 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
2a46b35060 Backed out changeset 9251996ce8c9 (bug 1657939) for Gecko Decision Task failures. CLOSED TREE 2020-08-11 00:32:44 +03:00
Justin Wood
9f41cda459 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
af446e64ac 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
374f462d8c 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
d761754755 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
ea845db9e5 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
0fec282dd5 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
c4260e02f6 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
c83aafaa0e 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
79562cff29 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
8f485e8f6f 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
bb5f4b2f13 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
fe90b95e98 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
20b0b6082e 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
81eb3647a9 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
Andrew Halberstadt
4a8bbd96ce Bug 1636271 - [taskgraph] Set autoland optimizations via per-project parameter, r=tomprince
This creates a new set of optimization strategies
(taskgraph.optimize:project.autoland) to use with autoland. Among other things,
it also means there's no need for the 'test-try' optimization as the autoland
strategies are no longer the default behaviour.

Differential Revision: https://phabricator.services.mozilla.com/D79705
2020-07-28 13:22:48 +00:00