1# This Source Code Form is subject to the terms of the Mozilla Public
2# License, v. 2.0. If a copy of the MPL was not distributed with this file,
3# You can obtain one at http://mozilla.org/MPL/2.0/.
4
5"""
6Constants for SCHEDULES configuration in moz.build files and for
7skip-unless-schedules optimizations in task-graph generation.
8"""
9
10from __future__ import absolute_import, unicode_literals, print_function
11
12# TODO: ideally these lists could be specified in moz.build itself
13
14# Inclusive components are those which are scheduled when certain files are
15# changed, but do not run by default.  These are generally added to
16# `SCHEDULES.inclusive` using `+=`, but can also be used as exclusive
17# components for files which *only* affect the named component.
18INCLUSIVE_COMPONENTS = [
19    'docs',
20    'py-lint',
21    'js-lint',
22    'yaml-lint',
23    # inclusive test suites -- these *only* run when certain files have changed
24    'jittest',
25    'test-verify',
26    'test-verify-wpt',
27    'jsreftest',
28]
29INCLUSIVE_COMPONENTS = sorted(INCLUSIVE_COMPONENTS)
30
31# Exclusive components are those which are scheduled by default, but for which
32# some files *only* affect that component.  For example, most files affect all
33# platforms, but platform-specific files exclusively affect a single platform.
34# These components are assigned to `SCHEDULES.exclusive` with `=`.
35EXCLUSIVE_COMPONENTS = [
36    # os families
37    'android',
38    'linux',
39    'macosx',
40    'windows',
41    # test suites
42    'awsy',
43    'cppunittest',
44    'firefox-ui',
45    'geckoview',
46    'gtest',
47    'marionette',
48    'mochitest',
49    'reftest',
50    'robocop',
51    'talos',
52    'telemetry-tests-client',
53    'xpcshell',
54    'xpcshell-coverage',
55    'web-platform-tests',
56    'web-platform-tests-reftests',
57    'web-platform-tests-wdspec',
58    # Thunderbird test suites
59    'mozmill',
60]
61EXCLUSIVE_COMPONENTS = sorted(EXCLUSIVE_COMPONENTS)
62ALL_COMPONENTS = INCLUSIVE_COMPONENTS + EXCLUSIVE_COMPONENTS
63