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.

Please review the expectation changes, and LGTM+CQ.

build:
https://chromium.googlesource.com/chromium/tools/build.git/+log/665c90bdb8f2dabbfd6fb00514a261796c2512a8~..95d4783ba07e8c924bc7ad73faf88353722a8847
  665c90b (hypan@google.com)
      Migrate chromium_3pp to a recipe module
  aacb8d1 (dpranke@google.com)
      Turn off shard-level retries on other blink trybots.
  95d4783 (svenzheng@chromium.org)
      Recipe: Adds linux-lacros-version-skew-fyi tryjob

chromiumos_config:
https://chromium.googlesource.com/chromiumos/config.git/+log/82e095e104ee78fb1e20fbc274d1c7763d428475~..ae83f2dbc47895dd7e67b4a7f6d935ce7c2bbd7b
  82e095e (andrewlamb@chromium.org)
      Remove deprecated fields from SourceTestPlan.
  86b9475 (shapiroc@chromium.org)
      Initial test case result proto def
  8c1f78e (shapiroc@chromium.org)
      Add test case results to RunTests
  877fa99 (shapiroc@chromium.org)
      Dropping redundant test_case_ids
  55e703f (smcallis@google.com)
      boxster: add fingerprint and screen hardware feature utils
  ca31c6d (shapiroc@chromium.org)
      Generalize storage path
  86f583f (shapiroc@chromium.org)
      Provisioning API for TestService
  275ea30 (shapiroc@chromium.org)
      API for first-class Ash provisioning support
  0eba639 (shapiroc@chromium.org)
      Move longrunning to common
  0039553 (jnchase@google.com)
      hw_topology: add CHROMEBASE as a form factor option
  b90b2db (shapiroc@chromium.org)
      Provisioning API plumbing for Arc
  f54fdf2 (smcallis@google.com)
      boxster: add keyboard and stylus hardware feature utilities
  ae83f2d (andrewlamb@chromium.org)
      Add DeviceStability proto.

chromiumos_proto:
https://chromium.googlesource.com/chromiumos/infra/proto.git/+log/0e22bd54422e5f043d125f6d4908f676c59f5c53~..fe36abd25cee574a2e7387a842c8a3c002e6d62f
  0e22bd5 (chentsung@chromium.org)
      device/config: Add mt8195 to SOC
  9c8c5df (andrewlamb@chromium.org)
      Add skeleton of Request for CTP v2.
  fe36abd (engeg@google.com)
      common.proto: remove non-aliased IMAGE_TYPEs

depot_tools:
https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e77e3c879a3f795161d3efa096c9caa33c7a0c2b~..360f98195601ea865b59c5e499aed66e78d3ecc4
  e77e3c8 (bryner@google.com)
      Update bleeding edge python versions.
  73faeea (ehmaldonado@google.com)
      metrics: Wait until upload is complete on bots.
  360f981 (thakis@chromium.org)
      Bump python2 to 2.7.18 again, and pull it on mac/arm

fuchsia:
https://fuchsia.googlesource.com/infra/recipes.git/+log/44c65bf3a30a0e10ebceefafe50bd5b93d1ea58a~..cc3fbfadf2b9699273e1e8624c4c210fc390923a
  44c65bf (mohrr@google.com)
      [gerrit] Add links to most gerrit steps
  ed129f1 (olivernewman@google.com)
      [testing_requests] Attach constants to RecipeApi class
  cc3fbfa (olivernewman@google.com)
      [zbi_test] Symbolize and present serial logs

infra:
https://chromium.googlesource.com/infra/infra.git/+log/42ef830139d2757d06099045cfb1b283c5738fb9~..4534834b722f0d75ee9cd9354098ed70fe454830
  42ef830 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 7a23ba0740f5 to 63c1656a06a6 (...
  f417cab (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from e15d4eb1a929 to 7014a5f9fdf0 (1 revision)
  3dd6f02 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 7014a5f9fdf0 to 88deadbd04ec (1 revision)
  c1011bc (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 88deadbd04ec to 72eb99f5c666 (1 revision)
  22eaea4 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 13faf2e1efae to 1eb074059cb8 (1 rev...
  316bec6 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 63c1656a06a6 to 0e22bd54422e (...
  d1e3611 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 0e22bd54422e to aecd6abd3dc2 (...
  47bed01 (tikuta@chromium.org)
      go: update go to 1.16.4 and 1.15.12
  97f92be (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from be6acc888193 to 894407f03588 (1 revision)
  c1328c9 (bryner@google.com)
      Run cryptography setup.py under vpython on non-Dockcross platfo...
  e806d6e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 894407f03588 to 993b0b02f7c3 (1 revision)
  0b88b77 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 72eb99f5c666 to 7d50ff191988 (1 revision)
  98939fd (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-py from 993b0b02f7c3 to 566dca967906 (1 revision)
  fa78eb7 (landrey@google.com)
      Introduce initial AlertGroups service API definition
  7e54d59 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 7d50ff191988 to a918d09f83c5 (1 revision)
  f94e2bb (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from a918d09f83c5 to 320f4db4c3b1 (1 revision)
  26a7a0f (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from 1eb074059cb8 to b90b2db79a52 (1 rev...
  28342b6 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from aecd6abd3dc2 to 9c8c5dfcf4ee (...
  71b8b2a (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/infra/proto from 9c8c5dfcf4ee to fe36abd25cee (...
  44a99df (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from b90b2db79a52 to f54fdf27e0d6 (1 rev...
  1c9eb7b (andrewlamb@chromium.org)
      testplan: Run `goimports -local "infra,go.chromium.org".
  f8ef110 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from f54fdf27e0d6 to ae83f2dbc478 (1 rev...
  9bb5bc1 (apolito@google.com)
      add nokeycheck to updatesubodules
  6cf781b (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 320f4db4c3b1 to 0cfe082c9b44 (1 revision)
  84e3714 (tikuta@chromium.org)
      go: make bootstrap.py python3 compatible
  5bee6b5 (oliviasturman@google.com)
      [Monorail]: clock icons are now purple if user has not seen issue
  84c8be1 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 0cfe082c9b44 to b63ff4f14c7b (1 revision)
  02181a0 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from b63ff4f14c7b to 6f82746881ab (2 revisions)
  d49eb25 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll luci-go from 6f82746881ab to a9d600ed020e (2 revisions)
  8d2caef (tandrii@google.com)
      Update Python proto bindings.
  e40f443 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll chromiumos/config from ae83f2dbc478 to 709e0ccc22b6 (1 rev...
  4534834 (xianuowang@chromium.org)
      shivas: Add label-managed_dut for scheduling unit in internal-p...

recipe_engine:
https://chromium.googlesource.com/infra/luci/recipes-py.git/+log/609ceedcf6b576d9ccc030fd99b288cf83a2b3bf~..b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1
  609ceed (iannucci@chromium.org)
      [.vpython] Bump protobuf and six versions.
  9723277 (iannucci@chromium.org)
      [python3] Add a python3 unittest which does nothing.
  b64b15a (iannucci@chromium.org)
      [python3] Add test and fix syntax+warnings for py3.

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: I577e04fadd0f3b7d2c4d66950c7a18f4eaf5e51b
Reviewed-on: https://dart-review.googlesource.com/c/recipes/+/199020
Auto-Submit: Dart CI <dart-luci-ci-builder@dart-ci.iam.gserviceaccount.com>
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: William Hesse <whesse@google.com>
diff --git a/README.recipes.md b/README.recipes.md
index 07e0ab5..63007b0 100644
--- a/README.recipes.md
+++ b/README.recipes.md
@@ -268,31 +268,31 @@
 
 &mdash; **def [RunSteps](/recipes/roller/roll_to_dev.py#36)(api, properties):**
 
-[build/recipe_modules/goma]: https://chromium.googlesource.com/chromium/tools/build.git/+/75d4d7fa7e9f60cf9feffc91014f57a6cea33d60/recipes/README.recipes.md#recipe_modules-goma
-[depot_tools/recipe_modules/bot_update]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/cb04744f3225a562748e5da090c8bbcb6a3773ee/recipes/README.recipes.md#recipe_modules-bot_update
-[depot_tools/recipe_modules/depot_tools]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/cb04744f3225a562748e5da090c8bbcb6a3773ee/recipes/README.recipes.md#recipe_modules-depot_tools
-[depot_tools/recipe_modules/gclient]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/cb04744f3225a562748e5da090c8bbcb6a3773ee/recipes/README.recipes.md#recipe_modules-gclient
-[depot_tools/recipe_modules/git]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/cb04744f3225a562748e5da090c8bbcb6a3773ee/recipes/README.recipes.md#recipe_modules-git
-[depot_tools/recipe_modules/gitiles]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/cb04744f3225a562748e5da090c8bbcb6a3773ee/recipes/README.recipes.md#recipe_modules-gitiles
-[depot_tools/recipe_modules/gsutil]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/cb04744f3225a562748e5da090c8bbcb6a3773ee/recipes/README.recipes.md#recipe_modules-gsutil
-[depot_tools/recipe_modules/osx_sdk]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/cb04744f3225a562748e5da090c8bbcb6a3773ee/recipes/README.recipes.md#recipe_modules-osx_sdk
-[depot_tools/recipe_modules/presubmit]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/cb04744f3225a562748e5da090c8bbcb6a3773ee/recipes/README.recipes.md#recipe_modules-presubmit
-[depot_tools/recipe_modules/tryserver]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/cb04744f3225a562748e5da090c8bbcb6a3773ee/recipes/README.recipes.md#recipe_modules-tryserver
-[fuchsia/recipe_modules/gerrit]: https://fuchsia.googlesource.com/infra/recipes/+/5714746e36ae9efe2e6dbd3bf672290b72b995bd/README.recipes.md#recipe_modules-gerrit
-[recipe_engine/recipe_modules/buildbucket]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-buildbucket
-[recipe_engine/recipe_modules/cipd]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-cipd
-[recipe_engine/recipe_modules/context]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-context
-[recipe_engine/recipe_modules/file]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-file
-[recipe_engine/recipe_modules/isolated]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-isolated
-[recipe_engine/recipe_modules/json]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-json
-[recipe_engine/recipe_modules/path]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-path
-[recipe_engine/recipe_modules/platform]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-platform
-[recipe_engine/recipe_modules/properties]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-properties
-[recipe_engine/recipe_modules/raw_io]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-raw_io
-[recipe_engine/recipe_modules/runtime]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-runtime
-[recipe_engine/recipe_modules/service_account]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-service_account
-[recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-step
-[recipe_engine/recipe_modules/swarming]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-swarming
-[recipe_engine/recipe_modules/time]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-time
-[recipe_engine/recipe_modules/url]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/README.recipes.md#recipe_modules-url
-[recipe_engine/wkt/RecipeApi]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/43f6400705659a3fea0c302db11a965b5c820f4a/recipe_engine/recipe_api.py#875
+[build/recipe_modules/goma]: https://chromium.googlesource.com/chromium/tools/build.git/+/8d5b7e55e7e1200b21feff508ecfe673cffd4779/recipes/README.recipes.md#recipe_modules-goma
+[depot_tools/recipe_modules/bot_update]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/b865acd3f2d8cd305f87215154351620354d075f/recipes/README.recipes.md#recipe_modules-bot_update
+[depot_tools/recipe_modules/depot_tools]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/b865acd3f2d8cd305f87215154351620354d075f/recipes/README.recipes.md#recipe_modules-depot_tools
+[depot_tools/recipe_modules/gclient]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/b865acd3f2d8cd305f87215154351620354d075f/recipes/README.recipes.md#recipe_modules-gclient
+[depot_tools/recipe_modules/git]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/b865acd3f2d8cd305f87215154351620354d075f/recipes/README.recipes.md#recipe_modules-git
+[depot_tools/recipe_modules/gitiles]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/b865acd3f2d8cd305f87215154351620354d075f/recipes/README.recipes.md#recipe_modules-gitiles
+[depot_tools/recipe_modules/gsutil]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/b865acd3f2d8cd305f87215154351620354d075f/recipes/README.recipes.md#recipe_modules-gsutil
+[depot_tools/recipe_modules/osx_sdk]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/b865acd3f2d8cd305f87215154351620354d075f/recipes/README.recipes.md#recipe_modules-osx_sdk
+[depot_tools/recipe_modules/presubmit]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/b865acd3f2d8cd305f87215154351620354d075f/recipes/README.recipes.md#recipe_modules-presubmit
+[depot_tools/recipe_modules/tryserver]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/b865acd3f2d8cd305f87215154351620354d075f/recipes/README.recipes.md#recipe_modules-tryserver
+[fuchsia/recipe_modules/gerrit]: https://fuchsia.googlesource.com/infra/recipes/+/0469bf3e320f169152225cbaa60e9910794d71f3/README.recipes.md#recipe_modules-gerrit
+[recipe_engine/recipe_modules/buildbucket]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-buildbucket
+[recipe_engine/recipe_modules/cipd]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-cipd
+[recipe_engine/recipe_modules/context]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-context
+[recipe_engine/recipe_modules/file]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-file
+[recipe_engine/recipe_modules/isolated]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-isolated
+[recipe_engine/recipe_modules/json]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-json
+[recipe_engine/recipe_modules/path]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-path
+[recipe_engine/recipe_modules/platform]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-platform
+[recipe_engine/recipe_modules/properties]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-properties
+[recipe_engine/recipe_modules/raw_io]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-raw_io
+[recipe_engine/recipe_modules/runtime]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-runtime
+[recipe_engine/recipe_modules/service_account]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-service_account
+[recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-step
+[recipe_engine/recipe_modules/swarming]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-swarming
+[recipe_engine/recipe_modules/time]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-time
+[recipe_engine/recipe_modules/url]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/README.recipes.md#recipe_modules-url
+[recipe_engine/wkt/RecipeApi]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1/recipe_engine/recipe_api.py#875
diff --git a/infra/config/recipes.cfg b/infra/config/recipes.cfg
index 18a4c91..783439f 100644
--- a/infra/config/recipes.cfg
+++ b/infra/config/recipes.cfg
@@ -21,37 +21,37 @@
   "deps": {
     "build": {
       "branch": "refs/heads/master",
-      "revision": "75d4d7fa7e9f60cf9feffc91014f57a6cea33d60",
+      "revision": "8d5b7e55e7e1200b21feff508ecfe673cffd4779",
       "url": "https://chromium.googlesource.com/chromium/tools/build.git"
     },
     "chromiumos_config": {
       "branch": "refs/heads/master",
-      "revision": "37258e03f48f3837c26a8d3c8d1373303532f672",
+      "revision": "709e0ccc22b6de46a3357d0424c5aaf831646aeb",
       "url": "https://chromium.googlesource.com/chromiumos/config.git"
     },
     "chromiumos_proto": {
       "branch": "refs/heads/master",
-      "revision": "7a23ba0740f5e6cd380f650430b96420b1c1090d",
+      "revision": "a37b25bf68d8b3dbb9a431367bee76f180a09b7f",
       "url": "https://chromium.googlesource.com/chromiumos/infra/proto.git"
     },
     "depot_tools": {
       "branch": "refs/heads/master",
-      "revision": "cb04744f3225a562748e5da090c8bbcb6a3773ee",
+      "revision": "b865acd3f2d8cd305f87215154351620354d075f",
       "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git"
     },
     "fuchsia": {
       "branch": "refs/heads/master",
-      "revision": "5714746e36ae9efe2e6dbd3bf672290b72b995bd",
+      "revision": "0469bf3e320f169152225cbaa60e9910794d71f3",
       "url": "https://fuchsia.googlesource.com/infra/recipes.git"
     },
     "infra": {
       "branch": "refs/heads/master",
-      "revision": "89730d3116401ebaf798dff027bd7f50da955bcc",
+      "revision": "7cc6431fb067fea636301318653b88f3a45c8033",
       "url": "https://chromium.googlesource.com/infra/infra.git"
     },
     "recipe_engine": {
       "branch": "refs/heads/master",
-      "revision": "43f6400705659a3fea0c302db11a965b5c820f4a",
+      "revision": "b64b15afdf9f3fe3b6bf8e662c4795b9c0e902e1",
       "url": "https://chromium.googlesource.com/infra/luci/recipes-py.git"
     }
   },
diff --git a/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-failure-experimental.json b/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-failure-experimental.json
index 4e25549..a287363 100644
--- a/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-failure-experimental.json
+++ b/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-failure-experimental.json
@@ -8,7 +8,7 @@
     ],
     "infra_step": true,
     "name": "schedule bisect (d)",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"YES\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"d\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711, \"bisect_newer\": [\"c\"], \"bisect_older\": [\"e\"], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"YES\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"d\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711.0, \"bisect_newer\": [\"c\"], \"bisect_older\": [\"e\"], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -44,7 +44,7 @@
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711, @@@",
+      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711.0, @@@",
       "@@@STEP_LOG_LINE@request@          \"bisect_newer\": [@@@",
       "@@@STEP_LOG_LINE@request@            \"c\"@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
diff --git a/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-failure.json b/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-failure.json
index 5b4ad84..211488b 100644
--- a/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-failure.json
+++ b/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-failure.json
@@ -8,7 +8,7 @@
     ],
     "infra_step": true,
     "name": "schedule bisect (d)",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"d\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711, \"bisect_newer\": [\"c\"], \"bisect_older\": [\"e\"], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"d\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711.0, \"bisect_newer\": [\"c\"], \"bisect_older\": [\"e\"], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -44,7 +44,7 @@
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711, @@@",
+      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711.0, @@@",
       "@@@STEP_LOG_LINE@request@          \"bisect_newer\": [@@@",
       "@@@STEP_LOG_LINE@request@            \"c\"@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
diff --git a/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-success.json b/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-success.json
index 498ba0e..358c289 100644
--- a/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-success.json
+++ b/recipe_modules/bisect_build/tests/tests.expected/continue-bisect-on-success.json
@@ -8,7 +8,7 @@
     ],
     "infra_step": true,
     "name": "schedule bisect (b)",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"b\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711, \"bisect_newer\": [\"a\"], \"bisect_older\": [\"c\"], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"b\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711.0, \"bisect_newer\": [\"a\"], \"bisect_older\": [\"c\"], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -44,7 +44,7 @@
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711, @@@",
+      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711.0, @@@",
       "@@@STEP_LOG_LINE@request@          \"bisect_newer\": [@@@",
       "@@@STEP_LOG_LINE@request@            \"a\"@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
diff --git a/recipe_modules/bisect_build/tests/tests.expected/fan-out-on-distinct-failure.json b/recipe_modules/bisect_build/tests/tests.expected/fan-out-on-distinct-failure.json
index 5e2f10a..f5c2536 100644
--- a/recipe_modules/bisect_build/tests/tests.expected/fan-out-on-distinct-failure.json
+++ b/recipe_modules/bisect_build/tests/tests.expected/fan-out-on-distinct-failure.json
@@ -8,7 +8,7 @@
     ],
     "infra_step": true,
     "name": "schedule bisect (b)",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"b\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711, \"bisect_newer\": [\"a\"], \"bisect_older\": [\"c\"], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"b\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711.0, \"bisect_newer\": [\"a\"], \"bisect_older\": [\"c\"], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -44,7 +44,7 @@
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711, @@@",
+      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711.0, @@@",
       "@@@STEP_LOG_LINE@request@          \"bisect_newer\": [@@@",
       "@@@STEP_LOG_LINE@request@            \"a\"@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
@@ -78,7 +78,7 @@
     ],
     "infra_step": true,
     "name": "schedule bisect (d)",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"d\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711, \"bisect_newer\": [\"c\"], \"bisect_older\": [\"e\"], \"bisect_reason\": \"different failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"d\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711.0, \"bisect_newer\": [\"c\"], \"bisect_older\": [\"e\"], \"bisect_reason\": \"different failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -114,7 +114,7 @@
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711, @@@",
+      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711.0, @@@",
       "@@@STEP_LOG_LINE@request@          \"bisect_newer\": [@@@",
       "@@@STEP_LOG_LINE@request@            \"c\"@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
diff --git a/recipe_modules/bisect_build/tests/tests.expected/start-experimental-bisection.json b/recipe_modules/bisect_build/tests/tests.expected/start-experimental-bisection.json
index 740acd1..b4d7c38 100644
--- a/recipe_modules/bisect_build/tests/tests.expected/start-experimental-bisection.json
+++ b/recipe_modules/bisect_build/tests/tests.expected/start-experimental-bisection.json
@@ -144,7 +144,7 @@
     ],
     "infra_step": true,
     "name": "schedule bisect (f4d35da881f8fd329a4d3e01dd78b66a502d5c49)",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"YES\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"f4d35da881f8fd329a4d3e01dd78b66a502d5c49\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 2, \"bisect_newer\": [\"8331c527346abecfe0ad081df241512bb4b7df50\"], \"bisect_older\": [], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"YES\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"f4d35da881f8fd329a4d3e01dd78b66a502d5c49\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 2.0, \"bisect_newer\": [\"8331c527346abecfe0ad081df241512bb4b7df50\"], \"bisect_older\": [], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -180,7 +180,7 @@
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 2, @@@",
+      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 2.0, @@@",
       "@@@STEP_LOG_LINE@request@          \"bisect_newer\": [@@@",
       "@@@STEP_LOG_LINE@request@            \"8331c527346abecfe0ad081df241512bb4b7df50\"@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
diff --git a/recipe_modules/bisect_build/tests/tests.expected/starts bisection.json b/recipe_modules/bisect_build/tests/tests.expected/starts bisection.json
index fd50e1c..b084995 100644
--- a/recipe_modules/bisect_build/tests/tests.expected/starts bisection.json
+++ b/recipe_modules/bisect_build/tests/tests.expected/starts bisection.json
@@ -144,7 +144,7 @@
     ],
     "infra_step": true,
     "name": "schedule bisect (f4d35da881f8fd329a4d3e01dd78b66a502d5c49)",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"f4d35da881f8fd329a4d3e01dd78b66a502d5c49\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 2, \"bisect_newer\": [\"8331c527346abecfe0ad081df241512bb4b7df50\"], \"bisect_older\": [], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"builder\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"f4d35da881f8fd329a4d3e01dd78b66a502d5c49\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 2.0, \"bisect_newer\": [\"8331c527346abecfe0ad081df241512bb4b7df50\"], \"bisect_older\": [], \"bisect_reason\": \"failure\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -180,7 +180,7 @@
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 2, @@@",
+      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 2.0, @@@",
       "@@@STEP_LOG_LINE@request@          \"bisect_newer\": [@@@",
       "@@@STEP_LOG_LINE@request@            \"8331c527346abecfe0ad081df241512bb4b7df50\"@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
diff --git a/recipes/dart/cbuild.expected/with-results.json b/recipes/dart/cbuild.expected/with-results.json
index 1ba3e46..dd69225 100644
--- a/recipes/dart/cbuild.expected/with-results.json
+++ b/recipes/dart/cbuild.expected/with-results.json
@@ -379,7 +379,8 @@
       "@@@STEP_LOG_LINE@json.input@  }, @@@",
       "@@@STEP_LOG_LINE@json.input@  \"revision_id\": \"current\"@@@",
       "@@@STEP_LOG_LINE@json.input@}@@@",
-      "@@@STEP_LOG_END@json.input@@@"
+      "@@@STEP_LOG_END@json.input@@@",
+      "@@@STEP_LINK@gerrit link@https://dart-review.googlesource.com/q/Ihash-of-success@@@"
     ]
   },
   {
@@ -456,7 +457,8 @@
       "@@@STEP_LOG_LINE@json.input@  }, @@@",
       "@@@STEP_LOG_LINE@json.input@  \"revision_id\": \"current\"@@@",
       "@@@STEP_LOG_LINE@json.input@}@@@",
-      "@@@STEP_LOG_END@json.input@@@"
+      "@@@STEP_LOG_END@json.input@@@",
+      "@@@STEP_LINK@gerrit link@https://dart-review.googlesource.com/q/Ihash-of-regression@@@"
     ]
   },
   {
@@ -533,7 +535,8 @@
       "@@@STEP_LOG_LINE@json.input@  }, @@@",
       "@@@STEP_LOG_LINE@json.input@  \"revision_id\": \"current\"@@@",
       "@@@STEP_LOG_LINE@json.input@}@@@",
-      "@@@STEP_LOG_END@json.input@@@"
+      "@@@STEP_LOG_END@json.input@@@",
+      "@@@STEP_LINK@gerrit link@https://dart-review.googlesource.com/q/Ihash-of-presubmit@@@"
     ]
   },
   {
@@ -610,7 +613,8 @@
       "@@@STEP_LOG_LINE@json.input@  }, @@@",
       "@@@STEP_LOG_LINE@json.input@  \"revision_id\": \"current\"@@@",
       "@@@STEP_LOG_LINE@json.input@}@@@",
-      "@@@STEP_LOG_END@json.input@@@"
+      "@@@STEP_LOG_END@json.input@@@",
+      "@@@STEP_LINK@gerrit link@https://dart-review.googlesource.com/q/Ihash-of-failure@@@"
     ]
   },
   {
@@ -687,7 +691,8 @@
       "@@@STEP_LOG_LINE@json.input@  }, @@@",
       "@@@STEP_LOG_LINE@json.input@  \"revision_id\": \"current\"@@@",
       "@@@STEP_LOG_LINE@json.input@}@@@",
-      "@@@STEP_LOG_END@json.input@@@"
+      "@@@STEP_LOG_END@json.input@@@",
+      "@@@STEP_LINK@gerrit link@https://dart-review.googlesource.com/q/Ihash-of-branch@@@"
     ]
   },
   {
diff --git a/recipes/dart/flutter_engine.expected/continue-bisect-on-success.json b/recipes/dart/flutter_engine.expected/continue-bisect-on-success.json
index 4f3010f..b031ada 100644
--- a/recipes/dart/flutter_engine.expected/continue-bisect-on-success.json
+++ b/recipes/dart/flutter_engine.expected/continue-bisect-on-success.json
@@ -8,7 +8,7 @@
     ],
     "infra_step": true,
     "name": "schedule bisect (b)",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"flutter-engine-linux\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"b\", \"project\": \"linear_sdk_flutter_engine\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711, \"bisect_newer\": [\"a\"], \"bisect_older\": [\"c\"], \"bisect_reason\": \"Infra Failure: Step('everything') (retcode: 1)\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"flutter-engine-linux\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"b\", \"project\": \"linear_sdk_flutter_engine\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4711.0, \"bisect_newer\": [\"a\"], \"bisect_older\": [\"c\"], \"bisect_reason\": \"Infra Failure: Step('everything') (retcode: 1)\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -44,7 +44,7 @@
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711, @@@",
+      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4711.0, @@@",
       "@@@STEP_LOG_LINE@request@          \"bisect_newer\": [@@@",
       "@@@STEP_LOG_LINE@request@            \"a\"@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
diff --git a/recipes/dart/flutter_engine.expected/start-bisect.json b/recipes/dart/flutter_engine.expected/start-bisect.json
index 3eac476..a387273 100644
--- a/recipes/dart/flutter_engine.expected/start-bisect.json
+++ b/recipes/dart/flutter_engine.expected/start-bisect.json
@@ -160,7 +160,7 @@
     ],
     "infra_step": true,
     "name": "schedule bisect (f4d35da881f8fd329a4d3e01dd78b66a502d5c49)",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"flutter-engine-linux\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"f4d35da881f8fd329a4d3e01dd78b66a502d5c49\", \"project\": \"linear_sdk_flutter_engine\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4710, \"bisect_newer\": [\"8331c527346abecfe0ad081df241512bb4b7df50\"], \"bisect_older\": [], \"bisect_reason\": \"Infra Failure: Step('everything') (retcode: 1)\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"flutter-engine-linux\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"f4d35da881f8fd329a4d3e01dd78b66a502d5c49\", \"project\": \"linear_sdk_flutter_engine\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4710.0, \"bisect_newer\": [\"8331c527346abecfe0ad081df241512bb4b7df50\"], \"bisect_older\": [], \"bisect_reason\": \"Infra Failure: Step('everything') (retcode: 1)\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -196,7 +196,7 @@
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4710, @@@",
+      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4710.0, @@@",
       "@@@STEP_LOG_LINE@request@          \"bisect_newer\": [@@@",
       "@@@STEP_LOG_LINE@request@            \"8331c527346abecfe0ad081df241512bb4b7df50\"@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",
diff --git a/recipes/dart/neo.expected/failing-test-step-starts-bisection.json b/recipes/dart/neo.expected/failing-test-step-starts-bisection.json
index f26fda3..6e113f0 100644
--- a/recipes/dart/neo.expected/failing-test-step-starts-bisection.json
+++ b/recipes/dart/neo.expected/failing-test-step-starts-bisection.json
@@ -1883,7 +1883,7 @@
     ],
     "infra_step": true,
     "name": "schedule bisect (f4d35da881f8fd329a4d3e01dd78b66a502d5c49)",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"dart2js-win-debug-x64-firefox\", \"project\": \"dart\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"f4d35da881f8fd329a4d3e01dd78b66a502d5c49\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4710, \"bisect_newer\": [\"8331c527346abecfe0ad081df241512bb4b7df50\"], \"bisect_older\": [], \"bisect_reason\": \"1 out of 1 aggregated steps failed: Step('test results') (retcode: 1)\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"dart2js-win-debug-x64-firefox\", \"project\": \"dart\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"f4d35da881f8fd329a4d3e01dd78b66a502d5c49\", \"project\": \"sdk\", \"ref\": \"refs/heads/master\"}, \"priority\": 30, \"properties\": {\"bisect_base_build\": 4710.0, \"bisect_newer\": [\"8331c527346abecfe0ad081df241512bb4b7df50\"], \"bisect_older\": [], \"bisect_reason\": \"1 out of 1 aggregated steps failed: Step('test results') (retcode: 1)\", \"bisection_enabled\": true}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -1919,7 +1919,7 @@
       "@@@STEP_LOG_LINE@request@        }, @@@",
       "@@@STEP_LOG_LINE@request@        \"priority\": 30, @@@",
       "@@@STEP_LOG_LINE@request@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4710, @@@",
+      "@@@STEP_LOG_LINE@request@          \"bisect_base_build\": 4710.0, @@@",
       "@@@STEP_LOG_LINE@request@          \"bisect_newer\": [@@@",
       "@@@STEP_LOG_LINE@request@            \"8331c527346abecfe0ad081df241512bb4b7df50\"@@@",
       "@@@STEP_LOG_LINE@request@          ], @@@",