Roll recipe dependencies (nontrivial).

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

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

Please review the expectation changes, and LGTM+CQ.

recipe_engine:
https://chromium.googlesource.com/infra/luci/recipes-py/+/bc823506675bfff173e2af808db497d7c11a484c
  bc82350 (iannucci@chromium.org)
      [recipe_engine] Switch recipes to execute with python3.11.

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=mohrr@google.com, tpudlik@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I8b6f8506b8771e54dd7e14a55a6a6639c50a9f33
Reviewed-on: https://pigweed-review.googlesource.com/c/infra/recipes/+/178814
Reviewed-by: Rob Mohr <mohrr@google.com>
Commit-Queue: Rob Mohr <mohrr@google.com>
Commit-Queue: Recipe Deps Roller <recipe-deps-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com>
diff --git a/infra/config/recipes.cfg b/infra/config/recipes.cfg
index 8337c06..afa16c2 100644
--- a/infra/config/recipes.cfg
+++ b/infra/config/recipes.cfg
@@ -17,12 +17,12 @@
   "deps": {
     "fuchsia": {
       "branch": "refs/heads/main",
-      "revision": "276eda827239cbf4593b6faf232065c1a1946ce2",
+      "revision": "273ee7a2f9f2c561e92347a22a5c3d7c9bc2c401",
       "url": "https://fuchsia.googlesource.com/infra/recipes"
     },
     "recipe_engine": {
       "branch": "refs/heads/main",
-      "revision": "e5bce86f12044503e2fb9ff84bbbb0b4119871b9",
+      "revision": "bc823506675bfff173e2af808db497d7c11a484c",
       "url": "https://chromium.googlesource.com/infra/luci/recipes-py"
     }
   },
diff --git a/recipe_modules/pw_presubmit/tests/full.expected/substep.json b/recipe_modules/pw_presubmit/tests/full.expected/substep.json
index 5a17f49..6186884 100644
--- a/recipe_modules/pw_presubmit/tests/full.expected/substep.json
+++ b/recipe_modules/pw_presubmit/tests/full.expected/substep.json
@@ -1040,20 +1040,34 @@
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_TEXT@1 deferred failures@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@Traceback (most recent call last):@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_modules/defer/api.py\", in __call__@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@    return DeferredResult(_api=self.m, _value=func(*args, **kwargs))@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@                                              ^^^^^^^^^^^^^^^^^^^^^@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@    return func(*a, **kw)@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@           ^^^^^^^^^^^^^^@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@  File \"RECIPE_REPO[pigweed]/recipe_modules/pw_presubmit/api.py\", line 229, in _run@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@    return self.m.step(name, cmd, **kwargs)@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@    return func(*a, **kw)@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@           ^^^^^^^^^^^^^^@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_modules/step/api.py\", in __call__@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@    return self._run_or_raise_step(@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@           ^^^^^^^^^^^^^^^^^^^^^^^^@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_modules/step/api.py\", in _run_or_raise_step@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@    return self._raise_on_disallowed_statuses(ret, allowed_statuses)@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_modules/step/api.py\", in _raise_on_disallowed_statuses@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@    raise exc('.'.join(result.name_tokens), result)@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@recipe_engine.recipe_api.StepFailure: Step('composite.substep2') (retcode: 1)@@@",
       "@@@STEP_LOG_END@StepFailure(\"Step('composite.substep2') (retcode: 1)\")@@@",
       "@@@STEP_FAILURE@@@"
diff --git a/recipes/envtest.expected/fail.json b/recipes/envtest.expected/fail.json
index bfb0a8a..68a8879 100644
--- a/recipes/envtest.expected/fail.json
+++ b/recipes/envtest.expected/fail.json
@@ -2411,16 +2411,26 @@
     "~followup_annotations": [
       "@@@STEP_TEXT@1 deferred failures@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@Traceback (most recent call last):@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_modules/defer/api.py\", in __call__@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@    return DeferredResult(_api=self.m, _value=func(*args, **kwargs))@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@                                              ^^^^^^^^^^^^^^^^^^^^^@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_engine/recipe_api.py\", in _inner@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@    return func(*a, **kw)@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@           ^^^^^^^^^^^^^^@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_modules/step/api.py\", in __call__@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@    return self._run_or_raise_step(@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@           ^^^^^^^^^^^^^^^^^^^^^^^^@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_modules/step/api.py\", in _run_or_raise_step@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@    return self._raise_on_disallowed_statuses(ret, allowed_statuses)@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@  File \"RECIPE_REPO[recipe_engine]/recipe_modules/step/api.py\", in _raise_on_disallowed_statuses@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@    raise exc('.'.join(result.name_tokens), result)@@@",
+      "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@@@@",
       "@@@STEP_LOG_LINE@StepFailure(\"Step('run.sh') (retcode: 1)\")@recipe_engine.recipe_api.StepFailure: Step('run.sh') (retcode: 1)@@@",
       "@@@STEP_LOG_END@StepFailure(\"Step('run.sh') (retcode: 1)\")@@@",
       "@@@STEP_FAILURE@@@"