Bug 1502253: [taskgraph] Remove some single-variant `Any` schemas; r=dustin
authorTom Prince <mozilla@hocat.ca>
Fri, 26 Oct 2018 19:10:42 +0000
changeset 443222 c6ccc706547610c6897ead77343a2ec62835ec1f
parent 443221 bb0a820903b98831234e8bfae11f6d209c7729dc
child 443223 230a5cf2a4b45352217919b185831e767ce1f193
push id34944
push userncsoregi@mozilla.com
push dateSat, 27 Oct 2018 09:49:55 +0000
treeherdermozilla-central@49d47a692ca4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdustin
bugs1502253
milestone65.0a1
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
Bug 1502253: [taskgraph] Remove some single-variant `Any` schemas; r=dustin Differential Revision: https://phabricator.services.mozilla.com/D9885
taskcluster/taskgraph/cron/schema.py
taskcluster/taskgraph/transforms/fetch.py
taskcluster/taskgraph/transforms/job/__init__.py
taskcluster/taskgraph/transforms/tests.py
--- a/taskcluster/taskgraph/cron/schema.py
+++ b/taskcluster/taskgraph/cron/schema.py
@@ -23,25 +23,25 @@ def even_15_minutes(minutes):
 cron_yml_schema = Schema({
     'jobs': [{
         # Name of the crontask (must be unique)
         Required('name'): basestring,
 
         # what to run
 
         # Description of the job to run, keyed by 'type'
-        Required('job'): Any({
+        Required('job'): {
             Required('type'): 'decision-task',
 
             # Treeherder symbol for the cron task
             Required('treeherder-symbol'): basestring,
 
             # --target-tasks-method './mach taskgraph decision' argument
             'target-tasks-method': basestring,
-        }),
+        },
 
         # when to run it
 
         # Optional set of projects on which this job should run; if omitted, this will
         # run on all projects for which cron tasks are set up.  This works just like the
         # `run_on_projects` attribute, where strings like "release" and "integration" are
         # expanded to cover multiple repositories.  (taskcluster/docs/attributes.rst)
         'run-on-projects': [basestring],
--- a/taskcluster/taskgraph/transforms/fetch.py
+++ b/taskcluster/taskgraph/transforms/fetch.py
@@ -5,17 +5,16 @@
 # Support for running tasks that download remote content and re-export
 # it as task artifacts.
 
 from __future__ import absolute_import, unicode_literals
 
 import os
 
 from voluptuous import (
-    Any,
     Optional,
     Required,
 )
 
 import taskgraph
 
 from .base import (
     TransformSequence,
@@ -42,17 +41,17 @@ FETCH_SCHEMA = Schema({
 
     # Relative path (from config.path) to the file the task was defined
     # in.
     Optional('job-from'): basestring,
 
     # Description of the task.
     Required('description'): basestring,
 
-    Required('fetch'): Any({
+    Required('fetch'): {
         'type': 'static-url',
 
         # The URL to download.
         Required('url'): basestring,
 
         # The SHA-256 of the downloaded content.
         Required('sha256'): basestring,
 
@@ -70,17 +69,17 @@ FETCH_SCHEMA = Schema({
             Required('key-path'): basestring,
         },
 
         # The name to give to the generated artifact.
         Optional('artifact-name'): basestring,
 
         # IMPORTANT: when adding anything that changes the behavior of the task,
         # it is important to update the digest data used to compute cache hits.
-    }),
+    },
 })
 
 
 @transforms.add
 def validate(config, jobs):
     for job in jobs:
         validate_schema(
             FETCH_SCHEMA, job,
--- a/taskcluster/taskgraph/transforms/job/__init__.py
+++ b/taskcluster/taskgraph/transforms/job/__init__.py
@@ -20,17 +20,16 @@ from taskgraph.transforms.base import Tr
 from taskgraph.util.schema import (
     validate_schema,
     Schema,
 )
 from taskgraph.util.taskcluster import get_artifact_prefix
 from taskgraph.util.workertypes import worker_type_implementation
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import (
-    Any,
     Extra,
     Optional,
     Required,
     Exclusive,
 )
 
 logger = logging.getLogger(__name__)
 
@@ -68,22 +67,22 @@ job_description_schema = Schema({
     Exclusive('optimization', 'optimization'): task_description_schema['optimization'],
     Optional('needs-sccache'): task_description_schema['needs-sccache'],
     Optional('release-artifacts'): task_description_schema['release-artifacts'],
 
     # The "when" section contains descriptions of the circumstances under which
     # this task should be included in the task graph.  This will be converted
     # into an optimization, so it cannot be specified in a job description that
     # also gives 'optimization'.
-    Exclusive('when', 'optimization'): Any({
+    Exclusive('when', 'optimization'): {
         # This task only needs to be run if a file matching one of the given
         # patterns has changed in the push.  The patterns use the mozpack
         # match function (python/mozbuild/mozpack/path.py).
         Optional('files-changed'): [basestring],
-    }),
+    },
 
     # A list of artifacts to install from 'fetch' tasks.
     Optional('fetches'): {
         basestring: [basestring, {
             Required('artifact'): basestring,
             Optional('dest'): basestring,
             Optional('extract'): bool,
         }],
--- a/taskcluster/taskgraph/transforms/tests.py
+++ b/taskcluster/taskgraph/transforms/tests.py
@@ -366,19 +366,19 @@ test_description_schema = Schema({
 
     # the name of the test (the key in tests.yml)
     'test-name': basestring,
 
     # the product name, defaults to firefox
     Optional('product'): basestring,
 
     # conditional files to determine when these tests should be run
-    Exclusive(Optional('when'), 'optimization'): Any({
+    Exclusive(Optional('when'), 'optimization'): {
         Optional('files-changed'): [basestring],
-    }),
+    },
 
     # Optimization to perform on this task during the optimization phase.
     # Optimizations are defined in taskcluster/taskgraph/optimize.py.
     Exclusive(Optional('optimization'), 'optimization'): OptimizationSchema,
 
     # The SCHEDULES component for this task; this defaults to the suite
     # (not including the flavor) but can be overridden here.
     Exclusive(Optional('schedules-component'), 'optimization'): basestring,