tree e13a592df1e6bc86e63fdc3fb2ecac659a68fb19
parent 9e294bf7d59a15f6486548d02886807cc86a2cea
author recipe-roller <dart-luci-ci-builder@dart-ci.iam.gserviceaccount.com> 1631151385 -0700
committer commit-bot@chromium.org <commit-bot@chromium.org> 1631171924 +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/8836607661027190721

Please review the expectation changes, and LGTM+CQ.

build:
https://chromium.googlesource.com/chromium/tools/build.git/+log/8b8c350bf7087ddf06efcdb9fbd329f8aea85625~..ba265573fe4c88cf8cde78a919e1ada36b93ff51
  8b8c350 (kimstephanie@google.com)
      Add win TARGET_PLATFORM to use with code_coverage
  9d2c5bf (guterman@google.com)
      Enable RTS for android-marshmallow-x86-rel in Quick Runs
  f75a617 (bryner@google.com)
      Update to fixed cffi wheel version.
  f736eb7 (bpastene@chromium.org)
      Restore uploading to test-results for swarmed tests in RDB expe...
  ea89776 (bpastene@chromium.org)
      Restore special archiving for layout-tests in RDB experiment.
  9bdc4d5 (yyanagisawa@chromium.org)
      goma_client: run scripts with python3
  5130615 (bpastene@chromium.org)
      Put every call to the swarming test collect script under a nest...
  0de1aa3 (ukai@google.com)
      Add "Mac Builder (reclient)" in chromium.fyi
  49c4af0 (kimstephanie@google.com)
      Add retry_without_patch to try spec
  12b3183 (bpastene@chromium.org)
      Allow a test's RDB results to update its exit_code after init.
  bc04280 (machenbach@chromium.org)
      [V8] Add custom recipe to run one-off tests
  78e938e (tikuta@chromium.org)
      chromium_tests: add chromium.chromium_tests.use_isolate experim...
  26b3077 (bpastene@chromium.org)
      test_utils: Track unexpected SKIP tests & pass those along to F...
  4940710 (bpastene@chromium.org)
      Fetch RDB results for swarming tasks in batches.
  e898c97 (bjoyce@google.com)
      Remove TODO that's not longer needed.
  487af4c (gbeaty@chromium.org)
      Implement experimental tests using the spec disabling.
  59830a8 (bpastene@chromium.org)
      Render swarming test steps with failure info in RDB experiment.
  81562b0 (liviurau@chromium.org)
      Add CSS lint step to devtools-frontend
  4ef12f8 (lijiawei@chromium.org)
      Add Cast Shell Linux ARM64 try bot config
  8bcbc6c (kimstephanie@google.com)
      [Orchestrator] Pass in branch ref to prepare_checkout
  6d16ff7 (guterman@google.com)
      Add helpful link for determinism failures
  f929202 (bpastene@chromium.org)
      test_utils: Keep track of total number of tests ran in RDB resu...
  14958d3 (ynovikov@chromium.org)
      Decommission chromium.angle Mac builders duplicated in standalone
  3cfc131 (tikuta@chromium.org)
      chromium_tests: Switch to RBE-CAS by default on all builders
  8fd4262 (machenbach@chromium.org)
      [V8] Add fallback lookup for flake bisect
  0b50125 (yyanagisawa@chromium.org)
      Do not use Goma if gn_args does not have use_goma=true.
  0d72038 (tikuta@chromium.org)
      chromium_tests: remove isolate_server
  e814339 (tikuta@chromium.org)
      recipes: remove unnecessary isolate_server config set
  7da543d (tikuta@chromium.org)
      chromium_tests: remove unused arg
  522ee33 (tikuta@chromium.org)
      recipes: remove unnecessary isolate_server config set
  8b12606 (msavigny@google.com)
      [reclient] Remove last refs to runsc reclient builders.
  db97b19 (gbeaty@chromium.org)
      Fix py3 incompatibilities in code that is run when gathering te...
  5dcf6de (gbeaty@chromium.org)
      Make attr_utils python3 compatible.
  fe4a720 (bpastene@chromium.org)
      steps.py: Fix TODO in get_invocation_names().
  00ee0c6 (yyanagisawa@chromium.org)
      reclient: add ensure_verified option.
  8e1a387 (jmadill@chromium.org)
      [angle] Remove extra unused trace tests args.
  f1ec320 (kuanhuang@chromium.org)
      rename ci/mac{,11}-arm64-rel-tests try/mac{,11}-arm64-rel (recipe)
  15ddd9b (gbeaty@chromium.org)
      Fix reason for skipping (without patch) steps.
  ba26557 (bpastene@chromium.org)
      Add suffix to the step name of the 'all results' debug state dump.

chromiumos_config:
https://chromium.googlesource.com/chromiumos/config.git/+log/e59abd149f73b32dc48f0a3314246d852946603c~..9d1e20bb9606c928e33c3b1808c4df15a272e311
  e59abd1 (jackneus@google.com)
      Move go/cros-partner-buildspec-sync to markdown
  a604d10 (jackneus@google.com)
      Tweak partner buildspec instructions
  af8912d (otabek@google.com)
      proto: Add prevent_reboot for provision ChromeOS
  9debec3 (otabek@google.com)
      proto: Add separate docker info for each service used for provi...
  80e02ff (smcallis@google.com)
      protos: Just use golden descriptor set for starlark protos.
  5aaa7cd (justinsuen@google.com)
      boxster: update script to parse FlatConfigs into UFS datastore
  c016578 (smcallis@google.com)
      Revert "boxster: link project config bundle to program config b...
  a681ee7 (smcallis@google.com)
      payloads: Update OWNERS for UFS upload script
  0d7a909 (justinsuen@google.com)
      boxster: save DeviceStability to UFS datastore
  7c6674c (justinsuen@google.com)
      boxster: update DeviceStability file path
  2a23f0c (hyungtaekim@chromium.org)
      tls: ProvisionLacros proto for autoupdate tests
  9d1e20b (smcallis@google.com)
      proto: Update definition of DutAttribute in support of lab labe...

chromiumos_proto:
https://chromium.googlesource.com/chromiumos/infra/proto.git/+log/ce9818fd8c040997c297f38544ea875e7c17f79d~..58611ae2251bd6ddaca9e0414aa37b5170816d5b
  ce9818f (jackneus@google.com)
      Switch generation to use cipd hosted protoc-gen-go-* packages
  58611ae (jaredloucks@google.com)
      skylab_local_state: add RemoveRequest

depot_tools:
https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/5d0fbd6a2b9fe819b89fcc72c65a589884d5e912~..b1bfb8b4f04970c955088e54c9ea40bab9abebd3
  5d0fbd6 (bryner@google.com)
      Use fixed cffi wheel verison.
  d6d5c46 (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to gitiles and bot_update
  9bccf29 (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to windows_sdk recipe module
  8daaf5c (sokcevic@google.com)
      Explicitly set python version for pylint 2.6
  23508d2 (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to git_cl recipe module
  326546b (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to presubmit recipe module
  1cb5081 (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to gerrit recipe module
  789636c (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to depot_tools recipe module
  d254d5c (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to osx_sdk recipe module
  76b679f (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to gclient recipe module
  7d10c80 (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to gsutil recipe module
  094e3dd (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to cipd recipe module
  535213f (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to tryserver recipe module
  dde93a5 (gavinmak@google.com)
      Add PYTHON_VERSION_COMPATIBILITY to git recipe module
  5819446 (tsniatowski@vewd.com)
      git-cl: add --upstream to git cl format
  bd0674c (gavinmak@google.com)
      Fix remaining unicode py2+3 recipe module errors
  2df329e (yyanagisawa@chromium.org)
      Roll out new goma client binary VERSION=229
  ece5635 (bryner@google.com)
      New git version to depot_tools stable.
  2269427 (sokcevic@google.com)
      Remove branch redirect support in git_cl
  4b2a96e (olivernewman@google.com)
      Remove PYTHON_VERSION_COMPATIBILITY from cipd example
  9589b3a (yiwzhang@google.com)
      recipe: deprecate cipd module in favor of the engine supplied one
  2afc4d2 (bryner@google.com)
      cpython3 3.8.10.chromium.21 to depot_tools bleeding_edge.
  b1bfb8b (bryner@google.com)
      Add explicit vpython verification tags which include mac-arm64.

fuchsia:
https://fuchsia.googlesource.com/infra/recipes.git/+log/713d6c76e29038acc53d62c0a234063b974e9f98~..a8c1d3e20817d6ca73ca296fc8da541eab6ab4d1
  713d6c7 (atyfto@google.com)
      [bloaty] Misc recipe cleanup + migrate to proto properties
  8e30129 (olivernewman@google.com)
      [code_search] Merge in functionality from submodule.py
  cdaea61 (olivernewman@google.com)
      [code_search] Use same push options as submodule.py
  9b0f4b6 (olivernewman@google.com)
      [submodule_update] Add missing copyright header
  570670a (olivernewman@google.com)
      [submodule] Delete
  62ce438 (olivernewman@google.com)
      [fint] Update mock fint param paths
  fe15c6f (leonardchan@google.com)
      [recipes][clang] Reduce the number of parallel link jobs to 8
  42254c2 (liyl@google.com)
      [aemu] Disable tests on aemu builders.
  be0148c (olivernewman@google.com)
      [luci_config] Convert to proto properties
  4618e5b (yupingz@google.com)
      [submodule_update] Update integration submodule
  5015f55 (yupingz@google.com)
      [submodule_update] Remove last_build
  732ad9c (yupingz@google.com)
      [submodule_update] is_ancestor return true then exit
  b34b4ec (atyfto@google.com)
      [bloaty] Move clang pin to last-known-good pin
  88fee9e (atyfto@google.com)
      [bloaty] Pin Rust toolchain
  2a0a843 (yupingz@google.com)
      [submodule_update] Push change from root fuchsia.
  7f4029c (yupingz@google.com)
      [submodule_update] Push change to HEAD:main
  4f17e41 (olivernewman@google.com)
      [luci_config] Checkout using git instead of jiri
  c0624d9 (atyfto@google.com)
      Revert "[luci_config] Checkout using git instead of jiri"
  c048d49 (dangyi@google.com)
      [symbolize] Do not consider timeout as a failure
  4e434df (olivernewman@google.com)
      Reland "[luci_config] Checkout using git instead of jiri"
  69ad1e0 (olivernewman@google.com)
      Commit .git-blame-ignore-revs file
  ee9e2b6 (olivernewman@google.com)
      [subbuild] Set -adjust-priority=0 for led jobs
  030cb0b (phosek@google.com)
      [clang_ml_training] Support restarting training from checkpoint
  b127543 (dmike@google.com)
      [DOCS] Change inclusive language backup list for pow
  72ac432 (atyfto@google.com)
      [sapling] Filter out build failures
  881d9fb (haowei@google.com)
      [clang] Add ResultDB integration to clang toolchain recipe
  943c4dc (phosek@google.com)
      [coverage] Pass older llvm-profdata to covargs
  523aed0 (olivernewman@google.com)
      [auto_roller] Add owners to roll commit messages
  13abd13 (olivernewman@google.com)
      [fuchsia_cipd_roller] Clean up tests
  c872169 (ihuh@google.com)
      [coverage] Upload all profiles back to CAS.
  048b09a (olivernewman@google.com)
      [properties] Create properties helper funcs
  2dc5640 (olivernewman@google.com)
      [py3] Enable py3 for some tests
  deb00e8 (olivernewman@google.com)
      [fuchsia] Propagate failed subbuild output props
  5e09845 (olivernewman@google.com)
      [testing_requests] Delete unused env vars
  7d8eecc (mohrr@google.com)
      [auto_roller] Use tag for retrigger link
  df556ea (olivernewman@google.com)
      [testing_requests] Delete unused INPUT_COMMIT_* env vars
  cf2f02d (olivernewman@google.com)
      [py3] s/raw_io.output/raw_io.output_text
  a53f060 (ihuh@google.com)
      [subbuild][coverage] Add child_build_ids to reuse builds for co...
  c171566 (atyfto@google.com)
      [sapling] Exclude checkout failures, re-include public build fa...
  42a084e (nmulcahey@google.com)
      [jiri] Roll to 6fbf3e3
  42fa9a9 (dangyi@google.com)
      Reland "[crashpad] Point roller at fuchsia.googlesource"
  3ea16a1 (olivernewman@google.com)
      [clang_toolchain] Don't return from `finally` clause
  b62ca41 (haowei@google.com)
      [clang_toolchain] Make builders be triggered regardless of the...
  839e74c (olivernewman@google.com)
      [python3] Fix python 2/3 inconsistencies
  54d3d90 (mohrr@google.com)
      [auto_roller] Change poll_timeout_secs default
  4535f48 (olivernewman@google.com)
      [python3] Mark more recipe modules as py3-compatible
  0843adf (olivernewman@google.com)
      [symbolize] Return stdout in case of timeout
  3f44372 (atyfto@google.com)
      [fxt] Always categorize `launch` failures as reds
  4cca74e (olivernewman@google.com)
      [python3] Fix remaining python3 incompatibilities
  eb59b64 (nmulcahey@google.com)
      Revert "[python3] Fix remaining python3 incompatibilities"
  da4890a (dgreenaway@google.com)
      [tricium] Update "fx format-code" command for C++
  3495b79 (olivernewman@google.com)
      Reland "[python3] Fix remaining python3 incompatibilities"
  300a260 (olivernewman@google.com)
      [buildbucket_util] Make compatible with Python 3
  518b81c (phosek@google.com)
      [clang_ml_training] Set TF_PROTO_HEADERS
  32e013c (olivernewman@google.com)
      [docker] Delete version method
  21d96e1 (olivernewman@google.com)
      [clang_ml_training] Use raw_io.output_text
  b6643c5 (phosek@google.com)
      [clang_ml_training] Use correct job name
  386254b (phosek@google.com)
      [clang_ml_training] Only download model if passed to recipe
  e863c4e (phosek@google.com)
      [clang_ml_training] Disable random_network_distillation
  ed5be2c (atyfto@google.com)
      [publish] Add stop_rollout property
  8ff7d01 (mohrr@google.com)
      [gerrit] Add project_from_remote_url()
  09f59ae (ihuh@google.com)
      [coverage] Add property to collect absolute coverage on tryjobs.
  d194817 (atyfto@google.com)
      [build] Add option to produce codesize report
  5f820f1 (phosek@google.com)
      [clang_ml_training] Reduce the number of policy iterations
  a8c1d3e (phosek@google.com)
      [fuchsia_cipd_roller] Support including extra tryjobs

infra:
https://chromium.googlesource.com/infra/infra.git/+log/09d2a198859d8bc8427d2f7f61fd2959bf4b6220~..3c533d325fdb43c04dc7773b292052e37de0bf55
  09d2a19 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 82d95d4b4634 to 184aa82a5d36 (...
  5639818 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 2407b4405239 to 4deb66537be1 (1 revision)
  3918f85 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 4deb66537be1 to 0d9279762385 (1 revision)
  5ad35d6 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 69d8d0302830 to af9a71f769e6 (1 revision)
  90724b3 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 184aa82a5d36 to 1d455d2c6ad9 (...
  8f036f3 (gregorynisbet@google.com)
      [karte] Make site internal
  312f99d (gregorynisbet@google.com)
      [karte] Configure CLI tool.
  1f2bf91 (seanmccullough@google.com)
      [pinpoint cli] format report json so `bq load --autodetect` can...
  eb05eb0 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 0d9279762385 to 7276538e6308 (1 revision)
  1ad5aa3 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 1d455d2c6ad9 to ce9818fd8c04 (...
  56b5c6e (jackneus@google.com)
      Add Google ToS/Privacy Policy to setup_project
  1ca17b5 (pasthana@google.com)
      Fetch file content from gitiles parallelly
  6dc5364 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 7276538e6308 to f0b52ecec831 (1 revision)
  f17ece9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from f0b52ecec831 to 6adc333a7827 (1 revision)
  c3bc8ab (meiring@google.com)
      [Weetbix] Update app to use LUCI config service.
  c395e79 (iannucci@chromium.org)
      Roll infra/go/src/go.chromium.org/luci/ 6adc333a7..8a49f227f (1...
  db1befb (bryner@google.com)
      Update to fixed cffi wheel version.
  406c706 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 8a49f227f5e9 to 8014b71c005c (1 revision)
  5824a69 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from af9a71f769e6 to 4c1ea0a780b2 (1 revision)
  a19089c (jackneus@google.com)
      project buildspecs: tweak error messages
  d623d3e (pasthana@google.com)
      Fetch commits from gitiles in batched manner
  7997767 (gregorynisbet@google.com)
      [karte] Update karte's app.yaml
  6220202 (otabek@google.com)
      recovery: Make ping and shh check universal
  19d3aac (chanli@chromium.org)
      [Weetbix] Add payload proto for test result ingestion task
  6b3bcc2 (linxinan@chromium.org)
      Add new adapter for tast results
  ac6ed7d (vadimsh@chromium.org)
      [build] Start building tarballs with auth_service code.
  657d563 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 8014b71c005c to 646a26a0a877 (1 revision)
  d0e2bcc (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 4c1ea0a780b2 to 96dfac9f57b3 (1 revision)
  c122ebf (sunxiaodi@google.com)
      Modified nested Conveys to avoid repetition
  ed8f72a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 646a26a0a877 to 55d264ad002b (1 revision)
  cb8483c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 55d264ad002b to 4c8de8c0f037 (1 revision)
  afca6c0 (dtu@google.com)
      🚝 Use ../../ENV/bin/python for serving, which includes six a...
  a18f180 (bryner@google.com)
      Update to fixed psutil wheel.
  67d2272 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 4c8de8c0f037 to 363257ddc492 (1 revision)
  20f5cbd (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 363257ddc492 to 1d8cc1305a82 (1 revision)
  c9a6319 (bryner@google.com)
      Update to fixed psutil wheel (py3).
  8faa682 (pasthana@google.com)
      Invoke fetch content from gitiles only once per commit.
  ed40c5c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 1d8cc1305a82 to fed80cfb4f13 (1 revision)
  4390e31 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from fed80cfb4f13 to 58e74586eae6 (1 revision)
  9046742 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 58e74586eae6 to d00350a4f827 (1 revision)
  a66109b (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from d00350a4f827 to 81fae1042197 (1 revision)
  e91cc38 (fancl@chromium.org)
      Enable numpy=1.19.2 on mac-x64-cp38
  ef678f1 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 81fae1042197 to 5886a1685e3e (1 revision)
  049eb4a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 96dfac9f57b3 to dba7d0bf2aa0 (1 revision)
  4e98d51 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 5886a1685e3e to 0cfac7a0bdaf (1 revision)
  0298f3f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from dba7d0bf2aa0 to d433975751c1 (1 revision)
  0b2fe9b (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 0cfac7a0bdaf to f89b24abeb65 (1 revision)
  6dd4cc6 (bryner@google.com)
      Update to fixed cffi wheel version.
  9fa8145 (bryner@google.com)
      Fix the cffi wheel version again. '3' is the latest patch level.
  a44a439 (meiring@google.com)
      [Weetbix] Add MonorailClient.
  6486ac9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from f89b24abeb65 to bc1426080836 (1 revision)
  e3dceef (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from bc1426080836 to 6d2bf22b7549 (1 revision)
  7282803 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 6d2bf22b7549 to 972def40090f (1 revision)
  139f64f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from d433975751c1 to 303384e125c9 (1 revision)
  dcc14c3 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 303384e125c9 to a380142204c7 (1 revision)
  beda08e (gbeaty@chromium.org)
      Add sheriff_rotations property to SoM BQ views.
  a1492b9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from ce9818fd8c04 to 5300d7da9584 (...
  88dd1d6 (otabek@google.com)
      recovery: Extect ExecFunction to provide action specific arguments
  d725a81 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 5300d7da9584 to 8621b247c4d0 (...
  477288f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 972def40090f to 25723236dc38 (1 revision)
  a9d959f (otabek@google.com)
      recovery: Pass Action exec args to the exec function
  b4e106b (caitlinfischer@google.com)
      Improve the Tricium warning for histograms using microsecond un...
  bbaab08 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 8621b247c4d0 to 58611ae2251b (...
  387f19f (kimjae@chromium.org)
      Reboot prior to block level stateful wipe
  c263dc1 (gregorynisbet@google.com)
      [karte] [recovery] Add metrics interface to recovery lib.
  1b059ce (yunzhiyu@google.com)
      recovery: Add new execs dev_default_boot, devmode, hwid
  650810b (guocb@chromium.org)
      k8s-metrics: refactoring using subcommand
  3f230c1 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 25723236dc38 to 2941e084a4bd (1 revision)
  b1fbb1e (jaredloucks@google.com)
      phosphorus: add command to remove autotest results dir
  09bb2ff (pasthana@google.com)
      Split feature coverage into multiple tasks.
  937333e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 2941e084a4bd to 6a1cb4c0859a (1 revision)
  48fa558 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 6a1cb4c0859a to 61d3510de3b0 (1 revision)
  d4f25a5 (justinsuen@google.com)
      UFS: modify FlatConfig ID implementation
  8e1046f (pasthana@google.com)
      Fix wrong url in cron.yaml
  4071ef7 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 61d3510de3b0 to 5748e7a74442 (1 revision)
  15c7193 (kevinruvalcaba@google.com)
      Monorail corrected user preference to enable by default markdow...
  aea7b1e (sokcevic@google.com)
      [crrev] Invoke datastore.EnableSafeGet
  1f6fbe4 (pasthana@google.com)
      Convert modifier id to int before fetching corresponding Entity
  baa5d89 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 58611ae2251b to bac1ae73af14 (...
  d1f4164 (xianuowang@chromium.org)
      cros_ec_type_boards: Add asurada and keeby to the list
  10aea6d (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 5748e7a74442 to 5989dfc93a10 (1 revision)
  6e64ae5 (pasthana@google.com)
      fix minor bug while invoking feature coverage sub tasks
  4bb4f72 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 5989dfc93a10 to 9e970082731e (1 revision)
  9f0155a (guocb@chromium.org)
      k8s-metrics: add a pod-perf subcommand
  babc96e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from a380142204c7 to 4ce2261a119f (1 revision)
  1896554 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 9e970082731e to 95f14d90b313 (1 revision)
  2d130d9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 4ce2261a119f to c0879372cb00 (1 revision)
  e9923de (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from bac1ae73af14 to 9abac58bf671 (...
  0903a1d (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from c0879372cb00 to a1d521f54731 (2 revisions)
  3d27156 (images-pins-roller@chops-service-accounts.iam.gserviceaccount.com)
      [images] Roll pinned docker image tags.
  1f335bd (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 95f14d90b313 to bcccebb34e6a (1 revision)
  4b140bf (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from bcccebb34e6a to 8bf27a3fa302 (1 revision)
  1d38288 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 8bf27a3fa302 to b631e03edbff (1 revision)
  73ff3fa (engeg@google.com)
      prejob: correctly examine bucket default
  7ceb785 (pasthana@google.com)
      Reduce max no. of concurrent requests for feature coverage sub...
  dfc7f1b (madhavadas@google.com)
      Skylab inventory: Update protoc version
  a5baaa9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from b631e03edbff to 80176e2bb368 (1 revision)
  efb5117 (otabek@google.com)
      recovery: Add execs for labstation reboot
  b323a57 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 9abac58bf671 to 4b05d4fab44f (...
  342a635 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 80176e2bb368 to 31954b0e37c3 (1 revision)
  ad8db27 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 4b05d4fab44f to 550170f90376 (...
  e2ca515 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 31954b0e37c3 to f796d4e6b0d5 (2 revisions)
  5c61088 (sokcevic@google.com)
      [py3] Use py3 with gerrit_plugins
  627a73a (meiring@google.com)
      [Weetbix] Setup OAuth authentication.
  d60a13c (nqmtuan@google.com)
      [TreeStatus] Copy chromium_status to another folder
  042de2e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from f796d4e6b0d5 to e5b08a7057b0 (1 revision)
  62eac30 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from e5b08a7057b0 to a69464cdb100 (1 revision)
  648b410 (nqmtuan@google.com)
      Migrate Chromium Tree Status to py3
  1ede223 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from a69464cdb100 to 2657625b8e60 (2 revisions)
  6faaa6e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from a1d521f54731 to 9c2f2e937e87 (1 revision)
  39a8e85 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 9c2f2e937e87 to cb522191774c (1 revision)
  112c7b9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from cb522191774c to b07395eec49c (1 revision)
  3c3d6af (images-pins-roller@chops-service-accounts.iam.gserviceaccount.com)
      [images] Roll pinned docker image tags.
  70b1f82 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 2657625b8e60 to 945287e10cc2 (1 revision)
  c548501 (gbeaty@chromium.org)
      Reorganize code to support getting exe from CAS.
  1261995 (jackneus@google.com)
      tclint: temporarily disable TestErrorMessages test
  981107a (sunxiaodi@google.com)
      reduced size of test dataset to two metrics, modified analyze_t...
  79a9664 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 86c6f5d3e881 to c0165784065f (49 re...
  156d479 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from b07395eec49c to 6ac6411ff3e2 (1 revision)
  041c4ee (pasthana@google.com)
      Fix flaky tests
  d202893 (otabek@google.com)
      recovery: Add action to check if kernel priority changed
  09fa1ad (jackneus@google.com)
      project buildspecs: handle buildspecs more gracefully
  7a16a8b (vyshu@chromium.org)
      Add force flag to provisioning
  ddb6071 (otabek@google.com)
      labpack: Recover panics to mark task as fail
  1c67390 (justinsuen@google.com)
      UFS: add boxster labels luci config
  f55cda7 (sokcevic@google.com)
      Remove sync_submodules - no longer used
  8129389 (chanli@chromium.org)
      [Weetbix] Add Spanner emulator
  488f745 (gregorynisbet@google.com)
      [satlab] Rename update command to add.
  3d51c14 (gregorynisbet@google.com)
      [karte] Add filter observation
  d6ce862 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 945287e10cc2 to 11a6fd7896a4 (1 revision)
  1bfc764 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 11a6fd7896a4 to 2b2acaf80513 (1 revision)
  7e30cff (otabek@google.com)
      recovery: Fix action name to update os version for provision info
  88b5b4a (xianuowang@chromium.org)
      crosfleet: Support multi-DUTs testing in run test/suite
  9f305ca (otabek@google.com)
      recovery: Add custom shell command exec
  a3ccdc7 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from c0165784065f to a681ee70a0db (1 rev...
  363ebb8 (gregorynisbet@google.com)
      [satlab] Add update dut command to satlab
  fead883 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 2b2acaf80513 to 01332f94e57f (1 revision)
  3900190 (meiring@google.com)
      [Weetbix] Add Bugs to Weetbix Schema.
  f4ad7e0 (otabek@google.com)
      labpack: Fix step name issue
  90b2fed (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 01332f94e57f to f83d98e4ac59 (1 revision)
  ecd0beb (bryner@google.com)
      Add gym 0.19.0.
  6f91e52 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from f83d98e4ac59 to b11f5dceb8d5 (1 revision)
  b6c19a1 (tandrii@google.com)
      [python_pb2] update protos.
  cc0446a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from b11f5dceb8d5 to debaa7f5cc54 (1 revision)
  2c38192 (otabek@google.com)
      recovery: Update intent for default logger
  f872d0f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 6ac6411ff3e2 to 5f52024c878e (1 revision)
  960272b (gregorynisbet@google.com)
      [satlab] Fix typo: implementation
  58e23f4 (otabek@google.com)
      recovery: Set name for return error
  d6185df (otabek@google.com)
      labpack: Add option to block steps
  7f42370 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from debaa7f5cc54 to a92698824865 (1 revision)
  3319f9d (gregorynisbet@google.com)
      [karte] Add ListObservations test
  a464670 (smut@google.com)
      [cr-buildbucket] Remove Builds pRPC service
  081d958 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 5f52024c878e to c46a9afa6772 (1 revision)
  f13399a (otabek@google.com)
      cros-provision: Rename the CLI
  37b6820 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from a92698824865 to 45ca51e94357 (1 revision)
  22d5bd9 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 45ca51e94357 to ed194676d55f (1 revision)
  e3eb27c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from c46a9afa6772 to ac8377486e92 (1 revision)
  512d061 (gregorynisbet@google.com)
      [satlab] Serialize shivas arguments.
  a9bbc2b (gregorynisbet@google.com)
      [karte] Add calls to datastore.EnableSafeGet
  46dfd70 (gregorynisbet@google.com)
      [karte] Remove GAE_PY variable from makefile
  0e0b8b9 (anushruth@chromium.org)
      [UFS] Preemptively upgrade compiled protos
  0b21a28 (gregorynisbet@google.com)
      [satlab] Wire up update dut command.
  a548232 (smut@google.com)
      [config] Enable BBAgent GetBuild mode by default on dev builders
  6cb017c (otabek@google.com)
      labpack: Add option to pass custom configuration
  5992c31 (ddoman@chromium.org)
      Revert "[tsmon] Change endpoint to PA WBL."
  2d43836 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from ed194676d55f to 8efa19ac207f (2 revisions)
  e96e9f1 (smut@google.com)
      [config] Enable BBAgent GetBuild mode by default
  3c68501 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 8efa19ac207f to 84b5b8d9188f (1 revision)
  63d0761 (justinsuen@google.com)
      UFS: use feature flag to hide boxster schedulable labels
  fa228ea (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from ac8377486e92 to 1660b21ce322 (1 revision)
  1fb6835 (meiring@google.com)
      [Weetbix] Read bug clusters from Spanner.
  c8bbea7 (meiring@google.com)
      [Weetbix] Read clusters from BigQuery.
  fb80cac (fancl@chromium.org)
      Add numpy=1.18.5 numpy=1.20.3
  c583a33 (xianuowang@chromium.org)
      recovery: Point rpm_frontend_uri to cluster internal rpm service
  58b0396 (chanli@chromium.org)
      [Weetbix] Add BuildbucketPubSubHandler
  0f51fc6 (mkiedys@google.com)
      Bump infra_libs version to 2.2.1.
  1521d83 (mkiedys@google.com)
      Roll infra_libs to 2.2.1.
  db74934 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 84b5b8d9188f to f84e8223903b (1 revision)
  1c69c2d (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from f84e8223903b to a3a6ac7ad677 (1 revision)
  eb4657a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from a3a6ac7ad677 to f75f41608fa1 (1 revision)
  4de536e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from f75f41608fa1 to d239ad4070d1 (1 revision)
  f6222e8 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from d239ad4070d1 to 189a15c487b6 (5 revisions)
  1f4c99f (robertocn@chromium.org)
      [result_adapter] Print payload's output.
  508f27f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 189a15c487b6 to 50a700ee8c71 (3 revisions)
  a329a86 (otabek@google.com)
      provision-cli: Read input params and init provisioning
  44bf3a3 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 1660b21ce322 to 62992b862f5f (1 revision)
  1759860 (fancl@chromium.org)
      Enable numpy=1.20.3 and numpy=1.18.5 on windows
  599d34a (nqmtuan@google.com)
      [ChromiumStatus] Add cloud logging
  93ad643 (mkiedys@google.com)
      [tsmon] Panic if infra_libs < 2.2.1.
  80c0e2d (mkiedys@google.com)
      Reland "[tsmon] Change endpoint to PA WBL."
  e934820 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 50a700ee8c71 to 3b86db6a1d30 (1 revision)
  3e1f1f7 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 3b86db6a1d30 to da095ca13450 (1 revision)
  990aab4 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 62992b862f5f to 8782afa15348 (1 revision)
  1d9f72f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 8782afa15348 to d9f0db2bb6b2 (1 revision)
  ccc4adc (fancl@chromium.org)
      Build opencv wheel from source
  752171e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from a681ee70a0db to e4b4b5c61f80 (1 rev...
  92712aa (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 550170f90376 to 673b2dec8abb (...
  384c5ab (otabek@google.com)
      mallet: Pass configuration for scheduled task
  396f4c2 (otabek@google.com)
      recovery: Add configs to run labstation repair
  e905f55 (bryner@google.com)
      Enable pathos wheel for mac-arm64.
  b2588bb (nqmtuan@google.com)
      [ChromiumStatus] Implement OAuth2 and OpenID Connect
  46a74e7 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from da095ca13450 to 7db34563656c (1 revision)
  5f83435 (otabek@google.com)
      recovery: Add basic actions for servo_repair
  a7d6d36 (otabek@google.com)
      labpack: Add logs for debugging
  d51156f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from e4b4b5c61f80 to 0d7a9099b39e (1 rev...
  8e841d5 (gbeaty@chromium.org)
      Add support for running an executable from CAS.
  d9e9e3f (andrewjc@google.com)
      Revert "🚝 Use ../../ENV/bin/python for serving, which includ...
  0802704 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 7db34563656c to 5ffb826785ac (2 revisions)
  4199f7f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 673b2dec8abb to 351596af2696 (...
  514abaf (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 0d7a9099b39e to d9af6bfaea68 (1 rev...
  e2b47c3 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from d9af6bfaea68 to 795e6c6dff63 (1 rev...
  3e77827 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 5ffb826785ac to cd382fbb42dd (1 revision)
  137ce0e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 351596af2696 to 17de50eeae65 (...
  84548e7 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from cd382fbb42dd to 5ea822acab1f (1 revision)
  e80a7fa (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 795e6c6dff63 to 7c6674cd690d (1 rev...
  8e7e2ae (chanli@chromium.org)
      [Weetbix] Get ResultDB information from buildbucket
  43b2e75 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 5ea822acab1f to 600014e1da67 (1 revision)
  691d786 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 600014e1da67 to 8916fd413e62 (1 revision)
  6bb2553 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 8916fd413e62 to e12d445016e7 (1 revision)
  0646548 (tikhonov@google.com)
      [build] LUCI CD YAML builder configuration file for Swarming
  23b81ab (jackneus@google.com)
      manifest doctor: fix firestore API scope
  447ab86 (hyungtaekim@chromium.org)
      tls: Support ssh port other than 22 to DUT
  b75ce40 (meiring@google.com)
      [Weetbix] Refactor Cluster Query API.
  7bd1e96 (calamity@chromium.org)
      Add instrumentation to git cl map-branches
  a00e33a (meiring@google.com)
      [Weetbix] Extend MonorailClient.
  1f12306 (meiring@google.com)
      [Weetbix] Setup LUCI GAE Automatic Deployment (part 1).
  392b171 (meiring@google.com)
      [Weetbix] Add issue generator.
  4b04c96 (meiring@google.com)
      [Weetbix] Add method to save bug clusters.
  f2c2696 (meiring@google.com)
      [Weetbix] Implement initial auto-bug filing.
  7b62727 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from e12d445016e7 to 8e944005719b (1 revision)
  b6a764b (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from d9f0db2bb6b2 to 6ac98ccd93c5 (1 revision)
  fff10eb (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 8e944005719b to 466a277d1df2 (1 revision)
  f5b9482 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 466a277d1df2 to ddf091a9a4ea (1 revision)
  88f8bd8 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from ddf091a9a4ea to 70f86e26d619 (1 revision)
  352decc (kimstephanie@google.com)
      Compilator watcher luciexe sub_build
  13253cc (jackneus@google.com)
      improve logging for local manifest branching
  9d1a968 (me@avm99963.com)
      Monorail: minor fix for markdown blocklist
  e667feb (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 70f86e26d619 to 5f5f8f0d6018 (1 revision)
  6bdf4cb (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 5f5f8f0d6018 to a1d48bbc7458 (3 revisions)
  bf24860 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from a1d48bbc7458 to 8a4616a0c123 (1 revision)
  0e80990 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 8a4616a0c123 to 327213023d8c (1 revision)
  8c26b8c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 7c6674cd690d to 2a23f0c11ed3 (1 rev...
  1938b08 (guocb@chromium.org)
      drone-agent: drain bug fix
  2490ca6 (vadimsh@chromium.org)
      [config] Poll refs/heads/main in gitiles poller.
  41022c8 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 327213023d8c to 7561dff96e5f (1 revision)
  56e1e68 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 7561dff96e5f to 461a36caf948 (1 revision)
  c7f31b4 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 17de50eeae65 to 7389a02f1d09 (...
  caa21aa (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 7389a02f1d09 to c10af8b5116a (...
  3c533d3 (yuanjunh@google.com)
      Add yuanjunh@ into OWNERS of infra recipes

recipe_engine:
https://chromium.googlesource.com/infra/luci/recipes-py.git/+log/5a08ca64d8089f0668cbdb50de4cfe366b237982~..cc2189852d46923cc745bd1682d5c2f058bb3344
  5a08ca6 (yiwzhang@google.com)
      py3: add python compatibility version info to recipe README
  21e0880 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 5639818d5b74 to 3918f8505244
  8abfa9b (bryner@google.com)
      Update to fixed cffi wheel.
  c7a64fb (yiwzhang@google.com)
      py3: add detailed explanation for soft error
  aaa0f9b (yiwzhang@google.com)
      py3: mark python module as PY2+3
  6fa3a72 (yiwzhang@google.com)
      regen the recipe doc
  07fdd8a (iannucci@chromium.org)
      [test] Use fewer coverage files.
  4c803c9 (yuanjunh@google.com)
      Use a different data file for total coverage
  7514f5c (yuanjunh@google.com)
      [python3] Make recipes test cmd work when RECIPES_USE_PY3 is true
  5a6f911 (bpastene@chromium.org)
      Add a 'json.input' step log to all resultdb recipe_module RPCs.
  9bdc387 (bryner@google.com)
      Update coverage wheel to fixed version.
  8dc885f (yuanjunh@google.com)
      Add the coverage issue to the user guide doc
  e8975f0 (yuanjunh@google.com)
      [python3] Make the rest of context and step recipes py3 compatible
  bb3c1e2 (olivernewman@google.com)
      [python3] Make file module py3-compatible
  0712831 (olivernewman@google.com)
      [python3] Make cipd module py3-compatible
  fdc27f0 (mohrr@google.com)
      [buildbucket] Allow setting execution_timeout
  a3f37fc (olivernewman@google.com)
      [python3] Stop using re._pattern_type in py3
  284f068 (olivernewman@google.com)
      [json] Sort test data keys
  889cd34 (yiwzhang@google.com)
      py3: add instruction on how to enable py3 for led build
  97494ab (olivernewman@google.com)
      [python3] Mark time module as py3-compatible
  f8c1156 (mohrr@google.com)
      [python3] Make post_process_inputs.py Py3-compatible
  91cbc7a (yiwzhang@google.com)
      regen the recipe doc
  91da5c3 (olivernewman@google.com)
      [python3] Make url module py3 compatible
  1586d73 (yuanjunh@google.com)
      [python3] Make buildbucket module py3 compatible
  e35ed93 (olivernewman@google.com)
      [proto] Respect codec in logs
  5f4231a (mohrr@google.com)
      [url] Clarify exception messages
  57b1636 (mohrr@google.com)
      [python3] led module Py3 compatibility fixes
  70ae6f1 (yuanjunh@google.com)
      [python3] Unify the json.loads error msg in py2 and py3 test mode
  22306fb (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from d6185df04086 to 7f42370cb3b7
  32636a5 (yiwzhang@google.com)
      py3: report internal error as well when enable_py3_details bit...
  937803a (olivernewman@google.com)
      [python3] Make service_account module py3 compatible
  cb989e1 (mohrr@google.com)
      [python3] Make cas module py3 compatible
  a7d06b1 (mohrr@google.com)
      [python3] Make uuid module py3 compatible
  3e7ed54 (mohrr@google.com)
      [python3] Make isolated module py3 compatible
  151b0c5 (mohrr@google.com)
      [python3] Make swarming module py3 compatible
  b44ae7d (gbeaty@chromium.org)
      Make the assertions module python3 compatible.
  a481418 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from c8bbea79d509 to 0a5ecd73c992
  b33402d (mohrr@google.com)
      [python3] Make scheduler module py3 compatible
  6bce37b (mohrr@google.com)
      [python3] Make cq module py3 compatible
  fb539bc (mohrr@google.com)
      [python3] Make futures module py3 compatible
  97386e6 (mohrr@google.com)
      [python3] Make file resources py3-compatible
  5e01592 (bpastene@chromium.org)
      resultdb: Allow limit to be passed as 0 in query().
  302c087 (mohrr@google.com)
      [python3] Replace xrange() and iteritems() calls
  9193c33 (yiwzhang@google.com)
      regen the recipe doc
  7f5b583 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from e9348203ea8f to 3e1f1f7a109e
  39ab460 (olivernewman@google.com)
      [swarming] Avoid comparing string to None
  86d8136 (olivernewman@google.com)
      [buildbucket] Sort keys in mock data
  fae1afe (yuanjunh@google.com)
      [python3] Migrate proto and led recipe modules
  e84958e (tikuta@chromium.org)
      swarming: use chromium.org in owners
  ee8bca9 (mohrr@google.com)
      [swarming] Change import order
  43efea0 (yiwzhang@google.com)
      tricium: bump the comment num limit to 1000
  5676c4b (tikuta@chromium.org)
      swarming: require binary for secret_bytes
  7f6b105 (tikuta@chromium.org)
      swarming: make use_cas True in test
  22a97a5 (yiwzhang@google.com)
      py3: include python interpreter version in the setup_build step...
  3d8de63 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from f2c26964eca4 to 7b62727dc713
  e6841cf (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from fff10ebb9562 to f5b94828455a
  cc21898 (gbeaty@chromium.org)
      Add a flag for test command to only run python3 tests.

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: I3832ef2bb8b2a540b03afb01ad0daec4aa124ab8
Reviewed-on: https://dart-review.googlesource.com/c/recipes/+/212940
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>
