Closed Bug 1496153 Opened 6 years ago Closed 4 years ago

Let's allow .taskcluster.yml to extend other .taskcluster.yml

Categories

(Taskcluster :: Services, enhancement, P5)

enhancement

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: bstack, Unassigned)

References

(Blocks 1 open bug)

Details

Required reading: https://renovatebot.com/docs/config-presets/ Motivation ~~~~~~~~~~ All of our .taskcluster.yml are vaguely similar because we copy-pasta them back and forth all of the time. They also are all rarely updated because it would be a pain to go to 50 different repos and update them all. In addition, the most difficult thing for our users is to set up .taskcluster.yml in the first place. As we learned yesterday, a lot of our users have incorrect configurations. Plan ~~~~ We should create a new top-level key in the .taskcluster.yml format that is called `extends`. The value of it must be a URL (maybe we should have more structure here than I've described). This URL must point to a valid .taskcluster.yml file. The value in the `tasks` section of that .taskcluster.yml will be made available in the `tasks` section of the current .taskcluster.yml as a variable called `template` or some such thing. If you have no `tasks` section in your .taskclsuter.yml, we will simply insert `template` in its place directly. We can provide base templates in a github repo for most common project types (js, node, python, go, rust, etc). People can either pin their base template to a specific revision or just rely on "latest" so that we can update them when necessary. Jumbled Thoughts With No Structure ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * We should think carefully about allowing a chain of `extends`. We would have to check for loops and other ugly situations that could be exploited. Perhaps we only allow one level of `extends`? * Is this flexible enough to allow people to change the template in necessary ways? * Will this allow people to create super "factored" base templates that end up making the whole situation more confusing/brittle than before? How to put up guide rails that help people do smart things?
See Also: → 1471574
Priority: -- → P5
Component: Github → Services
Blocks: github-bugs

This is good background for a rethink of the GitHub integration.

Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.