Loading Tasks¶
The full task graph generation involves creating tasks for each kind. Kinds
are ordered to satisfy kind-dependencies
, and then the loader
specified
in 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
The kind
is the name of the kind; the configuration for that kind
named this class.
The path
is the path to the configuration directory for the kind. This
can be used to load extra data, templates, etc.
The 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 config
)
have already loaded their tasks, and those tasks are available in
the list loaded_tasks
.
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.
The 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.