The full task graph generation involves creating tasks for each kind. Kinds
are ordered to satisfy
kind-dependencies, and then the
kind.yml is used to load the tasks for that kind. It should point to
a Python function like:
def loader(cls, kind, path, config, parameters, loaded_tasks): pass
kind is the name of the kind; the configuration for that kind
named this class.
path is the path to the configuration directory for the kind. This
can be used to load extra data, templates, etc.
parameters give details on which to base the task generation. See
Parameters for details.
At the time this method is called, all kinds on which this kind depends
(that is, specified in the
kind-dependencies key in
have already loaded their tasks, and those tasks are available in
The return value is a list of inputs to the transforms listed in the kind’s
transforms property. The specific format for the input depends on the first
transform - whatever it expects. The final transform should be
taskgraph.transform.task:transforms, which produces the output format the
task-graph generation infrastructure expects.
transforms key in
kind.yml is further documented in
Transforms. For more information on how all of this works, consult the
docstrings and comments in the source code itself.