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.