Commit Graph

727 Commits (912a744103664d7fe0e8b75b7ebb4a49f90c58c7)

Author SHA1 Message Date
Gavin Mak 17551f6e84 Reword presubmit summary markdown
The summary markdown assumes there's errors when there might not be.

Recipe-Nontrivial-Roll: build
Bug: 330512874
Change-Id: I4941bd0551f5bb64adec7a85bbaeb64c20e230b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5427700
Auto-Submit: Gavin Mak <gavinmak@google.com>
Reviewed-by: Louis Romero <lpromero@google.com>
Commit-Queue: Louis Romero <lpromero@google.com>
1 year ago
Robert Iannucci 1a776cf430 [osx_sdk] Add TestApi to allow mocking macOS version.
Some downstream repos rely on the 'current platform' detection and
would like to mock it in their tests. Give a real API for doing this
instead of having downstream recipes key on the internal step name
here.

R=athom, jeffyoon@google.com, whesse

Change-Id: If9d049c568c70cac9ddee1c06f2bd04ac4f572a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5428682
Reviewed-by: Alexander Thomas <athom@google.com>
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
1 year ago
danakj e6aba2bcf1 Update the mac toolchain to 26bb3effce1bc1
The list of toolchain hashes is here:
https://chromium.googlesource.com/infra/infra/+log/refs/heads/main/go/src/infra/cmd/mac_toolchain

Bug: chromium: 40284755
Change-Id: I225101faa8236c8c23417239e5682bb9312b8e15
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: build
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5428515
Commit-Queue: Gavin Mak <gavinmak@google.com>
Auto-Submit: danakj <danakj@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>
1 year ago
danakj 7fa774456f Add the latest Xcode versions for macOS 13.0, 13.5 and 14.0
According to https://en.wikipedia.org/wiki/Xcode:
- macOS 13.0 is the minimum macOS version supported by
  14E222b and 14E300c
  - So we point 13.0 to the latest one, which is 14E300c
- macOS 13.5 is the minimum macOS version supported by
  15A240d, 15A507, 15C65, and 15C500b
  - So we point it to the latest one, which is 15C500b
- macOS 14.0 is the minimum macOS version supported by
  15E5204a (which looks like a typo of 15e204a according
  to xcodereleases.com and //infra/config/targets/mixins.star)
  - There will surely be more versions that support back
    to 14.0 but this is the only one for now. So we point
    it 15e204a.

This should hopefully give us C++20 support on macOS 13 and up,
like we see in the Chromium waterfall.

Bug: chromium: 40284755
Change-Id: I2049aa3c4b32990dbedbd95e9ec35cceaa1ca3a3
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: build
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5425635
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: danakj <danakj@chromium.org>
1 year ago
danakj 8d8494a141 Add Xcode 15.2 (15C500b) for macOS version 14.2
This is the Xcode version used in the chromium waterfall:

https://source.chromium.org/chromium/chromium/src/+/main:infra/config/targets/mixins.star;l=1832-1846;drc=d3b83cc14328bf58d20721b78ab3fd4187f52a76

Change-Id: Ia79d8ce713ea2d7a0701d8094001f9173e3466b9
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: build
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5425390
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: danakj <danakj@chromium.org>
1 year ago
David Benjamin 2d6b598b7a windows_sdk: Fix docs to also mention arm64
Change-Id: I39fb0f99e62a822b9aa7d1b099c3a73e4499e051
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5345456
Auto-Submit: David Benjamin <davidben@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
1 year ago
Vadim Shtayura 4a9d989f52 Roll recipe dependencies.
To pick up
https://chromium.googlesource.com/infra/luci/recipes-py/+/fcb91e42

R=iannucci@chromium.org

Change-Id: I60d77bbdbe1eb92efd05370d45523af7600b7790
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5406117
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
1 year ago
Robert Iannucci 2dbb3f399a [recipe_modules/osx_sdk] Rewrite osx_sdk module to not rely on platform.mac_release.
Since macOS 11, the underlying python `platform.mac_vers()` call
that mac_release is populated from returns "10.16" on all versions
of macOS.

Switch this to just shell out to `sw_vers` to pick up the current
platform version instead.

Non-trivial downstream rolls are because `api.platform.mac_release`
no longer mocks the version of the SDK installed... however it would
be better to set this by just using the explicit sdk_version property.

R=yueshe@google.com

Bug: 331252586
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: build
Change-Id: I41a27383f67db4835ba84b7a47813884879818cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5394351
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Yue She <yueshe@google.com>
1 year ago
Robert Iannucci 03e4484a72 [recipe_modules/git] Set checkout_dir in tests/number.py.
It's soon going to be invalid to use checkout_dir before it's set.

R=bryner, recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com

Change-Id: I48185dec02fc9de250bb12843ac9a8bcabbd74d8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5342874
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
1 year ago
Gavin Mak 0696c428b0 Switch to using issues.chromium.org bug links
Bug: b/323898035
Change-Id: I2dacc7d524fb11265d7c2385259b3a918d4fb6ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5270201
Auto-Submit: Gavin Mak <gavinmak@google.com>
Commit-Queue: Yiwei Zhang <yiwzhang@google.com>
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
1 year ago
Gavin Mak 85142e0ee1 Upload git traces if bot_update doesn't exit with ok_ret
Recipe-Nontrivial-Roll: build
Bug: 1517126
Change-Id: I04a6e369a9d0fb50e0dfd18f4bd23ecc0c1c40d6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5186756
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
2 years ago
Scott Lee 1714cc6e5a [depot_tools] fix args to pass --depth
The current code appends "--depth 1" as a single parameter.

Change-Id: I87cf34ffc45d0d9ce49453a7449b82e526989924
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: build
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5105224
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
2 years ago
Scott Lee a3f3465f48 [depot_tools] add optional param `depth` in git checkout
It can be used to reduce the size of payloads to download in git fetch
operations.

Change-Id: I631af18bee01eaa829d3d4755a57935690a99a85
Bug: 1508826
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5091760
Commit-Queue: Scott Lee <ddoman@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
2 years ago
Josip Sokcevic fba0ae4a38 recipe_modules/gclient: Exclude non-set properties
Only set got_*_revision properties that are set.

R=chanli, gbeaty

Fixed: 1502012
Change-Id: I5c42da8d1d5ce37cd3816f1ef4b857a603fc1195
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5030871
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Auto-Submit: Josip Sokcevic <sokcevic@chromium.org>
Reviewed-by: Chan Li <chanli@chromium.org>
2 years ago
recipe-roller 940c4a01db Roll recipe dependencies (nontrivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8764509030854892129

Please review the expectation changes, and LGTM+CQ.

recipe_engine:
20788e5b9b
  20788e5 (mohrr@google.com)
      [recipe_engine] Always show full stacks

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: Idb9047f921b1740485954fa5aa6e9b47a4e857d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5026363
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
2 years ago
recipe-roller f007e78ef9 Roll recipe dependencies (nontrivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8765521324786787649

Please review the expectation changes, and LGTM+CQ.

recipe_engine:
bc82350667
  bc82350 (iannucci@chromium.org)
      [recipe_engine] Switch recipes to execute with python3.11.

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I1d1084286366429b245e958e453bf73e883c78e2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5001769
Auto-Submit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
2 years ago
Rob Mohr d3acdc8c57 recipes: Remove unnecessary use of defer_results
Bug: chromium:1495428
Change-Id: I266cb0d8cb101dc5ce8fb25622bb0d5d800ca27a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4979598
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Rob Mohr <mohrr@google.com>
2 years ago
Joanna Wang c2e0061723 Use diff.ignoreSubmodules=all when committing patches.
Bug:1486973
Recipe-Nontrivial-Roll: build
Change-Id: Ifde97d61d55e7f78068bc2f745ec0816bbb5d694
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4909801
Commit-Queue: Joanna Wang <jojwang@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
2 years ago
Gavin Mak 512f3cb37e Drop py2 support in various files
python3 is the only supported version of python in depot_tools.
Remove py2 support from files including:
  * cpplint.py
  * subprocess2.py
  * many tests and testing_support files

Bug: 1475402
Change-Id: I67a98188bc13c4dc119e6158a37bd236bfd6ea70
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4824474
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Reviewed-by: Scott Lee <ddoman@chromium.org>
2 years ago
Gavin Mak 642a989069 Reland "Drop py2 support in recipe modules"
This is a reland of commit 5819c303f0

Original change's description:
> Drop py2 support in recipe modules
>
> python3 is the only supported version of python in depot_tools.
>
> Bug: 1475402
> Change-Id: I479de09a0c34b438aced35e4ced58a5972108132
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4808518
> Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
> Commit-Queue: Gavin Mak <gavinmak@google.com>

Bug: 1475402
Change-Id: Ie4e6612a95511026b7602837f8dd3030bcf3ef8a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4811285
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Gavin Mak <gavinmak@google.com>
2 years ago
Gavin Mak a5f17dd7b3 Revert "Drop py2 support in recipe modules"
This reverts commit 5819c303f0.

Reason for revert: breaking dart builds

Original change's description:
> Drop py2 support in recipe modules
>
> python3 is the only supported version of python in depot_tools.
>
> Bug: 1475402
> Change-Id: I479de09a0c34b438aced35e4ced58a5972108132
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4808518
> Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
> Commit-Queue: Gavin Mak <gavinmak@google.com>

Bug: 1475402
Change-Id: I0fef7581835bb25ea7e4f22303eef11e72df9536
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4811596
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
2 years ago
Gavin Mak 5819c303f0 Drop py2 support in recipe modules
python3 is the only supported version of python in depot_tools.

Bug: 1475402
Change-Id: I479de09a0c34b438aced35e4ced58a5972108132
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4808518
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Gavin Mak <gavinmak@google.com>
2 years ago
Josip Sokcevic 3869a16107 [recipe] Support stripping dep prefix
It's the only roll that uses use_relative_path = False. Instead of fully
supporting that case, we will ask user to provide prefix that should be
removed when gitlinks are added.

Change-Id: I1e39d0ce145a246e5b69b7cf64e6b9471bcb1aea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4794721
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Reviewed-by: Keybo Qian <keybo@google.com>
2 years ago
Josip Sokcevic 2a951b8648 [recipes] Add roll_deps to gclient
roll_deps method in gclient recipe_module allow users to pass DEPS file
together with recipes that need to be rolled. It returns a list of files
that need to be edited in addition to the modified DEPS file (replaced
inline).

R=jojwang, keybo

Change-Id: I6987849f0ebacbb063d6f6186af1dba1647550a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4785897
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Reviewed-by: Xinan Lin <linxinan@chromium.org>
2 years ago
Gavin Mak 7131bc5609 Remove chromium style plugin solution
The chromium-style plugin was replaced last year with cl/495068108.

Change-Id: Ifce7cf5e22f10681ffe743572182d759ae51fed2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4743665
Auto-Submit: Gavin Mak <gavinmak@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
2 years ago
Gavin Mak e13840bd9a Remove explicit refs/heads/master revision from gerrit solution
Recipe-Nontrivial-Roll: infra
Bug: 1469734
Change-Id: I7c84383525351798c270cdc3b2f239493f1349e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4743948
Reviewed-by: Arthur Bello <artbello@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
2 years ago
recipe-roller 72d05d0d22 Roll recipe dependencies (nontrivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8775574442380992545

Please review the expectation changes, and LGTM+CQ.

recipe_engine:
a25e256b7c
  a25e256 (gbeaty@chromium.org)
      Remove json python2 backwards-compatibility separators value.

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: Icb78a982055ee8aa9b0551ac8d6dea80a7fa7dd9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4687678
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Auto-Submit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2 years ago
Robert Iannucci d78d8ab771 [gclient] Export CONFIG_CTX for other modules to extend.
The recipe engine has a refactor coming up where CONFIG_CTX needs to
be explicitly exported for other modules to extend it. Currently
a handful of modules in the build, build_internal and
release_scripts repos extend the gclient configuration context.

Exporting it like this should have no functional effect, but is just
in preparation for the upcoming refactor.

R=gavinmak

Bug: 1462728
Change-Id: I5871d472f7e28d38eefa9b1e89cfcc804823a1bd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4680284
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>
2 years ago
Yue She 7b0a195903 [mac_toolchain] Roll mac_toolchain version for builders using osx_sdk
This rolls adds support for xcode15 adoption, in case builders using osx recipes want to roll to xcode15 in the future

Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: infra
Bug: 1457029
Change-Id: I958d1ac03281d5663ff3a0df4f0812bde863df2e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4675569
Reviewed-by: Jeff Yoon <jeffyoon@google.com>
Commit-Queue: Yue She <yueshe@google.com>
2 years ago
Robert Iannucci 247429efd9 [git_cl] Remove config from git_cl module.
No downstream repos use this functionality now, using instead the
simpler, explicit, set_default_repo_location method.

Bug: 1462728
Change-Id: Iaf3836b30234f0b798c53f27639ab19c1b134ac9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4669517
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
2 years ago
Robert Iannucci d0b85e47dc [recipe_modules/git_cl] Add migration path away from using config.py.
The usage of config in the git_cl module is wholly unnecessary - This
CL gives a trivial way to change downstream repos to use a normal method
in place of configs, which will ultimately let us remove config.py from
this module.

Change-Id: Ia02ad110c41fadcd3bada0258ba96cbe70d0e43c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4662591
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
2 years ago
Gavin Mak 60c4b8810b Reserve time from soft_deadline to upload traces if bot_update times out
The "upload traces" step is skipped if bot_update times out and is in
the grace_period. Reserve 1 minute to upload traces.

Bug: 1351547, 1456840
Change-Id: Idb191735a07d245575ff4c79375a976750522fa5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4651461
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
2 years ago
Gavin Mak 94761e3305 Fix bot_update _trace_dir
The traces dir isn't created yet and fails to upload traces.

Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Bug: 1351547, 1456880
Change-Id: I635ad02168c918028a3bd4ad6f914f5835dad9b6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4633186
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Auto-Submit: Gavin Mak <gavinmak@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
2 years ago
Yiwei Zhang b56b654322 bot_update: fix the check for is running on linux
Since python3.3, the platform value has been changed from linux2 or
linux3 to linux. The bug has stopped bot_update script from emitting
proces tree periodically that will be helpful when debugging.

R=sokcevic

Bug: 1455926
Change-Id: Id6ab4ddf46eaa322a8b5470baa7ba6cc656a6bb3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4654290
Auto-Submit: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Yiwei Zhang <yiwzhang@google.com>
2 years ago
recipe-roller 4ec095fa85 Roll recipe dependencies (nontrivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8777726121979453601

Please review the expectation changes, and LGTM+CQ.

recipe_engine:
3b628ec844
  3b628ec (iannucci@chromium.org)
      [json] Add ability to dump json with unsorted keys.

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I941000effd8a6e7fb01a662a0dccdf90d1d3fe8a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4630530
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
2 years ago
Robert Iannucci c868adc368 Remove OrderedDict from test expectation
`api.json.output` is going to start returning regular dict soon
(https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/4616531)

Note that in python3 (which in this context means 3.8+), dictionaries are
ordered by insertion order.

R=gbeaty

Change-Id: I3358ca32376512d13da945f13ea2c52acf07b404
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4630528
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
2 years ago
Xinan Lin 66ab0a5131 Allow existent branch when creating branches via recipe
BUG=1433047
TEST=train

Change-Id: Iafa16840f7ead393ccd09dd483e45e9098358755
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4629867
Commit-Queue: Xinan Lin <linxinan@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>
2 years ago
Garrett Beaty 3ffad8166e Don't set blamelist_pins on the json output.
The blamelist_pins attribute is being set on the json output, which is a
dictionary. This only works right now because json.output currently uses
OrderedDict as the dict type. With removal of support for python2, dict
could be used since its iteration order is insertion order in python3.
This change removes setting the blamelist_pins attribute since its not
used anywhere and it will allow json.output to use plain dict.

Change-Id: Ie19b87d61903774454df2d395acf695eaa39b201
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4617204
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
Auto-Submit: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
2 years ago
Gavin Mak 6fde53139b Upload git traces from bot_update
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Bug: 1351547
Change-Id: I1e018a8407c10ad4f9b6674d4b17ccae1e863389
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4568628
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Gavin Mak <gavinmak@google.com>
2 years ago
Lei Zhang 14123b76a8 Update Xcode for macOS 11 and 12
Switch from Xcode 13.0 to 13.2.1 to update the macOS SDK from 11.3 to
12.1. This is needed for bots that use this receipe, like PDFium Mac
bots, after crrev.com/1154867 made macOS 12 mandatory. This also has the
effect of updating the iOS SDK from 15.0 to 15.2.

Change-Id: I4c91b2c23bd8eaacac6cef6afe71fed3533fd838
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4605813
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lindsay Pasricha <lindsayw@chromium.org>
2 years ago
Arthur Eubanks 5fb55cf84e Use xcode 14c18 for macos 13.3+
Bug: chromium:1453280
Change-Id: I912bff9864af30761287500083d93becd07a79d4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4602108
Reviewed-by: Yue She <yueshe@google.com>
Commit-Queue: Jeff Yoon <jeffyoon@google.com>
Auto-Submit: Arthur Eubanks <aeubanks@google.com>
Reviewed-by: Jeff Yoon <jeffyoon@google.com>
2 years ago
Takuto Ikuta 37d1312fcd presubmit: remove reference to omit_python2 experiment
This is not used now.

Bug: 1441784
Change-Id: I7c332ff2738c697bb5ea4c14d4b938a2cdab9221
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4584391
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
2 years ago
Mike Frysinger 9e0ff22bfb gsutil: don't warn/log if ~/.gsutil doesn't exist to clean
Make errors less chatty in builders.

Bug: b/285376658
Change-Id: I9ffda16e97900d0a3bbc27b588ce9806a73780ea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4582290
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>
2 years ago
Mike Frysinger 6d5fa4a45e gsutil: move unnecessary logic out of try block
The logging & path expansion shouldn't trigger exceptions, so move
them out of the try block to reduce the scope for this.

Bug: b/285376658
Change-Id: I617d572d997f8eaafa222cdb6c1d984c459d9733
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4582289
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Joanna Wang <jojwang@chromium.org>
2 years ago
Mike Frysinger d8670c5709 gsutil: use os.path.expanduser
Makes the code a little simpler and avoids relying on the env directly.

Bug: b/285376658
Change-Id: Iae8300059b3418e0a9224eb555df6eb6cafa9437
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4582288
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
2 years ago
Aravind Vasudevan 12b45d719a Reland "Add git_cache epoch to bot_update output.properties"
This reverts commit ede859f9ee.

Reason for revert: This change includes a fix for the missing path issue. if the `cache_path` doesn't exist, it runs os.mkdirs before setting the cache epoch marker.

Original change's description:
> Revert "Add git_cache epoch to bot_update output.properties"
>
> This reverts commit 867d3267c1.
>
> Reason for revert: breaks some builders, https://crbug.com/1448769#c5
>
> Original change's description:
> > Add git_cache epoch to bot_update output.properties
> >
> > This change adds git cache's epoch timestamp to bot_update's output.properties. It achieves this by adding a marker file to the cache directory which stores the epoch time.
> >
> > Design: go/query-bot-update-cache-age
> >
> > Bug: 1448769
> > Change-Id: I610c6bca5ced7e2a0fe3ee8570decf0f135fe54c
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4563726
> > Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
> > Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
>
> Bug: 1448769
> Change-Id: I29db9ac364a9cf1d615b00ed75c1346e56b3f3b6
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4582291
> Commit-Queue: Gavin Mak <gavinmak@google.com>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>

Bug: 1448769
Change-Id: Ia6fd5b27f7556dd81f65011364506d3aa535de62
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4583007
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
2 years ago
Gavin Mak ede859f9ee Revert "Add git_cache epoch to bot_update output.properties"
This reverts commit 867d3267c1.

Reason for revert: breaks some builders, https://crbug.com/1448769#c5

Original change's description:
> Add git_cache epoch to bot_update output.properties
>
> This change adds git cache's epoch timestamp to bot_update's output.properties. It achieves this by adding a marker file to the cache directory which stores the epoch time.
>
> Design: go/query-bot-update-cache-age
>
> Bug: 1448769
> Change-Id: I610c6bca5ced7e2a0fe3ee8570decf0f135fe54c
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4563726
> Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
> Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>

Bug: 1448769
Change-Id: I29db9ac364a9cf1d615b00ed75c1346e56b3f3b6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4582291
Commit-Queue: Gavin Mak <gavinmak@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
2 years ago
Aravind Vasudevan 867d3267c1 Add git_cache epoch to bot_update output.properties
This change adds git cache's epoch timestamp to bot_update's output.properties. It achieves this by adding a marker file to the cache directory which stores the epoch time.

Design: go/query-bot-update-cache-age

Bug: 1448769
Change-Id: I610c6bca5ced7e2a0fe3ee8570decf0f135fe54c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4563726
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
2 years ago
Joanna Wang 4dfbc0a3a9 Add superproject got_revisions.
(1) bot_update (http://shortn/_I814yt6r9U) will use got_revision_mapping
in these configs to create builder properties
{
'got_revision': <revision>
'got_revision_superroject': <revision>
}
(2)
recipe testing a change will use these configs to go from:
CL's project -> project's name in gclient solutions -> got_revision string
(e..g 'https...infra/infra_superproject' -> '.' -> 'got_revision_superproject'

(3) then use e.g. 'got_revision_superproject' to get the <revision> it should use from (1) and pass to wherever. in the presubmit recipes case, we're passing it as upstream to presubmit_support.py http://shortn/_BHBdN9p7ja

After this change we can add infra and internal presubmit tryjobs to the infra_superproject repo.

Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: chromiumos
Bug: 1415507
Change-Id: Ia9804325c35b6071afa73d1b1099695ea6ae0b03
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4570829
Auto-Submit: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
2 years ago
Joanna Wang b52b190cb8 Add explicit path for infra in infra_superproject gclient config.
Recipe-Nontrivial-Roll: infra
Bug:1415507
Change-Id: Ic6973c4f0c9fa011549d44a89205a0731c3ff944
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4566110
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Gavin Mak <gavinmak@google.com>
2 years ago
Yue She c83abb3247 Roll mac_toolchain version for builders using osx_sdk
This would add support for uploading/installing Xcode with MacOS13 adoption

Recipe-Nontrivial-Roll: build_limited
Bug: 1441931
Change-Id: I7496a80a6876fc4b0df712ce1634611f59240e67
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4566408
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Jeff Yoon <jeffyoon@google.com>
Commit-Queue: Yue She <yueshe@google.com>
2 years ago
Joanna Wang 1affd9c35d Add arg in bot_update recipes api to override deps revisions.
Bug: 1415507
Change-Id: I0bb224eb2b9b4f37d56543c40612736c3c8322a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4561776
Auto-Submit: Joanna Wang <jojwang@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
2 years ago
Joanna Wang 9c32c9240c Add explicit path for infra_internal in infra_internal_superproject gclient config.
Fixes this error:
http://shortn/_MMjWQ6UDNN

presubmit.execute() (http://shortn/_IqUEskOvZy) calls get_project_revision_properties (http://shortn/_2YWZfKEBWb).
the `project_name` passed in was '.' (the solution root) so get_project_revision_properties was returning nothing.

setting 'infra_internal' in repo_path_map leads to this code (http://shortn/_7cO431MLDm) setting `self._relative_root` to `infra_internal` as expected. So `project_name` above will be `infra_internal` not '.'

In this case, also seems to fix the empty commit patch issue, as the `git commit` gets executed in infra_internal now.

led run: http://shortn/_UM6iapZUkx

Bug: 1415507
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: build
Change-Id: Ib457ded91ffe5b9041b8b1bb0345229bfd07d1f3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4545587
Auto-Submit: Joanna Wang <jojwang@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
2 years ago
Joanna Wang 44a278067b Allow empty commits in presubmit recipe.
Bug:1415507
Recipe-Nontrivial-Roll: build
Change-Id: I6f9833603b2fd1cad0665da762e0a2cd47d4fabd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4547402
Auto-Submit: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
2 years ago
Robert Iannucci 3d6d2d2500 [git-cl][presubmit] Remove references to LUCI_OMIT_PYTHON2.
This changes all references to the LUCI_OMIT_PYTHON2 environment
variable to instead assume that it is `'true'`.

R=sokcevic, tikuta

Bug: 1441784
Recipe-Nontrivial-Roll: build
Change-Id: Iea161a372adb68cdcb330d131df2c19ca2fe7b37
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4522480
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
2 years ago
Robert Iannucci 330de93b15 [recipe_modules/presubmit] Only run with vpython3.
The time has come :).

R=aravindvasudev@google.com

Bug: 1413668
Recipe-Nontrivial-Roll: build
Change-Id: Ie6e26cc87a22d17eb2e4bc6b8f86895738670eea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4389545
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
2 years ago
Takuto Ikuta d37c0b505e Revert "presubmit: remove presubmit step running python2"
This reverts commit f155639336.

Reason for revert:
https://ci.chromium.org/ui/p/infra/builders/try/infra-try-presubmit/b8781520593544576993/overview

Original change's description:
> presubmit: remove presubmit step running python2
>
> This is to deactivate `luci.buildbucket.omit_python2` experiment.
>
> I'll submit this after https://crrev.com/c/4515085 is submitted.
>
> Bug: 1401307, 1441784
> Recipe-Nontrivial-Roll: build
> Change-Id: I0aec58e9b96c961da21f0de0850c4078bb679c33
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4513661
> Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
> Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
> Commit-Queue: Takuto Ikuta <tikuta@chromium.org>

Bug: 1401307, 1441784
Change-Id: I47a9921b74917a4b0caa6f577c9fc6d3542f8b54
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4519043
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2 years ago
Takuto Ikuta f155639336 presubmit: remove presubmit step running python2
This is to deactivate `luci.buildbucket.omit_python2` experiment.

I'll submit this after https://crrev.com/c/4515085 is submitted.

Bug: 1401307, 1441784
Recipe-Nontrivial-Roll: build
Change-Id: I0aec58e9b96c961da21f0de0850c4078bb679c33
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4513661
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
2 years ago
Garrett Beaty 37f499daec Default to an empty footers dict instead of None.
By default during tests, the _get_footers_step call will return None for
the returned footers because it does not set any test data. This does
not match the actual behavior of the recipe because git_footers.py
returns an empty json object if the commit message has no footers. This
change updates it to return an empty dict instead of None and checks for
the cached footers value to be None instead of any non-true value so
that a commit message without footers doesn't get parsed multiple times.

Change-Id: I716a27e964eb92de138228df5cc0876322d82823
Recipe-Manual-Change: build
Recipe-Nontrivial-Roll: build_limited
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4492269
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
2 years ago
Ariel Zhang 2d1c655c2c Add CL description getter
For context crrev.com/c/4450427.

R=gbeaty@google.com

Change-Id: Ic0a7847009be274010daeaf3181242ae34477a39
Bug: b/214597409
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4451469
Commit-Queue: Ariel Zhang <arielzhang@google.com>
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
2 years ago
Joanna Wang fd9cea79c1 Use --upstream when calling bot_update (passed to gclient sync).
Should resolve this flaky issue in infra-try builds : https://ci.chromium.org/ui/p/infra/builders/try/infra-try-bionic-64/b8783448305870388449/overview

in logs we see

'''
________ running 'git reset --hard HEAD' in '/b/s/w/ir/cache/builder/infra'
[0:00:02] HEAD is now at 64b4e8f867 Committed patch
[0:00:03] Finished running: git -c core.quotePath=false status --porcelain
[0:00:03] Attempting rebase onto d94466a8462dd19c2a3fc0ca173fd1c89a1f3f28...
[0:00:04] Current branch tmp_checkin_branch is up to date.
[0:00:04] Finished running: git rev-parse HEAD
Checked out revision 64b4e8f867c7b8757438b7e64985654d80a3b135
'''
64b4e8f867 is not a valid infra/infra commit. It is a local commit created from the patch of the last try-job run.

Prior to switching recipes to infra_superproject, we have been depending on https://source.chromium.org/chromium/chromium/tools/depot_tools/+/main:recipes/recipe_modules/bot_update/resources/bot_update.py;l=753;drc=489304d94984bb006a03e842cf2c171c73e7d367 to bring the checkout back to a valid remote infra/infra commit before we get to `gclient sync`. But with infra_superproject as the new root solution, `git checkout --force <pin>` runs for infra_superproject.

'git reset --hard HEAD' is coming from:
https://source.chromium.org/chromium/chromium/tools/depot_tools/+/main:gclient_scm.py;l=786-791;drc=cf4658579326856b9b25cfe2efbfc8683af88814

This is noop. The previous patch commit IS HEAD.

With --upstream we get: `git reset --hard refs/remotes/origin/main`


Bug: 1421776, 1434522
Change-Id: I0d192a160fcc7c3d405765e2e03e05aeb60f6875
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4445126
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
2 years ago
Ben Pastene 97dadd025f Apply the gerrit REST timeout to only 'GetChanges' calls
https://crrev.com/c/4420526 put a 10s timeout on all calls made via
this script.

But it appears there are a variety of endpoints that take more than
10s, the latest being "SubmitChange", eg:
https://ci.chromium.org/ui/p/chromeos/builders/release/release-R113-15393.B-orchestrator/25/overview

So instead of applying the timeout to everything, and then opting
certain long-running calls out of it, this just opts-in the
"GetChanges" call to the timeout. This should cover the failure mode
that was originally solved for chrome's bots. And also bump the
timeout to 30s since we don't trust all get-changes queries to
reliably finish in under 10s.

This also bumps the step level timeout for the query in tryserver
recipe_mod to 8 min since there could be ~5min worth of sleeping +
150s worth of waiting+timing-out. So worst case the step will now
take 8min to fully exhaust all timeouts/sleeps.

Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Bug: b/278083716
Change-Id: Ib366e004e0bb07297ba732590d488cae779e38ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4426524
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
2 years ago
Ben Pastene 9519fc1300 Add timeouts to the actual http calls in gerrit_util.py
When gerrit's availability drops, chrome's builds see an excessive
amount of failures, eg:
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359780/overview
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359594/overview
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359564/overview
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359630/overview

Seemingly all failures occur in either the `gerrit fetch current CL
info` step or the `gerrit changes` step. Both steps have a 60s timeout
and shell out to depot_tools' gerrit_client.py. That script essentially
makes a single http call to gerrit. That request has no configured
timeout. So when gerrit's MIA and the call hangs indefinitely, so too
will the step hang. 60s after that, the step timeout is reached, and the
entire build crashes with an infra-failure.

However, one single retry has been shown to sufficiently work around
at least one instance of that failure:
dea9a6eca26f690ce10a959701a8fb51ad/+/build.proto

So this incorporates timeouts into the requests made by
gerrit_util.py. Each request is given a 10s timeout, which should be
enough for most/all gerrit calls. (Both steps have a p90 of less than
1sec.) When a timeout is reached, the script will automatically retry
up to 4 times.

This also bumps the timeouts of the step calls to gerrit_client.py to
6min since the script can now take up to 5 minutes to fail, ie:
the sequence of sleeps is roughly 10s, 20s, 40s, 80s, 160s, which is
about 5min. So a 6min timeout should cover all those retries.

This also passes in "--verbose" to all step calls to this script, so
the logging that prints out the retry + sleep log lines will be
visible in build logs.

Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Bug: 1432638
Change-Id: I9dc47f4beeda3783ae4f9152bd29ee441ac3e197
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4420526
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
2 years ago
Joanna Wang 95a28c5a14 Update infra contexts to use infra_superproject.
Recipe-Nontrivial-Roll: infra
Bug: 1415507
Change-Id: I92a60640679115ae188c6de610ef695876a536b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4378428
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Joanna Wang <jojwang@chromium.org>
2 years ago
Greg Edelston 02349da2cb recipe_modules/gsutil: Add `dry_run` kwarg
This kwarg will display the command that would have been run, without
actually running it. I plan to use this kwarg on some ChromeOS staging
builders.

BUG=b:270142110
TEST=./recipes.py test train

Change-Id: I20194152e305dc6bae71a58b94de71d414839643
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4382316
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Greg Edelston <gredelston@google.com>
Commit-Queue: Greg Edelston <gredelston@google.com>
Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
2 years ago
Joanna Wang 489304d949 Use os.renames() in remove() to auto-create subdirectories.
Bug: 1415507
Change-Id: Ie52123dc0844639116b55bc7f6a2734aaf7df33e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4378417
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
Auto-Submit: Joanna Wang <jojwang@chromium.org>
2 years ago
Joanna Wang df528a9d7a Fix multiple endswith values.
Bug: 1421776
Change-Id: I6ca45a7aa086da4356302a7b9aa588bf60888129
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4375877
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
2 years ago
Joanna Wang d9717259ee Adjust bot_update recipes to work with infra_superproject context.
Bug: 1415507
Change-Id: I0774eb4f2b7ea43b04a715c295f89e3adda6a9aa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4347772
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
2 years ago
Joanna Wang d99bfd79b4 Add infra_superproject context.
Bug: 1415507
Change-Id: I89921959b6de164decd58aede3de7c8a6b504b7e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4368458
Commit-Queue: Yulan Lin <yulanlin@google.com>
Auto-Submit: Joanna Wang <jojwang@chromium.org>
Reviewed-by: Yulan Lin <yulanlin@google.com>
2 years ago
Joanna Wang d04720454a Update recipes python tests.
For: http://shortn/_j5mixA1Mjr

Change-Id: I7ac4471fbb1e0629d59263266b3470e372d03a19
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4368938
Auto-Submit: Joanna Wang <jojwang@chromium.org>
Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
2 years ago
Brian Sheedy 3971323b1d Remove get_footers patch_text TODO
Removes a TODO to remove the patch_text argument and its uses from
get_footers and related methods. The TODO indicated that it was
only used in example code, and thus should be handled another way.
However, it turns out that there is at least one legitimate use of
thus functionality downstream to retrieve footers from CL
descriptions earlier revisions.

Fixed: 1179039
Change-Id: I79996f6053a6769043943de39735b2b5d7ee02ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4283342
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
2 years ago
Aravind Vasudevan 214e1b269d Revert "Reset origin/HEAD when it points to master"
This reverts commit 19794fe91f.

Reason for revert: Doesn't fix the cache.

Original change's description:
> Reset origin/HEAD when it points to master
>
> This change tries resetting origin/HEAD when it points to master and the ref cannot be found. Post master->main migration, some cached repositories seem to point origin/HEAD to master.
>
> Bug: 1418866
> Change-Id: I83942901b105cace4d51deeac7e400f98d200168
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4296441
> Reviewed-by: Fumitoshi Ukai <ukai@google.com>
> Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
> Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>

Bug: 1418866
Change-Id: I4c912f8401afb6fb0c2149c277778bdee9fa5d76
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4304240
Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Aravind Vasudevan <aravindvasudev@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2 years ago
Aravind Vasudevan 19794fe91f Reset origin/HEAD when it points to master
This change tries resetting origin/HEAD when it points to master and the ref cannot be found. Post master->main migration, some cached repositories seem to point origin/HEAD to master.

Bug: 1418866
Change-Id: I83942901b105cace4d51deeac7e400f98d200168
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4296441
Reviewed-by: Fumitoshi Ukai <ukai@google.com>
Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
2 years ago
Brian Sheedy fce87337b1 Convert recipe_modules expectation tests
Converts all remaining recipe_modules expectation-based tests to be
assert/post_process-based.

Bug: 1418547
Change-Id: I0f45c92a4f682edcf186b5202ec2001475d04bec
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4288230
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
2 years ago
Brian Sheedy 4756d7c420 Add tryserver test_api method
Updates the tryserver recipe module's test_api to support overriding
get_footers data.

Bug: angleproject:7985
Change-Id: Ie571bc8d1c77cbb1cd4f18955b50d56e377ca903
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4278466
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
2 years ago
chrome-bot cd2395991f Add crossbench to the gclient config
Bug:1410350
Change-Id: Iaf9fa01a92ed50c70224d480c3ee1b4acaf71aeb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4234360
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Ashwin Verleker <ashwinpv@google.com>
2 years ago
Junji Watanabe 9d77ca716f [recipe] Remove depot_tools.{ninja_path, autoninja_path} recipe APIs
I have replaced all the references, and there should be no references to these APIs anymore.

A PSA has been sent already.
http://g/chromium-dev-internal/n2IL0Mbh0E8

Bug: 1340825
Change-Id: Ife882f4427f8841cacb9a70a99dbd6a90c741da2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4194896
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Junji Watanabe <jwata@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
3 years ago
Josip Sokcevic 884d716ce0 Run all presubmits with py3 if py2 isn't available
This utilizes env variable set by LUCI: https://crrev.com/c/4087937 and
luci.buildbucket.omit_python2 experiment.

R=gavinmak@google.com

Bug: 1401307
Change-Id: I0e6c6fae7cdd1e6044fe7d7c4008f7da3a1bbf23
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4179134
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>
3 years ago
Michael Achenbach 86cfa62b07 [presubmit] Use vpython3 on bots without vpython2
Bug: 1401307
Change-Id: Ie81608be8e8ec64ed569b0367f1426b4b2ab8b70
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4110968
Reviewed-by: Gavin Mak <gavinmak@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
3 years ago
Stephen Martinis cf31045b34 Remove martiniss from OWNERS
I'm leaving Chrome

Change-Id: I6dad3a55a83de4a2609d316f23e82c8f2dc729a2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4117567
Auto-Submit: Stephen Martinis <martiniss@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@google.com>
Reviewed-by: Dirk Pranke <dpranke@google.com>
3 years ago
Josip Sokcevic 9d351f8b5a Revert "Update Presubmit to python3"
This reverts commit 1b7204d841.

Reason for revert: py2 presubmits no longer running, and some
aren't migrated to run py3 yet.

Original change's description:
> Update Presubmit to python3
>
> Recipe-Nontrivial-Roll: build
> Bug:1370463
> Change-Id: I0bf182badc16f0d75c7330f52906f4cf9ff66e08
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3975294
> Reviewed-by: Josip Sokcevic <sokcevic@google.com>
> Commit-Queue: Riley Wong <rgw@google.com>

Change-Id: I82c3f0f0d502ee896d4e79a6bb330aee71b4d309
Recipe-Nontrivial-Roll: build
Bug: 1370463
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4021307
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
3 years ago
Riley Wong 1b7204d841 Update Presubmit to python3
Recipe-Nontrivial-Roll: build
Bug:1370463
Change-Id: I0bf182badc16f0d75c7330f52906f4cf9ff66e08
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3975294
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Riley Wong <rgw@google.com>
3 years ago
Brian Sheedy 9879712089 Run recipe git_cl under Python 3
Makes the git_cl recipe module use vpython3 instead of vpython, as
the latter breaks when running on builders with the omit_python2
experiment.

Bug: 1366965
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Change-Id: I2306e97dbc7b75201024b5dcf1892787185d5f77
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3968801
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
3 years ago
Riley Wong a662dd87fb Adding --no_diff flag. Needed to mute errors that are supposed to be
muted for --all.

Also adding back one level of verbose because now logs aren't
printing the stack trace for some errors.

Run Sample - https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8801029285027783553/+/u/presubmit_py3/json.output


Bug:1322936
Change-Id: Id1f30a5a8e7c5dc8a30af42e4b012f71554c340a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3946639
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Riley Wong <rgw@google.com>
3 years ago
Riley Wong 4e1c1958fa Removing log level info from Presubmit CI
STDOUT - https://ci.chromium.org/ui/p/chromium/builders/ci/linux-presubmit/8/overview has too much fluff

Bug:1322936
Change-Id: Ie516559e5006ae4dd613a82ac0ce6a705abf3820
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3933838
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Riley Wong <rgw@google.com>
3 years ago
Riley Wong ea876290e0 Accepting new flag for --all flag and allowing CI to run.
Bug:1322936
Change-Id: Idc829268aa11846325bd9db1b6b8d33094025f10
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3861697
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Riley Wong <rgw@google.com>
3 years ago
Garrett Beaty 3d1a52e074 Remove recipe warnings due to python module.
The python module is deprecated in favor of using the step module with
an explicit python binary. Switching the code to use the step module and
remove DEPS on recipe_engine/python removes warnings when running recipe
tests in the repo.

Change-Id: If3c9d5d6aff5aab69898b535399accbef92f5c0b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3880624
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
3 years ago
Zhaoyang Li 4858aea098 Roll mac_toolchain version in builders using osx_sdk
To take in change:

[mac_toolchain] Remove `sudo /usr/sbin/DevToolsSecurity -enable` | https://chromium-review.googlesource.com/c/infra/infra/+/3878350

Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: infra
Bug: 1360487, b/244578145
Change-Id: Iff028748487e6ac8afa9739bfc6287b4c359bb5a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3879565
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Commit-Queue: Zhaoyang Li <zhaoyangli@chromium.org>
3 years ago
Josip Sokcevic 228fedfaad Update diff_deps receipe to py3
This is a reland on 988c0af5be

R=aravindvasudev@google.com

Bug: 1357152
Recipe-Nontrivial-Roll: build
Change-Id: I93f8056908b50a7f41df488cfae200408d91e11b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3858159
Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
3 years ago
Joanna Wang 96b57b9b59 [no-sync] bot_update: Remove previous no-sync exp changes and implement new one.
Bug: 1339472
Change-Id: I250dd72dd806d26ba6cbe213280ecd65fbc66123
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3789864
Commit-Queue: Joanna Wang <jojwang@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>
3 years ago
Takuto Ikuta 7298625c85 recipes: use python3 for git_footers.py
Bug: 1327534
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: infra
Change-Id: I5c84648eef8930f51d3809692d1cb3ffa46db6f9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3775846
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
3 years ago
Takuto Ikuta 90191b14c2 recipes: use vpython3 in gerrit recipe modules
This is to prevent failure like
https://ci.chromium.org/ui/p/chromium/builders/try/mac-rel/1057655/overview

Bug: 1327534
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Change-Id: I922dddbd23eae0a02a95e020722b5edd1186ef77
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3771540
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
3 years ago
Gavin Mak ea11cc31c5 Remove apply_patch_on_gclient property
This property isn't used anymore.

Bug: 891917
Change-Id: I005f5b320cb33afddb1d3272f3f626542996bb62
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3766100
Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Joanna Wang <jojwang@chromium.org>
3 years ago
Junji Watanabe 350d210871 Revert .cipd_bin setup in depot_tools recipe module
This reverts https://crrev.com/c/3697958 and https://crrev.com/c/3704921.
One reason is that recipe bundle is not designed to be mutated.
Another reason is the presence of gomacc binary under .cipd_bin causes an unexpected side effect. https://crbug.com/1337048

Bug: 931218, 1337048
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Change-Id: Iaea12a0ad9246c0781035aa499cc6c0bb42d71c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3715873
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
3 years ago
Junji Watanabe 93fbd989e0 Revert "Retry switching to use CIPD ninja v1.8.2"
This reverts commit 3133f98f3f.

Reason for revert: angle recipe fails to find third_party/depot_tool/ninja.exe
https://luci-milo.appspot.com/ui/p/angle/builders/try/win-trace/2061/overview

https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/tests/capture_replay_tests.py;l=134;drc=1d67951e0851d855c016c04cd5d11e10a0e12454

Original change's description:
> Retry switching to use CIPD ninja v1.8.2
>
> This reverts commit 0a5bae7ebc + some modifications on recipe module.
>
> The previous CL https://crrev.com/c/3697958 ensures depot_tools/.cipd_bin in recipe environments. This CL copies ninja.exe from .cipd_bin to depot_tools root as cipd_bin_setup.bat.
> For developers, it's expected to run update_depot_tools which triggers cipd_bin_setup.
> For CI/CQ, depot_tools._cipd_bin_setup() should be called before using ninja/autoninja recipe module APIs.
>
> Builds with depot_tools recipe bundle are tested using led.
>
> # Windows
> > led get-build 8811491780369249585 | led edit-recipe-bundle -O depot_tools="$HOME/depot_tools" | led launch
> https://ci.chromium.org/swarming/task/5b7512ee9d91fc10?
>
> # Linux
> > led get-build 8811504372914233697 | led edit-recipe-bundle -O depot_tools="$HOME/depot_tools" | led launch
> https://ci.chromium.org/swarming/task/5b7515832d0f7c10
>
> Original change's description:
> > Revert "Switch to use CIPD ninja v1.8.2"
> >
> > This reverts commit c90a982106.
> >
> > Reason for revert:
> > https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8811949917908303825/+/u/compile/stdout
> >
> > Original change's description:
> > > Switch to use CIPD ninja v1.8.2
> > >
> > > https://crrev.com/c/3674981 installed CIPD ninja packages.
> > > This CL switches from the old ninja binaries to them.
> > >
> > > Note that this CL doesn't change ninja version. the old/CIPD ninja binaries are v1.8.2.
> > >
> > > The differences from the old binaries are
> > > - the CIPD packages don't use chromium's clang.
> > > - the CIPD package for Linux doesn't use chromium's sysroot.
> > > - the min macOS version is 10.13, which was 10.6.
> > > Please also see https://crsrc.org/i/3pp/ninja/install_bootstrap.sh
> > >
> > >
> > > On Windows, ninja.exe will be installed under .cipd_bin.
> > > But there are many places that assume that ninja.exe exists on depot_tools root. So this CL also copies the ninja.exe from .cipd_bin to root in cipd_bin_setup.bat.
> > >
> > > Bug: 931218
> > > Change-Id: Ib67eee5e9b6ad9b2937b789626970d9c85867dbd
> > > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3674982
> > > Commit-Queue: Junji Watanabe <jwata@google.com>
> > > Reviewed-by: Philipp Wollermann <philwo@google.com>
> > > Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
> > > Reviewed-by: Nico Weber <thakis@chromium.org>
> > > Reviewed-by: Josip Sokcevic <sokcevic@google.com>
> >
> > Bug: 931218
> > Change-Id: I08d61dad119a0d23ae9ec8b1ed787dd3915de697
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3686854
> > Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> > Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
> > Owners-Override: Takuto Ikuta <tikuta@chromium.org>
>
> Bug: 931218
> Recipe-Nontrivial-Roll: build
> Recipe-Nontrivial-Roll: build_limited
> Recipe-Nontrivial-Roll: chrome_release
> Recipe-Nontrivial-Roll: infra
> Change-Id: Ic7a9395c0e858823375f1a6ec79034dbc54230bb
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3696963
> Reviewed-by: Fumitoshi Ukai <ukai@google.com>
> Reviewed-by: Josip Sokcevic <sokcevic@google.com>
> Commit-Queue: Junji Watanabe <jwata@google.com>
> Reviewed-by: Takuto Ikuta <tikuta@chromium.org>

Bug: 931218
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: infra
Change-Id: I6d44be002940331eb4b7cf88ca7aa1e717ba1514
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3708294
Auto-Submit: Junji Watanabe <jwata@google.com>
Commit-Queue: Junji Watanabe <jwata@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Owners-Override: Takuto Ikuta <tikuta@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
3 years ago
Junji Watanabe 7ff520f026 call _cipd_bin_setup() in depot_tools.on_path() recipe module API
Some users call ninja/autoninja inside a depot_tools.on_path() context.
e.g. https://source.chromium.org/chromium/chromium/tools/build/+/main:recipes/recipes/chromium_upload_clang.py;l=92;drc=5bf3de010da6bd44d776f98c136e3b41f82cdfe8

Tested on a led build.
https://ci.chromium.org/swarming/task/5b802dcdfe0a2810

Bug: 931218
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Change-Id: If3ece36c1d6590d30bc071deba6387d39b7c33a5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3704921
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Auto-Submit: Junji Watanabe <jwata@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
3 years ago
Junji Watanabe 3133f98f3f Retry switching to use CIPD ninja v1.8.2
This reverts commit 0a5bae7ebc + some modifications on recipe module.

The previous CL https://crrev.com/c/3697958 ensures depot_tools/.cipd_bin in recipe environments. This CL copies ninja.exe from .cipd_bin to depot_tools root as cipd_bin_setup.bat.
For developers, it's expected to run update_depot_tools which triggers cipd_bin_setup.
For CI/CQ, depot_tools._cipd_bin_setup() should be called before using ninja/autoninja recipe module APIs.

Builds with depot_tools recipe bundle are tested using led.

# Windows
> led get-build 8811491780369249585 | led edit-recipe-bundle -O depot_tools="$HOME/depot_tools" | led launch
https://ci.chromium.org/swarming/task/5b7512ee9d91fc10?

# Linux
> led get-build 8811504372914233697 | led edit-recipe-bundle -O depot_tools="$HOME/depot_tools" | led launch
https://ci.chromium.org/swarming/task/5b7515832d0f7c10

Original change's description:
> Revert "Switch to use CIPD ninja v1.8.2"
>
> This reverts commit c90a982106.
>
> Reason for revert:
> https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8811949917908303825/+/u/compile/stdout
>
> Original change's description:
> > Switch to use CIPD ninja v1.8.2
> >
> > https://crrev.com/c/3674981 installed CIPD ninja packages.
> > This CL switches from the old ninja binaries to them.
> >
> > Note that this CL doesn't change ninja version. the old/CIPD ninja binaries are v1.8.2.
> >
> > The differences from the old binaries are
> > - the CIPD packages don't use chromium's clang.
> > - the CIPD package for Linux doesn't use chromium's sysroot.
> > - the min macOS version is 10.13, which was 10.6.
> > Please also see https://crsrc.org/i/3pp/ninja/install_bootstrap.sh
> >
> >
> > On Windows, ninja.exe will be installed under .cipd_bin.
> > But there are many places that assume that ninja.exe exists on depot_tools root. So this CL also copies the ninja.exe from .cipd_bin to root in cipd_bin_setup.bat.
> >
> > Bug: 931218
> > Change-Id: Ib67eee5e9b6ad9b2937b789626970d9c85867dbd
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3674982
> > Commit-Queue: Junji Watanabe <jwata@google.com>
> > Reviewed-by: Philipp Wollermann <philwo@google.com>
> > Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
> > Reviewed-by: Nico Weber <thakis@chromium.org>
> > Reviewed-by: Josip Sokcevic <sokcevic@google.com>
>
> Bug: 931218
> Change-Id: I08d61dad119a0d23ae9ec8b1ed787dd3915de697
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3686854
> Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
> Owners-Override: Takuto Ikuta <tikuta@chromium.org>

Bug: 931218
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: infra
Change-Id: Ic7a9395c0e858823375f1a6ec79034dbc54230bb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3696963
Reviewed-by: Fumitoshi Ukai <ukai@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Junji Watanabe <jwata@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
3 years ago
Junji Watanabe b6030901cf Setup cipd bin before calling ninja/autoninja
Tested in led builds on chromium/tools/build repo.

# Linux
```
> led get-build 8811504372914233697 | led edit-recipe-bundle -O depot_tools="$HOME/depot_tools" | led launch
...
https://ci.chromium.org/swarming/task/5b749884a3f3fa11
```

# Windows
```
> led get-build 8811491780369249585 | led edit-recipe-bundle -O https://ci.chromium.org/swarming/task/5b74bc67963d7610
```

Bug: 931218
Change-Id: I4a967f7544f71a9fef8a44baad45196365659596

Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: infra
Change-Id: I4a967f7544f71a9fef8a44baad45196365659596
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3697958
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
3 years ago
Ben Pastene 8d2d507a49 Add a method to gsutil recipe_module to disable multiprocessing on mac
In https://crbug.com/1327371, we started encountering hanging gsutil
calls. These were triggered under very specific circumstances, but
were essentially due to a multi-processing bug in python on MacOS:
https://bugs.python.org/issue33725

When running gsutil on mac, it explicitly suggests disabling
multi-processing for this reason:
https://source.chromium.org/chromium/chromium/src/+/main:third_party/catapult/third_party/gsutil/gslib/command.py;drc=3a12d6ccdec28da8bda09d9ff826aae1f9504e59;l=1331

So this CL simply puts that suggestion into practice. There are two
options for doing so: adding a line to an active Boto file, or adding
a "-o" arg to every gsutil invocation. Since chromium has multiple
copies of gsutil and multiple different locations where `gsutil` is
invoked, the latter option is considered intractable.

Instead, we choose the Boto file option by adding a context manager
to the gsutil recipe module that will insert a custom Boto file into
the environment that only disables multi-threading. Due to the fact
that the BOTO_PATH env var takes multiple paths, we can safely
incorporate both our custom Boto along with LUCI's per-build Boto file
in the same gsutil invocation. And when the context manager exits, the
environment should revert back to its original state.

Chromium incorporates this method in crrev.com/c/3662023. See it take
effect during the "gclient runhooks" step in this led build:
https://ci.chromium.org/swarming/task/5b0c5174e70cb010?server=chromium-swarm.appspot.com

Bug: 1327371
Change-Id: I75cfdf16d0ec023bf81ea57991dde996694a46c6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3661949
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
3 years ago
recipe-roller 4e6aa2530f Roll recipe dependencies (nontrivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8813625169557805905

Please review the expectation changes, and LGTM+CQ.

recipe_engine:
a58dd35fb7
  a58dd35 (tikuta@chromium.org)
      file: use vpython3 to run scripts in resources dir

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

R=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I116fa1e5faafade1c85a4cca7077b926af788a8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3657049
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Auto-Submit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
3 years ago