Bug 1398915 - Tasks can have interdependencies within the same kind. r?dustin
Per IRC dicussion, there is no technical or policy restriction on dependencies
within a task kind. Update the documentation to remove the out-of-date mention
of this limitation. In particular, toolchain build tasks tend to depend on
each other.
MozReview-Commit-ID: K6p0mxyjcvY
--- a/taskcluster/docs/taskgraph.rst
+++ b/taskcluster/docs/taskgraph.rst
@@ -4,21 +4,20 @@ Overview
The task graph is built by linking different kinds of tasks together, pruning
out tasks that are not required, then optimizing by replacing subgraphs with
links to already-completed tasks.
Concepts
--------
-* *Task Kind* - Tasks are grouped by kind, where tasks of the same kind do not
- have interdependencies but have substantial similarities, and may depend on
- tasks of other kinds. Kinds are the primary means of supporting diversity,
- in that a developer can add a new kind to do just about anything without
- impacting other kinds.
+* *Task Kind* - Tasks are grouped by kind, where tasks of the same kind
+ have substantial similarities or share common processing logic. Kinds
+ are the primary means of supporting diversity, in that a developer can
+ add a new kind to do just about anything without impacting other kinds.
* *Task Attributes* - Tasks have string attributes by which can be used for
filtering. Attributes are documented in :doc:`attributes`.
* *Task Labels* - Each task has a unique identifier within the graph that is
stable across runs of the graph generation algorithm. Labels are replaced
with TaskCluster TaskIds at the latest time possible, facilitating analysis
of graphs without distracting noise from randomly-generated taskIds.
@@ -49,17 +48,17 @@ The full list of pre-defined keys in thi
``kind-dependencies``
Kinds which should be loaded before this one. This is useful when the kind
will use the list of already-created tasks to determine which tasks to
create, for example adding an upload-symbols task after every build task.
Any other keys are subject to interpretation by the kind implementation.
-The result is a nice segmentation of implementation so that the more esoteric
+The result is a segmentation of implementation so that the more esoteric
in-tree projects can do their crazy stuff in an isolated kind without making
the bread-and-butter build and test configuration more complicated.
Dependencies
------------
Dependencies between tasks are represented as labeled edges in the task graph.
For example, a test task must depend on the build task creating the artifact it