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
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
config) have already loaded their tasks, and those tasks are available in the list
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.