tree 2b669b49d2a4b512ec63c3389e9c9eb9b4776fcc
parent 8fb973d3aad943a635c5f2fba61bc5d526535006
author recipe-roller <dart-luci-ci-builder@dart-ci.iam.gserviceaccount.com> 1621302672 -0700
committer commit-bot@chromium.org <commit-bot@chromium.org> 1621303172 +0000

Roll recipe dependencies (trivial).

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

build:
https://chromium.googlesource.com/chromium/tools/build.git/+log/d884cce52d0b178935de3327977ad411005229a3~..9816a2b8c61b0769e853197aca39243e281790d5
  d884cce (dsrbecky@google.com)
      ART: Refactor testrunner commands
  be617e3 (pasthana@google.com)
      Fix specially handled path prefix
  8f88743 (zhaoyangli@chromium.org)
      [mac_toolchain] Roll mac_toolchain version for test configs usi...
  9816a2b (ehmaldonado@google.com)
      codesearch: Remove out directory if last build failed to compile.

infra:
https://chromium.googlesource.com/infra/infra.git/+log/d6eec6de74fa7a8753f961a638800ddd9f261a51~..fa1081655895474b9889391d13b7f0a786db72b7
  d6eec6d (tikuta@chromium.org)
      remove bootstrap/cipd/doc/infra/tools/protoc
  b21cc46 (weiweilin@google.com)
      Revert "[gae] Temporary disable building Milo tarball."
  ad4a08b (dberris@google.com)
      pinpoint: Add an artifact manifest
  808e8d9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 280d8c6a76e9 to 75f6f0efbffd (1 revision)
  d6bb41e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 75f6f0efbffd to ace37639591a (1 revision)
  297fb15 (bryner@google.com)
      Force sed to be located from PATH.
  2af3719 (bryner@google.com)
      Add support for mac-arm64 for nodejs.
  70f64bc (bryner@google.com)
      Mark protoc as unsupported on mac-arm64.
  fab81c0 (bryner@google.com)
      Mark go 1.15 as unsupported on Mac ARM64.
  bbac8f1 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from ace37639591a to 9254a8940d6a (1 revision)
  61ee883 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 9254a8940d6a to 9172b5b31168 (1 revision)
  953c02e (xixuan@google.com)
      UFS: add logging of to-be-updated deployment record
  28a4161 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 9172b5b31168 to d7902abaeaad (1 revision)
  74ec3ec (jackneus@google.com)
      Improve flexibility of repo test harness
  c9bd4c6 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 367efde90172 to 34a71a8e198a (1 rev...
  db67578 (nodir@chromium.org)
      [dirmd] Return errors
  3efbe51 (dtu@google.com)
      [issue wizard] Update fallback template to match current user r...
  0f7b0e5 (nodir@chromium.org)
      [dirmd] Move ineritance tests
  31cc71e (gatong@chromium.org)
      Infra: Moving SQL directory for statsui
  e82c0ba (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 34a71a8e198a to 53c963f64b3f (1 rev...
  44006ed (guocb@chromium.org)
      TLW: ExposePortToDut: randomly select a proxy server
  01ed132 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 3be5e0d0ea8b to 317e9fd0f16f (...
  2b53552 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from d7902abaeaad to 3ce04a534a19 (1 revision)
  e696d38 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 317e9fd0f16f to 81861d18181a (...
  5327cdc (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 3ce04a534a19 to 89f93167ba14 (1 revision)
  7ef695e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 89f93167ba14 to e61f3935f7f4 (1 revision)
  33ec6bd (gregorynisbet@google.com)
      [karte] Implement Action datastore functions
  9646f5c (gregorynisbet@google.com)
      [karte] Add path to vpython in makefile
  bd4957e (gregorynisbet@google.com)
      [crosgrep] crosgrep CLI owners file
  09cdd9c (xianuowang@chromium.org)
      SSW: Split DUT harness from bot harness logic
  c36f6c7 (tandrii@google.com)
      [protos][python] compile LUCI Scheduler config.
  205a181 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 59111464c505 to bf1867e975fd (1 revision)
  4022c00 (bryner@google.com)
      Fix ncurses(w) build on Mac.
  c366fa3 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from e61f3935f7f4 to b4aba94a4773 (1 revision)
  0caa5d8 (fancl@chromium.org)
      pinpoint: Improve UX of downloading files
  f71fd2e (fancl@chromium.org)
      pinpoint: Remove deprecated io/ioutil
  0f720e1 (heiserya@google.com)
      Pinpoint CLI: Clean up experiment_telemetry concurrency
  558b840 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from b4aba94a4773 to 07350e25f842 (1 revision)
  cc1280d (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 07350e25f842 to fc668bd89020 (1 revision)
  fa10816 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from fc668bd89020 to 7fd6c42113ef (1 revision)

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

TBR=whesse@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I12f0ba83bd1f376e82cb0c6693105c557b810eab
Reviewed-on: https://dart-review.googlesource.com/c/recipes/+/200340
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>
