Commit graph

9 commits

Author SHA1 Message Date
Hammad Akhtar
0c3b469c02 Bug 1302765 - Allow ./mach taskgraph .. --parameters P to take a URL. URL building mechanism fixed; r=dustin
MozReview-Commit-ID: 7reezQj9Bds

--HG--
extra : rebase_source : a571294e80491b0918e21697d922abfaa91432b6
2016-11-24 01:15:33 +05:30
Gregory Szorc
0e12f1cc60 Bug 1318200 - Introduce task graph filtering; r=dustin
Previously, we ran a single "target task" function to mutate the full
task graph into a subset based on input parameters (try syntax,
repository being built for, etc). This concept is useful. But
the implementation was limiting because we could only have a single
"target tasks" function.

This commit introduces the concept of "filters." They conceptually
do the same thing as "target tasks methods" but you can run more than
1 of them.

Filters are simply functions that examine an input graph+parameters
and emit nodes that should be retained. Filters, like target tasks
methods, are defined via decorated functions in a module.

TaskGraphGenerator has been converted to use filters. The list of
defined filters can be defined in the parameters dict passed into
TaskGraphGenerator. A default filter list is provided in decision.py.

The intent is to eventually convert target tasks to filters. Until
that happens, we always run the registered target tasks method via
a filter proxy function.

No new tests have been added because we don't yet have any
functionality relying explicitly on filters. Tests will be added in
a subsequent commit once we add a new filter.

While I was here, I also snuck in some logging on the size of the
graphs.

MozReview-Commit-ID: ERn2hIYbMRp

--HG--
extra : rebase_source : 36b8e86aa64b2f52b03b31b5497759b0009fb921
2016-11-17 15:53:30 -08:00
Dustin J. Mitchell
aaabbac964 Bug 1296842: check parameters; r=jmaher
MozReview-Commit-ID: 1JCpufowNHD

--HG--
extra : rebase_source : 3409f417070751615d799cbda3f99d8e9029dda3
2016-11-07 19:13:40 +00:00
Gregory Szorc
e4bcb10295 Backed out changeset 7a3a65ff5865 (bug 1295486) for test failures 2016-08-18 10:21:26 -07:00
Gregory Szorc
ebb5c961f7 Bug 1295486 - Decode YAML files to UTF-8 at read time; r=dustin
Before, we'd open files and feed bytes to yaml.load(). When a str
is fed to yaml.load(), it attempts to guess the encoding. It defaults
to UTF-8 unless somebody set us up the BOM. This is probably OK.
Except if the file isn't valid UTF-8, the exception will be raised
in the bowels of YAML parsing and it may not be obvious the failure
is due to invalid UTF-8 input versus say Python str/unicode
coercion foo.

We change all call sites that load YAML from a file to use
codecs.open() to open the file in UTF-8 and perform UTF-8
decoding/validation at file read time. This should make any UTF-8
failures more obvious. Furthermore, it reinforces that our YAML files
are UTF-8 and not some other encoding.

I discovered this issue as part of trying to get emoji symbols to
render on Treeherder. Unfortunately, it appears pyyaml detects
many emoji as unprintable characters and refuses to load them. This
makes me sad and makes me want to abandon pyyaml/YAML in favor of
something that supports emoji :P

MozReview-Commit-ID: AOvAruZFfnK

--HG--
extra : rebase_source : 4c5d42cb63da5c9ebfac55ab84b4f7f8bcc648fa
2016-08-18 08:58:59 -07:00
Justin Wood
15b23fced1 Bug 1280956 - Use in-tree linter job to flake8 test taskcluster directory. r=dustin
MozReview-Commit-ID: FsWmAnnycZ2

--HG--
extra : rebase_source : 04a32cea2de133cb75472092cffb8a215f7dc603
2016-06-20 21:06:55 -04:00
Dustin J. Mitchell
e98ea9da30 Bug 1273633: support per-branch config in the decision task; r=garndt
MozReview-Commit-ID: LXQIaSzPpr4

--HG--
extra : rebase_source : ebdbc008d0547b84edef5f92e12325a1b90a437a
2016-05-17 21:27:11 +00:00
Dustin J. Mitchell
05ef600e1c Bug 1258497: wrap mach Commands in try/except; r=gps
MozReview-Commit-ID: FTPDTjw4gR

--HG--
extra : rebase_source : a922f03418d9c03f4018940554a23ed341a4e807
extra : histedit_source : 439fda8e499696cca39dff7e1b436f74541d17bb
2016-05-16 17:44:24 +00:00
Dustin J. Mitchell
cea2249ca3 Bug 1258497: Implement a new taskgraph generation system; r=gps
The `taskgraph` package generates TaskCluster task graphs based on collections
of task "kinds".  Initially, there is only one kind, the "legacy" kind, which
reads the YAML files from `testing/taskcluster/tasks` to generate the task
graph.

Try syntax is implemented by filtering the tasks in the taskgraph after it has
been created, then extending the result to include any prerequisite tasks.

A collection of `mach taskgraph` subcommands are provided for developers to
extend or debug the task-graph generation process.

MozReview-Commit-ID: 1TJCns4XxZ8

--HG--
rename : testing/taskcluster/docs/index.rst => taskcluster/docs/index.rst
extra : rebase_source : 7b9125281d66044db9bd8e4a1fade16136f384b9
extra : histedit_source : 47640d27080acda0279270babbcf33f5badb0d1c
2016-05-16 22:53:22 +00:00