tree 218493cf211602e7b051ae7c3b874f63f782ef63
parent cc113b35d35a0bf3684d6541f3da144522c7c990
author recipe-roller <recipe-deps-roller@pigweed.google.com.iam.gserviceaccount.com> 1641568176 +0000
committer CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> 1641570965 +0000

Roll recipe dependencies (trivial).

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

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

fuchsia:
https://fuchsia.googlesource.com/infra/recipes/+log/41980fa579502ac3947a48874d54b3f9ffd26840~..43e53dc74547bd35699351139ca0e5a710e0daa5
  41980fa (olivernewman@google.com)
      [autocorrelator] Reduce copy-pasting
  aaa60e3 (ihuh@google.com)
      [coverage] Don't upload coverage for internal builders.
  b355af1 (catduncan@google.com)
      [docs_roller] Convert to proto properties
  5f96fa4 (gbeaty@google.com)
      Switch step.empty calls to use log_text instead of stdout_text.
  2b9619e (olivernewman@google.com)
      [autocorrelator] Make all methods private except context()
  8be759b (rudymathu@google.com)
      [recipes] Provision nsjail in host testing shards
  9fc61ac (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  3351abf (nmulcahey@google.com)
      [jiri] Roll jiri
  673cf0d (olivernewman@google.com)
      [docsgen] Convert to proto properties
  ecaee61 (olivernewman@google.com)
      [cipd_dependencies] Use api.cipd.ensure
  d8b4ac8 (catduncan@google.com)
      [gerrit_auto_submit] Convert to proto properties
  02d849a (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  6ae2b28 (tmandry@google.com)
      [rust_toolchain] Enable jemalloc
  d370c50 (nmulcahey@google.com)
      [checkout] Assert the checkout is clean.
  24763a3 (yupingz@google.com)
      [submodule_update] Add submodule_update recipe module
  931ef0e (dangyi@google.com)
      Revert "[checkout] Assert the checkout is clean."
  e4a0897 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  c004586 (yupingz@google.com)
      [submodule_update] Replace jiri_projects with jiri_projects_path
  17b7e74 (nmulcahey@google.com)
      [cipd_tagger] Fix checkout dir
  7152ebf (nmulcahey@google.com)
      Revert "[cipd_tagger] Fix checkout dir"
  42c5565 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  4569576 (atyfto@google.com)
      [fuchsia/build] Fix Size-Review string formatting
  47afec6 (nmulcahey@google.com)
      Reland "[cipd_tagger] Fix checkout dir"
  2bca861 (nmulcahey@google.com)
      Reland "[checkout] Assert the checkout is clean."
  561f3a7 (catduncan@google.com)
      [test_owners] Convert to proto properties
  18d2456 (catduncan@google.com)
      [sdk_orchestrator] Convert to proto properties
  624c510 (olivernewman@google.com)
      [checkout] Disallow using start_dir as checkout root
  d12c20c (olivernewman@google.com)
      [git] Disallow using start_dir as checkout root
  b121443 (olivernewman@google.com)
      [build_input_resolver] Delete
  b70017a (yupingz@google.com)
      [Submodule_update] Replace super_project with superproject
  6c21720 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  43e53dc (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest

recipe_engine:
https://chromium.googlesource.com/infra/luci/recipes-py/+log/e230d2a592fe2b2e8c5a27a8e9794e1e2747a627~..0999b8c0171f1bbee4551fab1c1970021dcef70a
  e230d2a (gbeaty@chromium.org)
      Allow for changing the name of the log in step.empty.
  95dd092 (gbeaty@chromium.org)
      Remove stdout_text parameter from step.empty.
  cd81662 (yiwzhang@google.com)
      make placeholder recipe fail more obvious if no final status is...
  0999b8c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 415cbd72103b to d1e877e2b3e5

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

R=tpudlik@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ia7a86da76203e8d07983a4efbe46684152ae0841
Reviewed-on: https://pigweed-review.googlesource.com/c/infra/recipes/+/77500
Bot-Commit: Recipe Deps Roller <recipe-deps-roller@pigweed.google.com.iam.gserviceaccount.com>
Commit-Queue: Recipe Deps Roller <recipe-deps-roller@pigweed.google.com.iam.gserviceaccount.com>
