New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 665183 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature

Blocked on:
issue 665185



Sign in to add a comment

We should get rid of (most of) MB in Chromium

Project Member Reported by dpranke@chromium.org, Nov 14 2016

Issue description

MB was originally designed to be a transitional tool for the GYP->GN migration.

Now that Chromium is fully on GN, we should figure out if we can get rid of it
and remove some layers and logic.

However, MB has grown to be useful in its own right and so we should figure out
what we need to replace it with.

It currently does the following things, all of which are useful:

1) manage which GN args should be used on which builder

2) manages a Ninja compile target <-> GN label mapping needed for analyze

3) manages the command lines needed for isolates on desktop platforms in conjunction
  with the //testing/buildbot/*.json files.

4) creating the *.isolated.gen.json files for the requested list of swarming targets
  (by passing the list of labels to `gn gen` to generate .runtime_deps files)

5) providing a slightly more friendly command line interface to //tools/swarming_client
  for generating and running isolates locally.

It's not yet clear what the best way to replace these things is. Some thoughts:

1) could be replaced with args files per builder or merged into JSON files like we do on iOS.

2) The recipes, JSON files, and script wrappers could be switched to specifying the ninja targets
   that more directly map to the labels (e.g., ui/base:ui_base_unittests instead of ui_base_unitttests).

3) The command lines can be pushed into GN itself (e.g., as an `args` variable in the test() template)
   and then written to a wrapper script (like out/Default/bin/run_ui_base_unittests), as we currently
   do on Android.

4) We could potentially just generate the .runtime_deps files all the time for any test() binary.

5) We could make the generated wrappers handle the isolating and swarming as well.
 
See also  bug 662541  for work to potentially change how the //testing/buildbot/*.json files work.

We should also figure out if maybe using recipe configs or something else in the recipes could be used instead of args files for the GN args.
Blockedon: 665185
Cc: djd@chromium.org mcgreevy@chromium.org
Some random thoughts are;

 * We should make the bots and developer workflow as similar as possible. When a developer is looking at what the bot is running it should be familiar. It should be similar to what they might be running on their own machine.

 * Things like the correct args to give a command line and the ninja mapping sound useful for not only bots but developers too. This feels like something that gn should be looking after...

 * "We" own isolate / swarming. If they are too hard to use for some reason (or don't provide sensible defaults), we should improve them.

Project Member

Comment 5 by sheriffbot@chromium.org, Nov 15 2017

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 6 by mar...@chromium.org, Nov 15 2017

Cc: -tansell@chromium.org -mcgreevy@chromium.org -djd@chromium.org
Labels: -Type-Bug -Hotlist-Recharge-Cold Type-Feature
<trimming cc list>

One important thing that changed since then:

It is now easy to specify the command at Swarming task trigger time, further reducing the isolate file to not need to list the command to run anymore, reducing it to a flat list of input files.
Status: Available (was: Untriaged)
This is still active/available. I hope to address most of it within the next quarter.
Cc: -iannucci@chromium.org iannu...@google.com

Sign in to add a comment