Backed out changeset 4b3fa9587e88 (bug 1383880)
authorSebastian Hengst <>
Wed, 06 Sep 2017 17:47:18 +0200
changeset 428829 956cfc2744f6841661930d5428aad9fbdc3bf81f
parent 428828 bbc8ae1a9936ce56f4ed654a7975c900983f5d76
child 428830 f2aaab6e382063b5bd9041daa61805f6459a1baf
push id7761
push dateFri, 15 Sep 2017 00:19:52 +0000
treeherdermozilla-beta@c38455951db4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
backs out4b3fa9587e88431cc28331d129dd7ef4d1a793c2
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changeset 4b3fa9587e88 (bug 1383880)
--- a/taskcluster/ci/upload-generated-sources/kind.yml
+++ b/taskcluster/ci/upload-generated-sources/kind.yml
@@ -26,12 +26,10 @@ job-template:
      docker-image: {in-tree: "lint"}
      max-run-time: 600
     using: run-task
     command: >
             cd /builds/worker/checkouts/gecko &&
             ./mach python build/ ${ARTIFACT_URL}
-  optimization:
-    only-if-dependencies-run: null
       - secrets:get:project/releng/gecko/build/level-{level}/gecko-generated-sources-upload
--- a/taskcluster/ci/upload-symbols/kind.yml
+++ b/taskcluster/ci/upload-symbols/kind.yml
@@ -38,12 +38,10 @@ job-template:
        os: linux
        max-run-time: 600
        command: ["/bin/bash", "bin/"]
        docker-image: taskclusterprivate/upload_symbols:0.0.4
            GECKO_HEAD_REPOSITORY: # see transforms
            GECKO_HEAD_REV: # see transforms
            ARTIFACT_TASKID: {"task-reference": "<build>"}
-   optimization:
-       only-if-dependencies-run: null
        - docker-worker:image:taskclusterprivate/upload_symbols:0.0.4
--- a/taskcluster/taskgraph/
+++ b/taskcluster/taskgraph/
@@ -72,17 +72,16 @@ def optimize_task_graph(target_task_grap
 def _make_default_strategies():
     return {
         'never': OptimizationStrategy(),  # "never" is the default behavior
         'index-search': IndexSearch(),
         'seta': SETA(),
         'skip-unless-changed': SkipUnlessChanged(),
         'skip-unless-schedules': SkipUnlessSchedules(),
         'skip-unless-schedules-or-seta': Either(SkipUnlessSchedules(), SETA()),
-        'only-if-dependencies-run': OnlyIfDependenciesRun(),
 def _get_optimizations(target_task_graph, strategies):
     def optimizations(label):
         task = target_task_graph.tasks[label]
         if task.optimization:
             opt_by, arg = task.optimization.items()[0]
@@ -277,28 +276,16 @@ class Either(OptimizationStrategy):
             lambda sub, arg: sub.should_remove_task(task, params, arg))
     def should_replace_task(self, task, params, arg):
         return self._for_substrategies(
             lambda sub, arg: sub.should_replace_task(task, params, arg))
-class OnlyIfDependenciesRun(OptimizationStrategy):
-    """Run this taks only if its dependencies run."""
-    # This takes advantage of the behavior of the second phase of optimization:
-    # a task can only be replaced if it has no un-optimized dependencies. So if
-    # should_replace_task is called, then a task has no un-optimized
-    # dependencies and can be removed (indicated by returning True)
-    def should_replace_task(self, task, params, arg):
-        return True
 class IndexSearch(OptimizationStrategy):
     def should_remove_task(self, task, params, index_paths):
         "If this task has no dependencies, don't run it.."
         return True
     def should_replace_task(self, task, params, index_paths):
         "Look for a task with one of the given index paths"
         for index_path in index_paths:
--- a/taskcluster/taskgraph/transforms/
+++ b/taskcluster/taskgraph/transforms/
@@ -159,19 +159,16 @@ task_description_schema = Schema({
         # consult SETA and skip this task if it is low-value
         {'seta': None},
         # skip this task if none of the given file patterns match
         {'skip-unless-changed': [basestring]},
         # skip this task if unless the change files' SCHEDULES contains any of these components
         {'skip-unless-schedules': list(schedules.ALL_COMPONENTS)},
         # skip if SETA or skip-unless-schedules says to
         {'skip-unless-schedules-or-seta': list(schedules.ALL_COMPONENTS)},
-        # only run this task if its dependencies will run (useful for follow-on tasks that
-        # are unnecessary if the parent tasks are not run)
-        {'only-if-dependencies-run': None}
     # the provisioner-id/worker-type for the task.  The following parameters will
     # be substituted in this string:
     #  {level} -- the scm level of this push
     'worker-type': basestring,
     # Whether the job should use sccache compiler caching.