Add ability to easily define variants to the 'test' kind
Categories
(Firefox Build System :: Task Configuration, task, P2)
Tracking
(firefox68 fixed)
| Tracking | Status | |
|---|---|---|
| firefox68 | --- | fixed |
People
(Reporter: ahal, Assigned: ahal)
References
Details
Attachments
(1 file)
Sometimes we want to duplicate all of the tasks we have and run them with a modified 'pref'. Normally we add a key to all of the tasks and use a transform to duplicate them.
This is clunky to add new variants, because you have to create a transform for each new variant, and in that transform you need to be careful not to accidentally dupe your variant with combinations of other variants. Ideally, we could define a datastructure to store all variant infomation and allow tasks to define a list of variants. We could then use a single transform to do all the splitting and adding new variants in the future becomes much much easier.
| Assignee | ||
Updated•6 years ago
|
Comment 1•6 years ago
|
||
This is clunky, but also potentially very expensive. Making it too easy runs the risk of a combinatorial explosion in test load. But I admit making something hard is not a great way to keep costs down :)
| Assignee | ||
Comment 2•6 years ago
|
||
To clarify, the current way we service these requests is the one where we risk a combinatorial explosion. This proposal aims to remove that risk.
You are right that the proposal might encourage more variants. Though I'd argue it's better for this process to be clear and easy anyway. It's a lot more obvious to spot someone adding something to ALLOWED_TEST_VARIANTS (or whatever) than it is some random key to the task definitions which might not mean anything special. If we define this structure in its own file, we could even set up a herald rule to require some sort of super review.
| Assignee | ||
Comment 3•6 years ago
|
||
For context, I filed this in preparation for fission which will definitely be a large enough change to warrant duplicating the world (maybe it will give us more leeway to turn off/reduce other areas).
| Assignee | ||
Updated•6 years ago
|
| Assignee | ||
Updated•6 years ago
|
| Assignee | ||
Comment 4•6 years ago
|
||
We are starting to spin off more and more "variants" of test suites. These are
usually just duplicates of our pre-existing tasks, except with an additional
pref set.
Currently there are two variants (serviceworker-e10s and socketprocess-e10s),
but a third will be added soon (fission). This change ensures we handle these
types of requests in a consistent and well defined manner. It also splits tasks
in a loop, so we don't accidentally risk combinatorial explosion.
Variants should typically be reserved for very large changes that will impact
the entire codebase (think e10s).
Comment 6•6 years ago
|
||
| bugherder | ||
Description
•