We already use a list of source files that were modified by the push during the optimization phase:
But in order to support bug 1583353, I'd like to start using this information in the task generation itself. To do this, we would need these paths to become an input parameter to generation.
For example, let's say we push to autoland and pass a list of modified files into the decision task's parameters. We could then implement a transform that downloads a code coverage artifact and determines exactly which tests should run. Then it could compute the minimum set of manifests to run and chunk them across a certain number of tasks (e.g so they are still roughly 20min each).
How this parameter is used and what it means could differ by branch. For example, on mozilla-central we could pass
None to signify that all tests need to run. On try, instead of modified files the list of paths could be explicit source paths the user wants to test.
This bug will solely focus on getting this data into parameters.yml. It will not implement transforms that use it just yet.