mach try fuzzy doesn't support --rebuild command

RESOLVED FIXED in mozilla58

Status

task
RESOLVED FIXED
2 years ago
5 months ago

People

(Reporter: jmaher, Assigned: ahal)

Tracking

(Blocks 1 bug)

unspecified
mozilla58
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments)

I would like to be able to compare talos results and use mach try fuzzy for scheduling.
Blocks: 1396175
This should be fairly simple to fix as long as we can assume that every task chosen by the fzf interface is going to be rebuilt. If we want to say "only rebuild these X tasks", then it will start getting complicated.
there is --rebuild-talos, possibly we could create a warning to indicate that any value >10 should be used very sparingly.  Likewise, if they are --rebuild on >20 jobs, it should be confirmed with a secondary prompt.
Assignee: nobody → ahalberstadt
Status: NEW → ASSIGNED
Comment on attachment 8925976 [details]
Bug 1414919 - [taskgraph] Allow morph templates to also modify task attributes,

https://reviewboard.mozilla.org/r/197194/#review202314

::: commit-message-dc45e:3
(Diff revision 1)
> +The motivation for this change is to create a 'rebuild' template that sets
> +'attributes.task_duplicates'. A nice side effect is that if any of 'task'
> +or 'attributes' aren't explicitly set, we can ignore the result which means
> +we don't need to have a whole bunch of 'else' clauses in the templates.

This change breaks compatibility from the 'action task' format, which might mean it's a non-starter.

But so far there isn't anything shared between the two and the only alternative I can see would be to get the `target_tasks_method` to also read from the `templates` dict, which also seems less than ideal. The shared format might be a case of YAGNI.
Comment on attachment 8925978 [details]
Bug 1414919 - [tryselect] Add --rebuild support to |mach try fuzzy|,

https://reviewboard.mozilla.org/r/197198/#review202414

::: tools/tryselect/selectors/fuzzy.py:111
(Diff revision 1)
>           {'default': None,
>            'help': "Use the given parameters.yml to generate tasks, "
>                    "defaults to latest parameters.yml from mozilla-central",
>            }],
>      ]
> -    templates = ['artifact', 'env']
> +    templates = ['artifact', 'env', 'rebuild']

can we dynamically pick this up based on templates.py::all_templates.keys() ?
Attachment #8925978 - Flags: review?(jmaher) → review+
Comment on attachment 8925976 [details]
Bug 1414919 - [taskgraph] Allow morph templates to also modify task attributes,

https://reviewboard.mozilla.org/r/197194/#review202916

::: commit-message-dc45e:3
(Diff revision 1)
> +The motivation for this change is to create a 'rebuild' template that sets
> +'attributes.task_duplicates'. A nice side effect is that if any of 'task'
> +or 'attributes' aren't explicitly set, we can ignore the result which means
> +we don't need to have a whole bunch of 'else' clauses in the templates.

I think this is OK, but please update [the docs](https://firefox-source-docs.mozilla.org/taskcluster/taskcluster/try.html#modifying-tasks-in-a-try-push) too.
Attachment #8925976 - Flags: review?(dustin) → review+
Comment on attachment 8925977 [details]
Bug 1414919 - [taskgraph] Create a 'rebuild' morph template,

https://reviewboard.mozilla.org/r/197196/#review202918
Attachment #8925977 - Flags: review?(dustin) → review+
Comment on attachment 8925976 [details]
Bug 1414919 - [taskgraph] Allow morph templates to also modify task attributes,

https://reviewboard.mozilla.org/r/197194/#review202920

BTW, the rationale for having the actions and morphs match was that we are likely to want to provide the same options either in a try push or in an action on a push after it was made.  If that's not borne out, then the match isn't so important.
Comment on attachment 8925978 [details]
Bug 1414919 - [tryselect] Add --rebuild support to |mach try fuzzy|,

https://reviewboard.mozilla.org/r/197198/#review202414

> can we dynamically pick this up based on templates.py::all_templates.keys() ?

That would work but I'd prefer to be explicit. If someone adds a new template in the future they might accidentally enable it for |mach try fuzzy| without meaning too. The fact that |mach try fuzzy| implements all of the currently existing templates is mostly coincidence.
Comment on attachment 8925976 [details]
Bug 1414919 - [taskgraph] Allow morph templates to also modify task attributes,

https://reviewboard.mozilla.org/r/197194/#review202920

Yeah, afaik there is no on working on that nor are there plans to. I agree it's nice to have that compatibility, but not worth holding up useful features over. If we decide compatibility becomes more important later on, we can make the necessary changes to bring them back in sync then.
Pushed by ahalberstadt@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b38e8ccf1219
[taskgraph] Allow morph templates to also modify task attributes, r=dustin
https://hg.mozilla.org/integration/autoland/rev/6d5a445dba8a
[taskgraph] Create a 'rebuild' morph template, r=dustin
https://hg.mozilla.org/integration/autoland/rev/7474dc45cbe3
[tryselect] Add --rebuild support to |mach try fuzzy|, r=jmaher
Product: TaskCluster → Firefox Build System
Blocks: 1507710
Depends on: 1540334
You need to log in before you can comment on or make changes to this bug.