tree 8cee313a1afa83200d47ad8cc2a96003016406c7
parent 0cae0acf33ffc1127a8fefffefb0b9d4947e9893
author recipe-roller <dart-luci-ci-builder@dart-ci.iam.gserviceaccount.com> 1619622237 -0700
committer commit-bot@chromium.org <commit-bot@chromium.org> 1619622813 +0000

Roll recipe dependencies (trivial).

This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (build, chromiumos_config, depot_tools, infra, recipe_engine) into this repository.

build:
https://chromium.googlesource.com/chromium/tools/build.git/+log/d73a8d1424c43ec19a0af538da5728ab3761dc36~..eaeb7af1eeaf9665484b67cdc952926427812e57
  d73a8d1 (gbeaty@chromium.org)
      Require the builder config/ID to be passed in to chromium_tests.
  b4e62af (kousikk@google.com)
      Roll the prototype version to 0.28.0 and staging back to 0.27.0
  21b9ce2 (steveroe@google.com)
      [fuchsia] Add arm64 architecture to Fuchsia arm64 FYI bots.
  1e1c623 (apolito@google.com)
      add nokeycheck to git push
  eaeb7af (dsrbecky@google.com)
      ART: Use named cache for incremental builds.

chromiumos_config:
https://chromium.googlesource.com/chromiumos/config.git/+log/284527c9659c14246eb96699c28238ebb94e7bb8~..f3555f54ed4314685856798132b186128775ccd0
  284527c (smcallis@google.com)
      boxster: add utility functions to create platform information
  c4705c3 (smcallis@google.com)
      config: define BuildMetadata proto
  566983b (andrewlamb@chromium.org)
      Update comments on source_test_plan.proto.
  26a168f (shapiroc@chromium.org)
      Revert "Decode bcs:// URLs to actual gs:// storage path."
  9473537 (smcallis@google.com)
      boxster: add utility functions for new hardware features
  0ebdfd3 (vpalatin@chromium.org)
      Add model field to LTE
  bf6fce2 (yueherngl@google.com)
      Replace GSC with GSC_H1B and GSC_H1D
  d408556 (shapiroc@chromium.org)
      Add designconfig storage size
  176e1be (shapiroc@chromium.org)
      Define basic test case metadata
  d5f7f98 (shapiroc@chromium.org)
      Define initial test suite API
  f3555f5 (andrewlamb@chromium.org)
      Add DutCriterion message.

depot_tools:
https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ae1b2b19ef3118866b3237ef9f0c85fba855118c~..2176ebaae00c8968d2b8e5cf234482911ddc7bc5
  ae1b2b1 (gavinmak@google.com)
      Add gerrit_plugins gclient config
  2176eba (bryner@google.com)
      Upgrade cpython3 to the latest 3.8.9 build.

infra:
https://chromium.googlesource.com/infra/infra.git/+log/685c69f93ba8383ecc72373cf7053f759b3a2cd7~..c5f8ce6b554e3044db27f33558295b33ed0ef119
  685c69f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from e501cda3ffdb to c53312e7b9f7 (1 revision)
  de84681 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from d5f7f983edbe to 2f55ca1050b3 (1 rev...
  b991902 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 827bbc03ea79 to 9fd6d68d1665 (...
  607c6ec (jperaza@chromium.org)
      [Predator] ignore headers in GET response
  a2afcef (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from c53312e7b9f7 to 6094b88f0218 (1 revision)
  bb5aa8c (anushruth@chromium.org)
      Revert "[UFS]: Labstation model/board check fix"
  1ebb9d7 (jperaza@chromium.org)
      [Predator] Determine chromium source path from java package
  7b34d6c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 6094b88f0218 to 13ef5097084d (1 revision)
  0ed944e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 13ef5097084d to 0f86f91cf1cd (4 revisions)
  c1598dd (eshwarn@google.com)
      UFS: fix filter mapping for asset
  890fb9c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 0f86f91cf1cd to 4ac3d219beab (1 revision)
  67bbf4a (guocb@chromium.org)
      caching-backend: cache CQ builds for shorter time
  e8de777 (guocb@chromium.org)
      TLS: FakeOmaha: a logging improvement
  b6a0c99 (smut@google.com)
      [cr-buildbucket] Generate update token only when creating Swarm...
  529e564 (gregorynisbet@google.com)
      [karte] Add Dockerfile for karteserver
  b82451a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 4ac3d219beab to 8cd6afb5cbef (1 revision)
  b87f126 (eshwarn@google.com)
      UFS: gTransit hive regex to include labstation
  13e7cbc (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 8cd6afb5cbef to 0970d862b5ef (1 revision)
  ebddd4d (cjacomet@google.com)
      [bug-fix] Added instruction for finding repo to edit config for...
  a3a1f3a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 0970d862b5ef to 14613b856182 (2 revisions)
  d030d18 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 14613b856182 to 2f0a32ce3a8d (1 revision)
  cb15d87 (vadimsh@chromium.org)
      [build] Stop building CIPD's service-backend-old.
  5c80fa5 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 2f0a32ce3a8d to 5b4f3c412518 (1 revision)
  c555cbd (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 5b4f3c412518 to b94cc0e620fa (2 revisions)
  d91d1cd (tikuta@chromium.org)
      3pp: add golangci-lint
  8c9e3b4 (bryner@google.com)
      Force the system python2 for running python_mod_gen.py on Mac
  d1a4113 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from b94cc0e620fa to 23702aa6ac33 (3 revisions)
  2844a20 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 23702aa6ac33 to fb10696b6b92 (1 revision)
  7c21dae (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from fb10696b6b92 to 0f556d1fdc88 (1 revision)
  e6f435a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 3a946496b2e9 to fc6e70cdb6bb (1 revision)
  a09f7eb (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 2f55ca1050b3 to f3555f54ed43 (1 rev...
  27dcfe0 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 9fd6d68d1665 to 6d2c0182229a (...
  bfeb9b6 (tikuta@chromium.org)
      infra/config: add luci-go-lint builder for tricium analysis
  a03f468 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 0f556d1fdc88 to 67e6934a1d36 (1 revision)
  844f926 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from f3555f54ed43 to 002f631a6482 (1 rev...
  098f746 (tikuta@chromium.org)
      luci_go: fix cwd for golangci-lint recipe
  71e77b6 (bryner@google.com)
      Support passing the platforms to build explicitly for wheel bui...
  027c024 (tikuta@chromium.org)
      infra/config: enable luci-go-lint as experimental CQ builder
  eb2c1f6 (tikuta@chromium.org)
      luci_go: fix package path and cwd for golangci-lint
  c5f8ce6 (tikuta@chromium.org)
      luci_go: use package path instead of file path

recipe_engine:
https://chromium.googlesource.com/infra/luci/recipes-py.git/+log/75cf2faf5db4d90a5485d5da05713faa3922383a~..a80d44a95d495fe9e6deb16375dd6be4242334ed
  75cf2fa (iannucci@chromium.org)
      [deps] Add deps subcommand.
  a80d44a (iannucci@chromium.org)
      [deps] Move dependant recipe discovery to be an option.

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

TBR=athom@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I21822148444c730ce21958d30dd07622383f12ac
Reviewed-on: https://dart-review.googlesource.com/c/recipes/+/197203
Reviewed-by: Dart CI <dart-luci-ci-builder@dart-ci.iam.gserviceaccount.com>
Commit-Queue: Dart CI <dart-luci-ci-builder@dart-ci.iam.gserviceaccount.com>
