tree a4301985408fecd11aa5825e9183b7a6eabdae9d
parent ab5b29353729d24242e4fbe1798bbe6d389f7a68
author recipe-roller <dart-luci-ci-builder@dart-ci.iam.gserviceaccount.com> 1631445972 -0700
committer commit-bot@chromium.org <commit-bot@chromium.org> 1631452078 +0000

Roll recipe dependencies (trivial).

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

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

build:
https://chromium.googlesource.com/chromium/tools/build.git/+log/9034390ef5ab6d3d26121dcc2443a1ae6e8d9dc8~..25780717a2a03180c2e98b168ce5521769bfc3cc
  9034390 (gbeaty@chromium.org)
      Replace __getattr__ on BuilderConfig with descriptors.
  63283c0 (yyanagisawa@chromium.org)
      Remove assert from the main logic to avoid crash on timeout.
  a55579f (liviurau@chromium.org)
      Revert "Remove assert from the main logic to avoid crash on tim...
  d973e3a (bpastene@chromium.org)
      Remove unused resultdb experiments in recipe tests.
  c519e2a (ynovikov@chromium.org)
      Add ANGLE standalone experimental Mac Intel and AMD bots
  042f4a5 (yyanagisawa@chromium.org)
      Reland "Remove assert from the main logic to avoid crash on tim...
  4d19d8c (tikuta@chromium.org)
      swarming/staging: remove isolate server specification
  9d5cb80 (tikuta@chromium.org)
      recipes: remove isolate server config usage
  c6ad93a (tikuta@chromium.org)
      chromium_swarming: remove isolate server from custom trigger
  bccdc5b (jmadill@chromium.org)
      Revert "Reland "Remove assert from the main logic to avoid cras...
  deb77cd (kimstephanie@google.com)
      Orchestrator launch sub_build for compilator steps
  44f3869 (gbeaty@chromium.org)
      Set PYTHON_VERSION_COMPATIBILITY for recipes and modules.
  8440389 (gbeaty@chromium.org)
      Make schedule_suites_retry tolerant to exception repr changes.
  4513740 (linxinan@google.com)
      Report Skylab tast result to resultDB
  5203979 (gbeaty@chromium.org)
      Remove stray " in schedule_suites_retry.py.
  2578071 (bsheedy@chromium.org)
      Add Dawn experimental Mac builder

fuchsia:
https://fuchsia.googlesource.com/infra/recipes.git/+log/b6e223108f76c329bb4c118bf962fe9dfd62c71f~..f9847d1e3b828407b732e5567185ecc31ae99277
  b6e2231 (phosek@google.com)
      [clang_ml_training] Rename the revision property
  1513295 (atyfto@google.com)
      [ensure_tool] Add module for ensuring tools from resource files
  f9847d1 (atyfto@google.com)
      [ensure_tool] Migrate modules to tool_manifest

infra:
https://chromium.googlesource.com/infra/infra.git/+log/0457ead6380eb8a89c1453407fe5660ceda3f2aa~..2269fe98b721da51bf477ace523518724d1d3aa6
  0457ead (tandrii@google.com)
      Roll luci-go from 461a36caf948 to 2b9469d94fa9 (3 revisions)
  bdd0328 (gregorynisbet@google.com)
      [karte] Fix entrypoint command.
  161a68b (bryner@google.com)
      Revert to libffi-3.2.1 in dockcross images for compatibility.
  fdef859 (gbeaty@chromium.org)
      Add gbeaty to recipes OWNERS.
  5390889 (meiring@google.com)
      [Weetbix] Schema change to IsActive column.
  a88e60d (gbeaty@chromium.org)
      Temporarily remove iannucci from recipes OWNERS files.
  77b50e4 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 2b9469d94fa9 to 846d5d7c3b59 (4 revisions)
  34ba3f4 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 846d5d7c3b59 to 3a20488094da (2 revisions)
  8a308c1 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from c10af8b5116a to 544262fd91b4 (...
  b995d4c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 3a20488094da to 2d82b29aa91e (1 revision)
  2d0eb2d (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 2d82b29aa91e to 5d15c0846a6d (1 revision)
  70b6ef8 (vkjoshi@google.com)
      [recovery]: Check if host is reachable via SSH
  aa2ec84 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 544262fd91b4 to 26afe949925d (...
  47dc25e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 5d15c0846a6d to 4771eee123e9 (1 revision)
  de178b1 (nqmtuan@google.com)
      [ChromiumStatus] Support POST methods
  652291a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 4771eee123e9 to 7fbe4c185b32 (1 revision)
  995f4ce (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 6ac98ccd93c5 to 107265ca3219 (1 revision)
  148ecae (machenbach@chromium.org)
      [V8] Update lkgr configs after builder/tester split
  4ca7983 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 7fbe4c185b32 to 420a95e7a711 (1 revision)
  df991cc (gregorynisbet@google.com)
      [karte] Add logging to karte.
  ff50898 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 420a95e7a711 to f95334336105 (1 revision)
  c9094ee (yunzhiyu@google.com)
      recovery: Added parallel testing for function: TestVerifyPlanAc...
  a3aa263 (bryner@google.com)
      Enable new dockcross images, and add the missing libffi patch.
  bff4d23 (vkjoshi@google.com)
      [recovery]: Verifier for Servo USB
  db1e4e0 (anushruth@chromium.org)
      [WIC] Add ability to recursively trigger offline builds
  2340695 (anushruth@chromium.org)
      Update windows ADK and WinPE to latest
  a243703 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 26afe949925d to 8417b70a3dfb (...
  b072749 (gregorynisbet@google.com)
      [karte] Add swtich command to GNUMakefile
  0e05a0e (gregorynisbet@google.com)
      [karte] Add more logging to createAction.
  085d85a (justinsuen@google.com)
      UFS: implement HwidData datastore operations
  dd3bf06 (gregorynisbet@google.com)
      [karte] Use grpc statuses in error messages.
  e841fc9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from f95334336105 to 3cbc5dcd5a12 (1 revision)
  15f9a90 (otabek@google.com)
      labpack: Add field to provide failure reason
  37e0407 (jackneus@google.com)
      Delete cmd/tclint
  2269fe9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 3cbc5dcd5a12 to 28fb13c8d319 (1 revision)

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

R=athom@google.com

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