-
Notifications
You must be signed in to change notification settings - Fork 48
Description
The multi_dep and single_dep loaders (and related transforms) are some of the most widely copied Taskgraph logic from project to project. We've mentioned upstreaming this into Taskgraph countless times! However, over the years I've come to realize that this loader is unnecessary and overly complicated (most recently while working on mozilla-releng/mozilla-taskgraph#7 in conjunction with the linked firefox-android PR).
Essentially it's doing too much at once, building upstream artifacts, copying attributes, resolving keys. The root issue is that it adds a lot of complexity right up front, which every later transform then needs to deal with. Instead we should add complexity little by little, and only as needed.
I'm still formulating thoughts here, but I think my rough plan is to:
- Add transforms for adding dependencies given a set of kinds.
- Add a utility file for deriving
upstream-artifactsfrom a task's dependencies. - Add transforms for copying attributes from a
primary-dep. - Push more logic into the
scriptworkerpayload builders.
I believe with the above pieces, we'll be able to completely obsolete the single_dep and multi_dep loaders and replace it with a much simpler and easy to follow setup.