tree 78d1367a8fd6f36377bb3fa4e870391982b18604
parent 1d4b4d5364a0997290ea66ae205e64c7e75085ce
author recipe-roller <dart-luci-ci-builder@dart-ci.iam.gserviceaccount.com> 1631931660 -0700
committer commit-bot@chromium.org <commit-bot@chromium.org> 1632124182 +0000

Roll recipe dependencies (nontrivial).

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

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

Please review the expectation changes, and LGTM+CQ.

build:
https://chromium.googlesource.com/chromium/tools/build.git/+log/5ae9328a01568ccdf7df7537807b805596b72f92~..c87cfcc7d674689c676000efa1d99cd3811f2c3b
  5ae9328 (preethim@google.com)
      Remove win10-blink-rel from recipes
  c2d6fe7 (gbeaty@chromium.org)
      Remove reliance of BuilderConfig implementation on TrySpec.
  5eaa7cc (lijiawei@chromium.org)
      Add gclient config for Cast Shell Linux ARM64
  8f8e1ed (yyanagisawa@chromium.org)
      Reland "Reland "Remove assert from the main logic to avoid cras...
  859800f (liviurau@chromium.org)
      Wrap e2e tests with rdb (resultdb)
  03493cb (thestig@chromium.org)
      Use inclusive terms in PDFium recipes.
  3ec9dd2 (gbeaty@chromium.org)
      Remove the TryDatabase from the builder_config.
  82fcbdd (bpastene@chromium.org)
      Remove m92 from the led recipes tester.
  279b289 (guterman@google.com)
      Add marshmallow arm64 rts builder
  5927d19 (bpastene@chromium.org)
      Incorporate suffix into archived web_test results in RDB experi...
  f95c618 (gbeaty@chromium.org)
      Remove the ability to set execution_mode in TrySpec.
  a84a04f (tikuta@chromium.org)
      chromium_tests_builder_config: remove isolate_server property
  a3d7e4e (gbeaty@chromium.org)
      Remove uses of active_result in chromium_tests/steps.py.
  bbe2be8 (tikuta@chromium.org)
      isolate: remove download_isolate function
  ff533b9 (liviurau@chromium.org)
      Wrap Interaction test with rdb (resultdb)
  11bec8b (jeffyoon@google.com)
      Commit footer and coordinating method for endorsing flakes
  43f8283 (gbeaty@chromium.org)
      Remove the bots.json log from the report builders step.
  f7dd4ab (jeffyoon@google.com)
      max_test_targets property for flakiness recipe module
  da730d2 (jeffyoon@google.com)
      Add zhaoyangli@chromium.org to OWNERS file for flakiness module
  5eed80d (ukai@google.com)
      update reclient clang-scan-deps: 0.38.0.c3845b1 -> 0.40.0.40ff5a5
  82eeb0c (bpastene@chromium.org)
      Add a direct link to the 'Test Results' tab in log failure snip...
  1a5eba1 (gbeaty@chromium.org)
      Remove the TryMirrors from the builder_config.
  9f16134 (gbeaty@chromium.org)
      Add experiment to enable triggering children with GitilesTrigger.
  9ea95e3 (jeffyoon@google.com)
      Add TestResults object in flakiness and refactor
  f237de0 (bpastene@chromium.org)
      Remove last remaining references to resultdb experiments in rec...
  344e2de (gbeaty@chromium.org)
      Enable strict coverage for chromium_tests_builder_config.
  fae82ee (msavigny@google.com)
      [reclient] Update Staging Version of Reclient.
  3b6f849 (gbeaty@chromium.org)
      Allow for specifying the commit to use with the gitiles trigger.
  c05ff2c (rmhasan@google.com)
      WebView: Add Android 10 FYI builder to run tests
  9cedad6 (gbeaty@chromium.org)
      Remove chromium/mini_orchestrator recipe.
  b2f1aeb (gbeaty@chromium.org)
      Fix python3 syntax warning.
  4f21a2d (gbeaty@chromium.org)
      Mark builder_group as py3-compatible.
  3e1b937 (yyanagisawa@chromium.org)
      Update Goma owners.
  efcc97e (bpastene@chromium.org)
      Add a simple implementation of Tests.pass_fail_counts() for RDB...
  5bb36fa (linxinan@google.com)
      Fetch skylab test result from RDB
  691f499 (zhaoyangli@chromium.org)
      [flakiness] Add |should_identify_new_tests| to flakiness recipe...
  c87cfcc (wnwen@chromium.org)
      Add 'latest' tag for sdk_packager.py

chromiumos_config:
https://chromium.googlesource.com/chromiumos/config.git/+log/6dc4d76e0c5ff5d0acd91d0b73a8c56813733e17~..ac924f1bec24a606693cb0293f1cf83130865f1e
  6dc4d76 (engeg@google.com)
      prototype: add signing configuration proto
  c8c4306 (smcallis@google.com)
      dut-attributes: Move config into public config repo.
  4809fd1 (engeg@google.com)
      release_target: varient -> variant
  1cf2590 (sheng-liang.pan@quanta.corp-partner.google.com)
      partner: add MELFAS to touch vendor category
  fd0493e (sugnan.prabhu.s@intel.com)
      Update to support intel wifi 6e and DSM config
  cf0db3a (smcallis@google.com)
      datastore: Fix path to dutattributes payload.
  0b2be67 (sugnan.prabhu.s@intel.com)
      Update deny list entry size to uint16
  8e70991 (otabek@google.com)
      proto-tls: Add option to prevent reboot during provision the OS
  7e619b5 (yamaguchi@chromium.org)
      Add HDR displaypanel property.
  ca8e640 (justinsuen@google.com)
      boxster: save entities to os namespace
  6c8e29e (yamaguchi@chromium.org)
      Add feature for DisplayPort signal converter.
  94d901f (judyhsiao@chromium.org)
      Add Amplifier feature "BootTimeCalibration"
  6228a01 (engeg@google.com)
      release_target: nest variants and add criticality
  ac924f1 (andrewlamb@chromium.org)
      Use Topology in _extract_fw_config_value.

chromiumos_proto:
https://chromium.googlesource.com/chromiumos/infra/proto.git/+log/8c57bcb3fd903f84a637520094ef1454bd09877e~..dc6b1b97eb618dc0ae1bf73dcfaeaa16cd3a9da9
  8c57bcb (jackneus@google.com)
      Add FACTORY_IMAGE_ZIP artifact type
  9c391e7 (navil@google.com)
      request: Add test_args field to test_platform request.
  dc6b1b9 (engeg@google.com)
      phosphorus: runtest add image_storage_server

depot_tools:
https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e1482c55484acb20a6383bd9e458a0e1574d0a10~..4e0cca2a31d3c0aa933812b98ab773d6430e73c6
  e1482c5 (sokcevic@google.com)
      Refresh remote HEAD if matches legacy default
  0be20a4 (sokcevic@google.com)
      Trigger recipe roller
  8f09549 (yuanjunh@google.com)
      [python3] Solve soft errors in the recipes of git module
  c0201e7 (yyanagisawa@chromium.org)
      Roll out new goma client binary VERSION=230
  031a6f4 (bryner@google.com)
      Don't verify python3 wheels on linux-armv6.
  4f934ef (sokcevic@google.com)
      [lucicfg] Update v1.27.2 -> v1.28.0.
  e5d0a56 (battre@chromium.org)
      Warn user in case they use commit messages with "Bug=" instead...
  dacfbcb (heiserya@google.com)
      Update Pinpoint CLI to include https://chromium-review.googleso...
  f80edc2 (gbeaty@chromium.org)
      Use actual ref for commit position footer in test data when pro...
  fa474e8 (sokcevic@google.com)
      Refactor gsutil and fix concurrecny issue on MacOS
  4e0cca2 (yyanagisawa@chromium.org)
      Update GOMA_OWNERS

fuchsia:
https://fuchsia.googlesource.com/infra/recipes.git/+log/347bfd422db544bf2a392da45ad4df87f1b9bb06~..3732a209601394b589abf0bc446c624c84cc120d
  347bfd4 (atyfto@google.com)
      [ensure_tool] Convert more modules to use tool manifests
  9ef5ea9 (haowei@google.com)
      [tricium] Turn off unsupported clang-format flag
  fada181 (theosiu@google.com)
      Pin instance-id for dartsdk to fix dartdoc version
  292aaf2 (mohrr@google.com)
      [auto_roller] Handle branch redirection
  624733c (atyfto@google.com)
      [ensure_tool] Convert remaining modules to tool_manifest style
  627a2fe (atyfto@google.com)
      [tar] Switch floating version to pin
  97e75c6 (atyfto@google.com)
      [build] Fix codesize CLI invocation
  d12a4de (atyfto@google.com)
      [tools] Use -trimpath and -ldflags=-buildid= for go build
  616cd70 (olivernewman@google.com)
      [release] Stop generating expectations for release_version.py
  5f84ab0 (olivernewman@google.com)
      [swarming] Remove task_result wrappers to set use_cas
  b090630 (olivernewman@google.com)
      [buildbucket_util] Fix broken test on Mac
  5b54553 (atyfto@google.com)
      [recipe_tools_roller] Add tool_manifest roller
  110403a (olivernewman@google.com)
      [python3] Mark more modules and recipes as py3-compatible
  ed99936 (olivernewman@google.com)
      Delete unused submodule.proto properties file
  c87101d (mseaborn@google.com)
      [fuchsia] Use vpython for running perfcompare.py
  c40abe6 (atyfto@google.com)
      [recipe_tools_roller] Add tool_manifest option to skip autorolling
  f344cc3 (olivernewman@google.com)
      [upload] Move resultdb logic into testing module
  54eb800 (olivernewman@google.com)
      [python3] Mark more recipes and modules as py3-compatible
  c13f992 (olivernewman@google.com)
      [upload] Move api.upload.cipd_package() into separate module
  bb43d1e (atyfto@google.com)
      [publish] Add switch_channel option
  ccfd349 (olivernewman@google.com)
      [upload] Move catapult function to catapult module
  8cc5160 (olivernewman@google.com)
      [gsutil] Delete unused normalize() method
  caa3fab (olivernewman@google.com)
      [upload] Delete upload recipe module
  c8a7f7e (mohrr@google.com)
      [utils] Move exception formatter from swarming_retry
  8bbec4d (atyfto@google.com)
      [ensure_tool] Use tool_metadata.proto instead of namedtuple
  d0d768d (atyfto@google.com)
      [cherry_pick] Require Code-Review approval
  00cc56a (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  920f705 (ihuh@google.com)
      [proto][testing_requests] Add option to enable using ffx in infra.
  3d0f5f3 (ihuh@google.com)
      [archive] Fix target paths in archive tree to be in a consisten...
  e703524 (ihuh@google.com)
      [coverage] Upload covargs inputs for debugging.
  3732a20 (mcgrathr@google.com)
      [gcc_toolchain] Pass --enable-textrel-check=error to binutils

infra:
https://chromium.googlesource.com/infra/infra.git/+log/96804d557defe306c62d59e853f9a0d7a9d79a07~..8f173474e80ac4db46223cc1c29132161bcf459d
  96804d5 (gregorynisbet@google.com)
      [recovery] Add Metrics API.
  cca074c (gregorynisbet@google.com)
      [karte] Extend metrics client with recoverylib stubs
  33d9d52 (gregorynisbet@google.com)
      [karte] Add local curl tester for Karte
  786a90c (otabek@google.com)
      labpack: Set failure reason
  cad9ce0 (bryner@google.com)
      Fix dict iteration to work with py3.
  a0fd161 (bryner@google.com)
      Parallelize building tests for protobuf-cpp. This step is quite...
  13ed090 (bryner@google.com)
      Bump patch_version for cffi wheel.
  fa865d2 (bryner@google.com)
      Also copy the vcruntime*.dll files into the virtualenv.
  27041c6 (mwarton@google.com)
      Weetbix: Add basic SPA UI
  bc4f825 (tikuta@chromium.org)
      go: update to 1.16.8
  78ad1d6 (orodley@chromium.org)
      Enable test result history for infra builders.
  bb5926c (nqmtuan@google.com)
      [ChromiumStatus] Add state to OAuth request
  2a13136 (bryner@google.com)
      Run dockerbuild using python3 in the wheel builder recipe.
  2f976bd (gbeaty@chromium.org)
      Set skip_analysis_reasons in the chromium_bootstrap properties.
  cbaf4f5 (otabek@google.com)
      labpack: Attept to mitigare error when close the step
  8f604c6 (otabek@google.com)
      recovery: Attempt to fix failing step of luciexe
  55547cb (gregorynisbet@google.com)
      [karte] Add defaultPageSize for listactions command.
  b8682d8 (gregorynisbet@google.com)
      [karte] Remove hello-world route.
  158e266 (gregorynisbet@google.com)
      [karte] Replace blank observation filter with filter from request.
  55d14ee (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 2a23f0c11ed3 to 2c5e374a25d0 (7 rev...
  15aff7b (justinsuen@google.com)
      UFS: update DutAttribute tests
  c7accb8 (zhaoyangli@chromium.org)
      [code coverage] Fix hardcoded "chromium" in link to history rep...
  99d742b (gregorynisbet@google.com)
      [karte] Remove TODO to reject defaulted batch sizes.
  9f98497 (gregorynisbet@google.com)
      [karte] Remove validation comments from low-level conversion ro...
  165a310 (andrewjc@google.com)
      [ChOps Dash] Upgrade to safer luci/gae/services/datastore
  63cb7c9 (apolito@google.com)
      let update_submodules_modules checkout internal source if prope...
  69b36c4 (tikuta@chromium.org)
      update to go 1.17.1
  b412906 (tikuta@chromium.org)
      Revert "update to go 1.17.1"
  4b67914 (bryner@google.com)
      Use new cffi wheel version to fix libffi error building cpython.
  4bf15e8 (bryner@google.com)
      Update virtualenv package version.
  4a0f3da (tandrii@google.com)
      [build] remove tclint CIPD package.
  c076de1 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 107265ca3219 to 880a10d5c189 (1 revision)
  fafb5ce (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 28fb13c8d319 to cec1f4ce33e3 (13 revisions)
  1d2aafe (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from cec1f4ce33e3 to 0e14db1f8dfa (1 revision)
  9736094 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 2c5e374a25d0 to 96d4007309ca (5 rev...
  38c33c1 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 8417b70a3dfb to b764af97a1c9 (...
  ca523ae (navil@google.com)
      generator: Add additional test args to the execution request.
  6607653 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from b764af97a1c9 to c510f7d5a62b (...
  e1e4056 (navil@google.com)
      Revert "generator: Add additional test args to the execution re...
  9ee1afb (andrewlamb@chromium.org)
      CTP2: Add skeleton luciexe.
  63074a6 (gregorynisbet@google.com)
      [labpack] Remove nonexistent target from labpack makefile
  7aa2820 (fancl@chromium.org)
      Enable gevent 1.5.0 on mac-arm64.
  e5d04fa (gregorynisbet@google.com)
      [labpack] Add no_metrics field to steps.proto
  58807df (vkjoshi@google.com)
      [recovery]: Verifier for Servo USB
  1f627ea (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 0e14db1f8dfa to c5f86d7f78e9 (1 revision)
  bfaea8d (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 96d4007309ca to 4809fd1a85a6 (1 rev...
  ac9fe03 (justinsuen@google.com)
      UFS: implement HwidData parsing for v1
  5eb8539 (tandrii@google.com)
      Update Python proto bindings.
  2b32a4d (justinsuen@google.com)
      UFS: move hwid implementation to libs and create interface factory
  0ae6ba7 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 4809fd1a85a6 to d1acc19c25e3 (1 rev...
  9f8e3ef (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from c510f7d5a62b to ebb215002d4d (...
  45c868c (eduardoyap@google.com)
      Add Cr-CP reference for webrtc/src.
  6bc5945 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from d1acc19c25e3 to 43ad11c0a2b9 (1 rev...
  9723d8e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from ebb215002d4d to 3972bbeb5893 (...
  7e521b7 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 43ad11c0a2b9 to 7097991ee6a4 (1 rev...
  2f886d9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 3972bbeb5893 to dc6b1b97eb61 (...
  353d332 (juahurta@google.com)
      upload_debug_symbols: starter boiler plate and gs package fetch
  b7b1589 (vadimsh@chromium.org)
      [buildbucket] Do not use HTTP redirect in "/".
  79b3b7b (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from dc6b1b97eb61 to 897159c4add6 (...
  00a7c18 (gregorynisbet@google.com)
      [satlab] Move flagmap to utils.go
  42f3a5d (juahurta@google.com)
      upload_debug_symbols: unzip fetched .tgz file
  b09870f (tandrii@google.com)
      Revert "Update Python proto bindings."
  c6bc2c4 (xixuan@google.com)
      UFS: add mac address as index of vm
  96c3822 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 897159c4add6 to 53fabaa557df (...
  25d1756 (vadimsh@chromium.org)
      [rts] Do not reference 'master' ref of infra.git repo.
  39ba9e6 (vadimsh@chromium.org)
      [go] Update all Go dependencies.
  ede7ac9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 7097991ee6a4 to ad90389f4ad3 (1 rev...
  da1bba4 (bryner@google.com)
      Add explicit vpython verification tags which include mac-arm64.
  36aaeb2 (bryner@google.com)
      Add a couple of additional platforms for gevent.
  bb740c9 (tandrii@google.com)
      Revert "[config] Enable BBAgent GetBuild mode by default"
  dfefba9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from ad90389f4ad3 to ea49182ff267 (1 rev...
  385694f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 53fabaa557df to 145a340e935e (...
  4ea0ffb (meiring@google.com)
      [Weetbix] Build UI as part of continuous builders.
  881d719 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from ac999b9cf316 to db191320775b (3 revisions)
  ec3c366 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from db191320775b to 3aee2f1ca666 (1 revision)
  1a10def (mwarton@google.com)
      Weetbix: Add tests for the UI
  2d9e4f1 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 880a10d5c189 to 55feafd811f7 (1 revision)
  880c0fb (otabek@google.com)
      mallet: Add option to trigger deploy task
  58f348a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 3aee2f1ca666 to 4f167fa49498 (1 revision)
  0b0e100 (otabek@google.com)
      recovery: Add execs to set rpm_state
  2f8dc02 (otabek@google.com)
      provision-cli: Call provision service and call provision.
  63f1b31 (meiring@google.com)
      [Weetbix] Fix construction of monorail MakeIssue RPCs.
  5f1080a (nqmtuan@google.com)
      [ChromiumStatus] Update README file for progress
  38bd66b (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 55feafd811f7 to 3a42be653fd3 (1 revision)
  da8fc5f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 4f167fa49498 to cf3a72bad02d (1 revision)
  dc21267 (chanli@chromium.org)
      [Weetnix] rename BuildbucketClient to Client.
  af50744 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from ea49182ff267 to 1cf259035016 (1 rev...
  1c3563c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 3a42be653fd3 to f40c8f92b4c8 (1 revision)
  7b017c9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 1cf259035016 to 295a81a624a0 (1 rev...
  4aca731 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 295a81a624a0 to 1179347fbc2d (1 rev...
  4f4bc6e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 145a340e935e to 60bc09b112a0 (...
  406af11 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 1179347fbc2d to 6a1386a405a6 (1 rev...
  85f303f (gregorynisbet@google.com)
      [karte] Add scripts for testing local and dev karte instances
  16e960a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from cf3a72bad02d to e5c9fa7005a1 (1 revision)
  9d29ef5 (kimstephanie@google.com)
      compilator_watcher should update last step
  6d398a7 (pasthana@google.com)
      Change feature coverage queue from push to pull.
  05b8640 (sokcevic@google.com)
      Switch to main for console view
  46a993e (engeg@google.com)
      autotest wrapper: add image_storage_server parameter
  a2b95f3 (fancl@chromium.org)
      Add pandas==1.3.2
  4f98d1e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from e5c9fa7005a1 to bcfdf0380e02 (1 revision)
  2e0f646 (otabek@google.com)
      recovery: Add update HWID for inventory
  626e26a (navil@google.com)
      Reland "generator: Add additional test args to the execution re...
  4e07e3c (juahurta@google.com)
      upload_debug_symbols: Unpack the tarball and save only the debu...
  4cd5b25 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 6a1386a405a6 to fd0493efe68e (1 rev...
  12bbe82 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from bcfdf0380e02 to 62d4e67839d1 (1 revision)
  9c36e2b (justinsuen@google.com)
      UFS: update bindings
  ac4c95a (justinsuen@google.com)
      UFS: add servo component field to UFS and Peripherals protos
  458d49a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from fd0493efe68e to 44e83ebcd603 (1 rev...
  a039454 (otabek@google.com)
      recovery: Update serial_number in inventory
  9dd9eac (pasthana@google.com)
      Change coverage backend module scaling from basic to manual
  637381e (otabek@google.com)
      recovery: Add base deploy plan
  eb18d90 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 62d4e67839d1 to df281b93291f (1 revision)
  7e9c921 (gregorynisbet@google.com)
      [labpack] Create but do not use Karte client.
  85352fd (otabek@google.com)
      recovery: Extend labstation deploy plan
  1b0b6bc (gavinmak@google.com)
      Update depot_tools_metrics schema version
  e3adff4 (pasthana@google.com)
      Do not run feature coverage job for same feature more than once
  fb5dbc2 (chanli@chromium.org)
      Revert "Roll recipe dependencies (trivial)."
  1dd01d6 (bryner@google.com)
      Fix detection of Rosetta under Python 3.
  f76e771 (vadimsh@chromium.org)
      [weetbix] Fix .gcloudignore name.
  a6723bd (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from df281b93291f to a2a2bf87193a (1 revision)
  a6dd1cb (fancl@chromium.org)
      Update tensorflow to 2.6.0 with dependencies
  e82746d (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 44e83ebcd603 to cf0db3ae4f03 (1 rev...
  550fe6a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from a2a2bf87193a to 6d04b397d53a (1 revision)
  816a86e (chanli@chromium.org)
      [Weetbix] Add result-ingestion queue
  6a46dee (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from f40c8f92b4c8 to 5e933baab38f (1 revision)
  c82fd92 (mwarton@google.com)
      Weetbix: add client side routing
  16af6ec (otabek@google.com)
      recovery: Labstation deploy RPM audit
  097b597 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 5e933baab38f to 118e0e51d825 (1 revision)
  c2a992f (meiring@google.com)
      [Weetbix] Expose BuildBucket Pub/Sub Handler.
  2b61c58 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from cf0db3ae4f03 to 0b2be6720b8c (1 rev...
  c0e0ffb (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 118e0e51d825 to 76908b9714f8 (2 revisions)
  9f1b17c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 76908b9714f8 to a1682871d934 (1 revision)
  3de34a0 (juahurta@google.com)
      upload_debug_symbols: generate task configs
  76253c4 (chanli@chromium.org)
      [Weetbix] Query test variants with with results from ResultDB
  f2d762e (oka@chromium.org)
      govanityurls: master -> main
  714be7e (mwarton@google.com)
      Weetbix: let logout route be handled by the server
  37c3814 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 6d04b397d53a to dbb86d24e614 (1 revision)
  c164b15 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from dbb86d24e614 to 7722a2154c29 (1 revision)
  d419649 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from a1682871d934 to 8189e0134c2f (1 revision)
  09033b3 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 8189e0134c2f to 07305a6c0f66 (1 revision)
  908714c (jackneus@google.com)
      manifest-doctor: generalize public buildspec creation
  7e409e6 (fancl@chromium.org)
      Add libclang==1.11.0
  06660f6 (jackneus@google.com)
      public buildspecs: support legacy (manifest-versions) buildspecs
  39c4579 (otabek@google.com)
      recovery: Update API to provision a device
  38d908c (gavinmak@google.com)
      Update depot_tools_metrics README
  8276fd1 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 7722a2154c29 to 1b2521947c91 (1 revision)
  470c90b (sokcevic@google.com)
      Regenerate infra config
  b54feb3 (andrewlamb@chromium.org)
      Add CIPD package definition for test_orchestrator.
  6695f48 (heiserya@google.com)
      Pinpoint CLI - set target based on requested cfg
  d12c0ca (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 0b2be6720b8c to 8e7099102664 (1 rev...
  028cd41 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 1b2521947c91 to a70d53e9a0a2 (1 revision)
  e02f214 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from a70d53e9a0a2 to b7dfb3bfb6bf (1 revision)
  c17b76d (bryner@google.com)
      Enable numpy 1.19.5 on linux-arm64-py3.
  3712bfb (nqmtuan@google.com)
      [ChromiumStatus] Fix graph not loading correctly
  d37a345 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from b7dfb3bfb6bf to adb7a41dfdf7 (1 revision)
  6d36612 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from adb7a41dfdf7 to 5d98769fc5a2 (1 revision)
  a6ea7c9 (otabek@google.com)
      recovery: Add extra attributes map for DUT
  2b6fa46 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 8e7099102664 to 7e619b577487 (1 rev...
  23bcdf9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 07305a6c0f66 to 94f464363797 (1 revision)
  6f3d296 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 94f464363797 to c47161817f5c (1 revision)
  8a305ad (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 60bc09b112a0 to bb27676037ef (...
  362da09 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from bb27676037ef to 7439d8ba8d6e (...
  d3068ea (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 5d98769fc5a2 to b2a8003d96aa (1 revision)
  363afe8 (navil@google.com)
      request: test_runner builds inherit experiments from parents.
  3e06141 (pasthana@google.com)
      Trigger feature coverage worker at startup instead of cronjob
  100c5c9 (pasthana@google.com)
      fix missing module name
  04e12c0 (oka@google.com)
      govanityurls: add /tast
  02b65df (smut@google.com)
      [cr-buildbucket] Enable BBAgent GetBuild mode 10% of the time
  a88303f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 7e619b577487 to ca8e640e5adb (1 rev...
  f601423 (jackneus@google.com)
      project buildspecs: improve logging; improve resiliency
  a36f511 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from b2a8003d96aa to 789b8c29f046 (1 revision)
  8ff9fbd (gregorynisbet@google.com)
      [karte] [action-lifecycle] Add UpdateKarte request.
  c526c3f (vkjoshi@google.com)
      [ufs]: Verify that servo does not have issue with initialize
  ad25348 (vkjoshi@google.com)
      [skylab-lib]: Verify that servo does not have issue with initia...
  cda2ca7 (chanli@chromium.org)
      [Weetbix] Integrate with tq
  3cac005 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 789b8c29f046 to 6b77247ebb7a (1 revision)
  0b47517 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 6b77247ebb7a to ba15d324b584 (1 revision)
  b1d4461 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from ba15d324b584 to 765dfdce6c39 (2 revisions)
  9e7cc29 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 765dfdce6c39 to 649c4b45abfa (1 revision)
  10617f8 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from ca8e640e5adb to 6c8e29e1055f (1 rev...
  aeb37eb (yyanagisawa@chromium.org)
      Update OWNERS
  b4d9c67 (xixuan@google.com)
      UFS: add service config entity to record last checked vm mac ad...
  13b21eb (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 6c8e29e1055f to 94d901f96f0d (1 rev...
  9fe9165 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 649c4b45abfa to 4bc5019ec192 (1 revision)
  a745d73 (gregorynisbet@google.com)
      [karte] Add production auth server for app.yaml
  f144217 (yunzhiyu@google.com)
      recovery: Add 5 new cros-exec functions
  bf4d6d4 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 94d901f96f0d to 6228a0177558 (1 rev...
  48803b7 (tandrii@google.com)
      Reland "Update Python proto bindings."
  05695fd (engeg@google.com)
      atutil: trivial, add image storage server to params
  c25a1c0 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 4bc5019ec192 to 254af4afcf37 (1 revision)
  1749291 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 254af4afcf37 to c741a0fe1970 (1 revision)
  3f3ac62 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from c741a0fe1970 to dcf15bcc4abd (1 revision)
  9ab60b7 (gregorynisbet@google.com)
      [karte] Rename "deploy" target to "upload"
  2e09a26 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from dcf15bcc4abd to 9b134c9f1fff (1 revision)
  cbe5daf (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 6228a0177558 to 05268e383a61 (1 rev...
  4acd260 (vadimsh@chromium.org)
      [cloudbuildhelper] Add `sources` field to the manifest.
  3f5a824 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 7439d8ba8d6e to f290db5e0e92 (...
  4a9ec2c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 05268e383a61 to d8b98949d050 (1 rev...
  b40b7cc (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 9b134c9f1fff to 89e6692f47c8 (1 revision)
  62b2f22 (vadimsh@chromium.org)
      [cipd] Update cloudbuildhelper to v1.1.14.
  9329471 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 89e6692f47c8 to 99ec313c2e4e (1 revision)
  1ae144f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from f290db5e0e92 to de402fad2796 (...
  8f17347 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from d8b98949d050 to ac924f1bec24 (1 rev...

recipe_engine:
https://chromium.googlesource.com/infra/luci/recipes-py.git/+log/776c6d56a8186472ed5c47508ffeb96415ebcba3~..c0b816bb9f67ac38ffa58d5d2a40eea2135e440e
  776c6d5 (yuanjunh@google.com)
      [python3] Format Exception message when running steps
  5a81b2b (gbeaty@chromium.org)
      Add raise_on_failure argument to step API.
  3acee89 (yiwzhang@google.com)
      remove unused future import in file script
  6355d38 (yuanjunh@google.com)
      Add more instructions for py3 tests broken pipe error
  3102b4b (gbeaty@chromium.org)
      Enable overriding the status in step.raise_on_failure.
  1b330b0 (yuanjunh@google.com)
      Extract format_ex function into util
  1bfea92 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 15f9a906276e to 4a0f3da2840e
  fed60fa (yuanjunh@google.com)
      [python3] Mark milo, commit_position and legacy_annotation modules
  ffe1779 (yuanjunh@google.com)
      Unify Exception message when logging recipe crashes
  235424d (olivernewman@google.com)
      [py3] Make tricium module py3 compatible
  e91d264 (gbeaty@chromium.org)
      When advancing repos, advance to the next roll candidate commit.
  fe1a4d7 (olivernewman@google.com)
      [py3] Make random module py3 compatible
  b12f860 (olivernewman@google.com)
      [py3] Mark proto module py3 compatible
  49b6751 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 25d17569e256 to 39ba9e6e5e52
  8a36ed3 (orodley@chromium.org)
      Add recipe function for QueryTestResultStatistics.
  3e7e8d1 (tikuta@chromium.org)
      swarming: use cas for recipe test data
  4a8ab7e (tikuta@chromium.org)
      cas: add viewer_link()
  28810c3 (chanli@chromium.org)
      [recipe-py] expose resultdb info in LUCI_CONTEXT
  1cc998a (chanli@chromium.org)
      Revert "[recipe-py] expose resultdb info in LUCI_CONTEXT"
  b069f30 (bpastene@chromium.org)
      resultdb: Add a step_test_data default for QueryTestResultStati...
  28c185d (vadimsh@chromium.org)
      Regenerate README.recipes.md.
  137a3e2 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 37c3814019aa to c164b15559ec
  17c88f2 (bryner@google.com)
      Verify mac-arm64 for recipes-py vpython specs.
  c901e54 (yuanjunh@google.com)
      Force to make sure total coverage file is created
  ffff553 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 38d908cbd052 to 8276fd113316
  7339057 (kimstephanie@google.com)
      Add post_process.StepCommandDoesNotContain
  6ee00d0 (adrexler@google.com)
      Update default execution method for recipes.py to PY3.
  c42e605 (yuanjunh@google.com)
      System should also exit on soft errors
  2554279 (yiwzhang@google.com)
      buildbucket: default exe_cipd_version to None when scheduling
  5d4be9a (orodley@chromium.org)
      Add recipe function for BatchCreateArtifacts.
  c0b816b (yuanjunh@google.com)
      [python3] Migrate archive and generator_script modules

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

R=athom@google.com, whesse@google.com

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