This updates the deps expansion into the DEPS environment variable for a task to always include the exact list of file dependencies with the following rules:
If the dependency is a task by name, the deps will be expanded to include the file targets of that task
If the dependency is a glob, the glob will be expanded into file paths
If the dependency is an interpolation task, all interpolated targets will be expanded
If a task defines multiple target paths, and another task depends on only one of those target paths, DEPS will be expanded to include the full list of targets defined by the first task. This may be too much, but it is because the task graph does not distinguish between depending on a job and depending only on some files of a job. If it turns out to be an issue, this can possibly be fixed at a later point.
The primary benefit of this PR for now though is that DEPS will always be paths that can be relied upon, and never named, glob or interpolate target strings.
This updates the deps expansion into the
DEPS
environment variable for a task to always include the exact list of file dependencies with the following rules:If a task defines multiple target paths, and another task depends on only one of those target paths, DEPS will be expanded to include the full list of targets defined by the first task. This may be too much, but it is because the task graph does not distinguish between depending on a job and depending only on some files of a job. If it turns out to be an issue, this can possibly be fixed at a later point.
The primary benefit of this PR for now though is that
DEPS
will always be paths that can be relied upon, and never named, glob or interpolate target strings.