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

Issue 768433 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug



Sign in to add a comment

Need "default" and "small" configuration in gclient (and to remove deps on CHROME_HEADLESS)

Project Member Reported by dpranke@chromium.org, Sep 25 2017

Issue description

Similiar to the issues in  bug 570091  and bug 756686, we have at least one hook (for node) in gclient that checks for CHROME_HEADLESS in the environment, so that the hook is run on the bots but not by default on a dev checkout.

I'd like to get rid of the "bot"/"not a bot" distinction where possible, and I think we've generally used it as a proxy for "I don't want to download this tool that I'm never going to run, but we need it on the bots to run test X".

Now that we have conditions in gclient, we can just set individual conditions as needed for each hook/target/test, but I'd prefer not to have to specify a bunch of different conditions either locally or on the bot, so I think we need some sort of generic "category"-type flag that each condition can use as a default.

E.g., setting 

    vars = {
      'checkout_size': 'minimal', # valid values are 'full' and 'minimal'
      'checkout_nacl': 'checkout_size == "full"',
      'download_node': 'checkout_size == "full"',
      'download_llvm_cov': 'checkout_size == "full"',
      ...
    }

and so forth. I think the questions then are: 

- should we default to "full" or "minimal"?
- what's in which category? 
- do we need more than two categories?

I suggest we start with defaulting to 'minimal', since it's easier to add stuff to the default than it is to remove things, try to start with two categories since it's not clear what would be in a third, and use as a heuristic that the 'minimal' category just contains what you need to build chrome and run the most common tests (unit_tests, browser_tests).

Anyone have other thoughts or opinions?
 
Cc: phajdan.jr@chromium.org
Owner: dpranke@chromium.org
Status: Started (was: Assigned)
I had some time, so I've taken a stab at this, because I have a new dependency that I want to land on the bots but not be downloaded by default :).

See the build-side CL: 

  https://chromium-review.googlesource.com/#/c/chromium/tools/build/+/683339

and a src-side CL that uses it here: 

  https://chromium-review.googlesource.com/c/chromium/src/+/592721/10..11

I used the name "build_checkout_configuration" rather than "checkout_size" as I thought it was more descriptive, and "full" instead of "default" as a value to avoid debates about what the "default" is :).

phajdan.jr@ - what do you think?
The latest thinking on this is that "default" will be, well, "default", and so we won't need a configuration for it. More specifically, DEPS should be defaulting to download whatever a "main waterfall" bot would download on a given platform.

"main waterfall" == 

master.chromium
master.chromium.android
master.chromium.chromiumos,
master.chromium.gpu,
master.chromium.linux,
master.chromium.lkgr,
master.chromium.mac,
master.chromium.memory,
master.chromium.perf,
master.chromium.webkit,
master.chromium.win

We will also define a "small" configuration that will not include NaCl and may not include other things not needed to build Chromium; most of the other hooks can conditionally default to that.
Summary: Need "default" and "small" configuration in gclient (and to remove deps on CHROME_HEADLESS) (was: Need "default" and "minimal" configuration in gclient (and to remove deps on CHROME_HEADLESS))
Project Member

Comment 4 by bugdroid1@chromium.org, Oct 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f044b6b0c1dbc43f4c5f42bfa72c03671c9a22f9

commit f044b6b0c1dbc43f4c5f42bfa72c03671c9a22f9
Author: Dirk Pranke <dpranke@chromium.org>
Date: Thu Oct 05 22:02:03 2017

Add a `checkout_configuration` var to DEPS.

By default, we want to check out everything that is needed to
run on one of the main waterfalls (see the list in the bug for
specifics). However, we also want to support a "small" configuration
that can be used to skip things like NaCl that are optional for
development, in the interest of a smaller download.

R=thakis@chromium.org, phajdan.jr@chromium.org
BUG= 768433 

Change-Id: I45d8984616f7e25bd587070569d471eaab9ce8d7
Reviewed-on: https://chromium-review.googlesource.com/699834
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506874}
[modify] https://crrev.com/f044b6b0c1dbc43f4c5f42bfa72c03671c9a22f9/DEPS

Status: Fixed (was: Started)

Sign in to add a comment