@ -3,57 +3,56 @@
## Table of Contents
**[Recipe Modules](#Recipe-Modules)**
* [bot_update ](#recipe_modules-bot_update ) (Python3 ✅) — Recipe module to ensure a checkout is consistent on a bot.
* [depot_tools ](#recipe_modules-depot_tools ) (Python3 ✅) — The `depot_tools` module provides safe functions to access paths within the depot_tools repo.
* [gclient ](#recipe_modules-gclient ) (Python3 ✅)
* [gerrit ](#recipe_modules-gerrit ) (Python3 ✅)
* [git ](#recipe_modules-git ) (Python3 ✅)
* [git_cl ](#recipe_modules-git_cl ) (Python3 ✅)
* [gitiles ](#recipe_modules-gitiles ) (Python3 ✅)
* [gsutil ](#recipe_modules-gsutil ) (Python3 ✅)
* [osx_sdk ](#recipe_modules-osx_sdk ) (Python3 ✅) — The `osx_sdk` module provides safe functions to access a semi-hermetic XCode installation.
* [presubmit ](#recipe_modules-presubmit ) (Python3 ✅)
* [tryserver ](#recipe_modules-tryserver ) (Python3 ✅)
* [windows_sdk ](#recipe_modules-windows_sdk ) (Python3 ✅) — The `windows_sdk` module provides safe functions to access a hermetic Microsoft Visual Studio installation which is derived from Chromium's MSVC toolchain.
* [bot_update ](#recipe_modules-bot_update ) — Recipe module to ensure a checkout is consistent on a bot.
* [depot_tools ](#recipe_modules-depot_tools ) — The `depot_tools` module provides safe functions to access paths within the depot_tools repo.
* [gclient ](#recipe_modules-gclient )
* [gerrit ](#recipe_modules-gerrit )
* [git ](#recipe_modules-git )
* [git_cl ](#recipe_modules-git_cl )
* [gitiles ](#recipe_modules-gitiles )
* [gsutil ](#recipe_modules-gsutil )
* [osx_sdk ](#recipe_modules-osx_sdk ) — The `osx_sdk` module provides safe functions to access a semi-hermetic XCode installation.
* [presubmit ](#recipe_modules-presubmit )
* [tryserver ](#recipe_modules-tryserver )
* [windows_sdk ](#recipe_modules-windows_sdk ) — The `windows_sdk` module provides safe functions to access a hermetic Microsoft Visual Studio installation which is derived from Chromium's MSVC toolchain.
**[Recipes](#Recipes)**
* [bot_update:examples/full ](#recipes-bot_update_examples_full ) (Python3 ✅)
* [bot_update:tests/do_not_retry_patch_failures_in_cq ](#recipes-bot_update_tests_do_not_retry_patch_failures_in_cq ) (Python3 ✅)
* [bot_update:tests/download_topics ](#recipes-bot_update_tests_download_topics ) (Python3 ✅)
* [bot_update:tests/ensure_checkout ](#recipes-bot_update_tests_ensure_checkout ) (Python3 ✅)
* [depot_tools:examples/full ](#recipes-depot_tools_examples_full ) (Python3 ✅)
* [gclient:examples/full ](#recipes-gclient_examples_full ) (Python3 ✅)
* [gclient:tests/diff_deps ](#recipes-gclient_tests_diff_deps ) (Python3 ✅)
* [gclient:tests/patch_project ](#recipes-gclient_tests_patch_project ) (Python3 ✅)
* [gclient:tests/sync_failure ](#recipes-gclient_tests_sync_failure ) (Python3 ✅)
* [gerrit:examples/full ](#recipes-gerrit_examples_full ) (Python3 ✅)
* [git:examples/full ](#recipes-git_examples_full ) (Python3 ✅)
* [git:tests/number ](#recipes-git_tests_number ) (Python3 ✅)
* [git_cl:examples/full ](#recipes-git_cl_examples_full ) (Python3 ✅)
* [gitiles:examples/full ](#recipes-gitiles_examples_full ) (Python3 ✅)
* [gitiles:tests/parse_repo_url ](#recipes-gitiles_tests_parse_repo_url ) (Python3 ✅)
* [gsutil:examples/custom_boto ](#recipes-gsutil_examples_custom_boto ) (Python3 ✅)
* [gsutil:examples/full ](#recipes-gsutil_examples_full ) (Python3 ✅)
* [osx_sdk:examples/full ](#recipes-osx_sdk_examples_full ) (Python3 ✅)
* [presubmit:examples/full ](#recipes-presubmit_examples_full ) (Python3 ✅)
* [presubmit:tests/execute ](#recipes-presubmit_tests_execute ) (Python3 ✅)
* [presubmit:tests/prepare ](#recipes-presubmit_tests_prepare ) (Python3 ✅)
* [tryserver:examples/full ](#recipes-tryserver_examples_full ) (Python3 ✅)
* [tryserver:tests/gerrit_change_fetch_ref_timeout ](#recipes-tryserver_tests_gerrit_change_fetch_ref_timeout ) (Python3 ✅)
* [tryserver:tests/gerrit_change_owner ](#recipes-tryserver_tests_gerrit_change_owner ) (Python3 ✅)
* [tryserver:tests/gerrit_change_target_ref ](#recipes-tryserver_tests_gerrit_change_target_ref ) (Python3 ✅)
* [tryserver:tests/get_change_description ](#recipes-tryserver_tests_get_change_description ) (Python3 ✅)
* [tryserver:tests/get_files_affected_by_patch ](#recipes-tryserver_tests_get_files_affected_by_patch ) (Python3 ✅)
* [tryserver:tests/get_footers ](#recipes-tryserver_tests_get_footers ) (Python3 ✅)
* [tryserver:tests/require_is_tryserver ](#recipes-tryserver_tests_require_is_tryserver ) (Python3 ✅)
* [windows_sdk:examples/full ](#recipes-windows_sdk_examples_full ) (Python3 ✅)
* [bot_update:examples/full ](#recipes-bot_update_examples_full )
* [bot_update:tests/do_not_retry_patch_failures_in_cq ](#recipes-bot_update_tests_do_not_retry_patch_failures_in_cq )
* [bot_update:tests/download_topics ](#recipes-bot_update_tests_download_topics )
* [bot_update:tests/ensure_checkout ](#recipes-bot_update_tests_ensure_checkout )
* [depot_tools:examples/full ](#recipes-depot_tools_examples_full )
* [gclient:examples/full ](#recipes-gclient_examples_full )
* [gclient:tests/diff_deps ](#recipes-gclient_tests_diff_deps )
* [gclient:tests/patch_project ](#recipes-gclient_tests_patch_project )
* [gclient:tests/sync_failure ](#recipes-gclient_tests_sync_failure )
* [gerrit:examples/full ](#recipes-gerrit_examples_full )
* [git:examples/full ](#recipes-git_examples_full )
* [git:tests/number ](#recipes-git_tests_number )
* [git_cl:examples/full ](#recipes-git_cl_examples_full )
* [gitiles:examples/full ](#recipes-gitiles_examples_full )
* [gitiles:tests/parse_repo_url ](#recipes-gitiles_tests_parse_repo_url )
* [gsutil:examples/custom_boto ](#recipes-gsutil_examples_custom_boto )
* [gsutil:examples/full ](#recipes-gsutil_examples_full )
* [osx_sdk:examples/full ](#recipes-osx_sdk_examples_full )
* [presubmit:examples/full ](#recipes-presubmit_examples_full )
* [presubmit:tests/execute ](#recipes-presubmit_tests_execute )
* [presubmit:tests/prepare ](#recipes-presubmit_tests_prepare )
* [tryserver:examples/full ](#recipes-tryserver_examples_full )
* [tryserver:tests/gerrit_change_fetch_ref_timeout ](#recipes-tryserver_tests_gerrit_change_fetch_ref_timeout )
* [tryserver:tests/gerrit_change_owner ](#recipes-tryserver_tests_gerrit_change_owner )
* [tryserver:tests/gerrit_change_target_ref ](#recipes-tryserver_tests_gerrit_change_target_ref )
* [tryserver:tests/get_change_description ](#recipes-tryserver_tests_get_change_description )
* [tryserver:tests/get_files_affected_by_patch ](#recipes-tryserver_tests_get_files_affected_by_patch )
* [tryserver:tests/get_footers ](#recipes-tryserver_tests_get_footers )
* [tryserver:tests/require_is_tryserver ](#recipes-tryserver_tests_require_is_tryserver )
* [windows_sdk:examples/full ](#recipes-windows_sdk_examples_full )
## Recipe Modules
### *recipe_modules* / [bot\_update ](/recipes/recipe_modules/bot_update )
[DEPS ](/recipes/recipe_modules/bot_update/__init__.py#3 ): [depot\_tools ](#recipe_modules-depot_tools ), [gclient ](#recipe_modules-gclient ), [gerrit ](#recipe_modules-gerrit ), [gitiles ](#recipe_modules-gitiles ), [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/commit\_position][recipe_engine/recipe_modules/commit_position], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/cq][recipe_engine/recipe_modules/cq], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/milo][recipe_engine/recipe_modules/milo], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
Recipe module to ensure a checkout is consistent on a bot.
@ -123,7 +122,6 @@ properties.
[DEPS ](/recipes/recipe_modules/depot_tools/__init__.py#7 ): [recipe\_engine/cipd][recipe_engine/recipe_modules/cipd], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime]
PYTHON_VERSION_COMPATIBILITY: PY3
The `depot_tools` module provides safe functions to access paths within
the depot_tools repo.
@ -160,7 +158,6 @@ Returns (Path): The "depot_tools" root directory.
[DEPS ](/recipes/recipe_modules/gclient/__init__.py#3 ): [git ](#recipe_modules-git ), [gitiles ](#recipe_modules-gitiles ), [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
#### **class [GclientApi ](/recipes/recipe_modules/gclient/api.py#77 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
@ -244,7 +241,6 @@ revision map. This doesn't overwrite the revision if it was already set.
[DEPS ](/recipes/recipe_modules/gerrit/__init__.py#3 ): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time]
PYTHON_VERSION_COMPATIBILITY: PY3
#### **class [GerritApi ](/recipes/recipe_modules/gerrit/api.py#7 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
@ -383,7 +379,6 @@ Returns:
[DEPS ](/recipes/recipe_modules/git/__init__.py#3 ): [depot\_tools ](#recipe_modules-depot_tools ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
#### **class [GitApi ](/recipes/recipe_modules/git/api.py#19 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
@ -527,7 +522,6 @@ Args:
[DEPS ](/recipes/recipe_modules/git_cl/__init__.py#3 ): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
#### **class [GitClApi ](/recipes/recipe_modules/git_cl/api.py#9 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
@ -546,7 +540,6 @@ PYTHON_VERSION_COMPATIBILITY: PY3
[DEPS ](/recipes/recipe_modules/gitiles/__init__.py#7 ): [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/url][recipe_engine/recipe_modules/url]
PYTHON_VERSION_COMPATIBILITY: PY3
#### **class [Gitiles ](/recipes/recipe_modules/gitiles/api.py#18 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
@ -637,7 +630,6 @@ Generates a Gitiles repo URL. See also parse_repo_url.
[DEPS ](/recipes/recipe_modules/gsutil/__init__.py#5 ): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
#### **class [GSUtilApi ](/recipes/recipe_modules/gsutil/api.py#10 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
@ -696,7 +688,6 @@ Args:
[DEPS ](/recipes/recipe_modules/osx_sdk/__init__.py#7 ): [recipe\_engine/cipd][recipe_engine/recipe_modules/cipd], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/version][recipe_engine/recipe_modules/version]
PYTHON_VERSION_COMPATIBILITY: PY3
The `osx_sdk` module provides safe functions to access a semi-hermetic
XCode installation.
@ -760,7 +751,6 @@ Raises:
[DEPS ](/recipes/recipe_modules/presubmit/__init__.py#13 ): [bot\_update ](#recipe_modules-bot_update ), [depot\_tools ](#recipe_modules-depot_tools ), [gclient ](#recipe_modules-gclient ), [git ](#recipe_modules-git ), [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/cq][recipe_engine/recipe_modules/cq], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/resultdb][recipe_engine/recipe_modules/resultdb], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
#### **class [PresubmitApi ](/recipes/recipe_modules/presubmit/api.py#16 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
@ -801,7 +791,6 @@ Returns:
[DEPS ](/recipes/recipe_modules/tryserver/__init__.py#7 ): [gerrit ](#recipe_modules-gerrit ), [git ](#recipe_modules-git ), [git\_cl ](#recipe_modules-git_cl ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/led][recipe_engine/recipe_modules/led], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
#### **class [TryserverApi ](/recipes/recipe_modules/tryserver/api.py#27 )([RecipeApi][recipe_engine/wkt/RecipeApi]):**
@ -967,7 +956,6 @@ timeout.
[DEPS ](/recipes/recipe_modules/windows_sdk/__init__.py#7 ): [recipe\_engine/cipd][recipe_engine/recipe_modules/cipd], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
The `windows_sdk` module provides safe functions to access a hermetic
Microsoft Visual Studio installation which is derived from Chromium's MSVC
@ -1010,119 +998,102 @@ Raises:
[DEPS ](/recipes/recipe_modules/bot_update/examples/full.py#9 ): [bot\_update ](#recipe_modules-bot_update ), [gclient ](#recipe_modules-gclient ), [gerrit ](#recipe_modules-gerrit ), [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/bot_update/examples/full.py#27 )(api):**
### *recipes* / [bot\_update:tests/do\_not\_retry\_patch\_failures\_in\_cq ](/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py )
[DEPS ](/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py#9 ): [bot\_update ](#recipe_modules-bot_update ), [gclient ](#recipe_modules-gclient ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/cq][recipe_engine/recipe_modules/cq], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py#19 )(api):**
### *recipes* / [bot\_update:tests/download\_topics ](/recipes/recipe_modules/bot_update/tests/download_topics.py )
[DEPS ](/recipes/recipe_modules/bot_update/tests/download_topics.py#9 ): [bot\_update ](#recipe_modules-bot_update ), [gclient ](#recipe_modules-gclient ), [recipe\_engine/json][recipe_engine/recipe_modules/json]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/bot_update/tests/download_topics.py#16 )(api):**
### *recipes* / [bot\_update:tests/ensure\_checkout ](/recipes/recipe_modules/bot_update/tests/ensure_checkout.py )
[DEPS ](/recipes/recipe_modules/bot_update/tests/ensure_checkout.py#9 ): [bot\_update ](#recipe_modules-bot_update ), [gclient ](#recipe_modules-gclient ), [recipe\_engine/json][recipe_engine/recipe_modules/json]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/bot_update/tests/ensure_checkout.py#16 )(api):**
### *recipes* / [depot\_tools:examples/full ](/recipes/recipe_modules/depot_tools/examples/full.py )
[DEPS ](/recipes/recipe_modules/depot_tools/examples/full.py#7 ): [depot\_tools ](#recipe_modules-depot_tools ), [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/depot_tools/examples/full.py#16 )(api):**
### *recipes* / [gclient:examples/full ](/recipes/recipe_modules/gclient/examples/full.py )
[DEPS ](/recipes/recipe_modules/gclient/examples/full.py#7 ): [gclient ](#recipe_modules-gclient ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/gclient/examples/full.py#69 )(api):**
### *recipes* / [gclient:tests/diff\_deps ](/recipes/recipe_modules/gclient/tests/diff_deps.py )
[DEPS ](/recipes/recipe_modules/gclient/tests/diff_deps.py#10 ): [gclient ](#recipe_modules-gclient ), [recipe\_engine/assertions][recipe_engine/recipe_modules/assertions], [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/gclient/tests/diff_deps.py#21 )(api):**
### *recipes* / [gclient:tests/patch\_project ](/recipes/recipe_modules/gclient/tests/patch_project.py )
[DEPS ](/recipes/recipe_modules/gclient/tests/patch_project.py#11 ): [gclient ](#recipe_modules-gclient ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/gclient/tests/patch_project.py#20 )(api):**
### *recipes* / [gclient:tests/sync\_failure ](/recipes/recipe_modules/gclient/tests/sync_failure.py )
[DEPS ](/recipes/recipe_modules/gclient/tests/sync_failure.py#9 ): [gclient ](#recipe_modules-gclient ), [recipe\_engine/path][recipe_engine/recipe_modules/path]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/gclient/tests/sync_failure.py#15 )(api):**
### *recipes* / [gerrit:examples/full ](/recipes/recipe_modules/gerrit/examples/full.py )
[DEPS ](/recipes/recipe_modules/gerrit/examples/full.py#7 ): [gerrit ](#recipe_modules-gerrit ), [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/gerrit/examples/full.py#13 )(api):**
### *recipes* / [git:examples/full ](/recipes/recipe_modules/git/examples/full.py )
[DEPS ](/recipes/recipe_modules/git/examples/full.py#7 ): [git ](#recipe_modules-git ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/git/examples/full.py#20 )(api):**
### *recipes* / [git:tests/number ](/recipes/recipe_modules/git/tests/number.py )
[DEPS ](/recipes/recipe_modules/git/tests/number.py#9 ): [git ](#recipe_modules-git ), [recipe\_engine/assertions][recipe_engine/recipe_modules/assertions], [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/git/tests/number.py#16 )(api):**
### *recipes* / [git\_cl:examples/full ](/recipes/recipe_modules/git_cl/examples/full.py )
[DEPS ](/recipes/recipe_modules/git_cl/examples/full.py#11 ): [git\_cl ](#recipe_modules-git_cl ), [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/git_cl/examples/full.py#19 )(api):**
### *recipes* / [gitiles:examples/full ](/recipes/recipe_modules/gitiles/examples/full.py )
[DEPS ](/recipes/recipe_modules/gitiles/examples/full.py#7 ): [gitiles ](#recipe_modules-gitiles ), [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/gitiles/examples/full.py#16 )(api):**
### *recipes* / [gitiles:tests/parse\_repo\_url ](/recipes/recipe_modules/gitiles/tests/parse_repo_url.py )
[DEPS ](/recipes/recipe_modules/gitiles/tests/parse_repo_url.py#9 ): [gitiles ](#recipe_modules-gitiles ), [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/gitiles/tests/parse_repo_url.py#16 )(api):**
### *recipes* / [gsutil:examples/custom\_boto ](/recipes/recipe_modules/gsutil/examples/custom_boto.py )
[DEPS ](/recipes/recipe_modules/gsutil/examples/custom_boto.py#10 ): [gsutil ](#recipe_modules-gsutil ), [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/gsutil/examples/custom_boto.py#21 )(api, boto_configs):**
### *recipes* / [gsutil:examples/full ](/recipes/recipe_modules/gsutil/examples/full.py )
[DEPS ](/recipes/recipe_modules/gsutil/examples/full.py#7 ): [gsutil ](#recipe_modules-gsutil ), [recipe\_engine/path][recipe_engine/recipe_modules/path]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/gsutil/examples/full.py#13 )(api):**
@ -1131,112 +1102,99 @@ Move things around in a loop!
[DEPS ](/recipes/recipe_modules/osx_sdk/examples/full.py#7 ): [osx\_sdk ](#recipe_modules-osx_sdk ), [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/osx_sdk/examples/full.py#15 )(api):**
### *recipes* / [presubmit:examples/full ](/recipes/recipe_modules/presubmit/examples/full.py )
[DEPS ](/recipes/recipe_modules/presubmit/examples/full.py#7 ): [presubmit ](#recipe_modules-presubmit ), [recipe\_engine/json][recipe_engine/recipe_modules/json]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/presubmit/examples/full.py#13 )(api):**
### *recipes* / [presubmit:tests/execute ](/recipes/recipe_modules/presubmit/tests/execute.py )
[DEPS ](/recipes/recipe_modules/presubmit/tests/execute.py#12 ): [gclient ](#recipe_modules-gclient ), [presubmit ](#recipe_modules-presubmit ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/cq][recipe_engine/recipe_modules/cq], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/presubmit/tests/execute.py#25 )(api):**
### *recipes* / [presubmit:tests/prepare ](/recipes/recipe_modules/presubmit/tests/prepare.py )
[DEPS ](/recipes/recipe_modules/presubmit/tests/prepare.py#11 ): [gclient ](#recipe_modules-gclient ), [presubmit ](#recipe_modules-presubmit ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/presubmit/tests/prepare.py#28 )(api, patch_project, patch_repository_url):**
### *recipes* / [tryserver:examples/full ](/recipes/recipe_modules/tryserver/examples/full.py )
[DEPS ](/recipes/recipe_modules/tryserver/examples/full.py#7 ): [gerrit ](#recipe_modules-gerrit ), [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/tryserver/examples/full.py#22 )(api):**
### *recipes* / [tryserver:tests/gerrit\_change\_fetch\_ref\_timeout ](/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py )
[DEPS ](/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py#9 ): [gerrit ](#recipe_modules-gerrit ), [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py#17 )(api):**
### *recipes* / [tryserver:tests/gerrit\_change\_owner ](/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py )
[DEPS ](/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py#10 ): [gerrit ](#recipe_modules-gerrit ), [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py#18 )(api):**
### *recipes* / [tryserver:tests/gerrit\_change\_target\_ref ](/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py )
[DEPS ](/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py#9 ): [gerrit ](#recipe_modules-gerrit ), [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py#18 )(api):**
### *recipes* / [tryserver:tests/get\_change\_description ](/recipes/recipe_modules/tryserver/tests/get_change_description.py )
[DEPS ](/recipes/recipe_modules/tryserver/tests/get_change_description.py#10 ): [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/tryserver/tests/get_change_description.py#17 )(api):**
### *recipes* / [tryserver:tests/get\_files\_affected\_by\_patch ](/recipes/recipe_modules/tryserver/tests/get_files_affected_by_patch.py )
[DEPS ](/recipes/recipe_modules/tryserver/tests/get_files_affected_by_patch.py#9 ): [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/assertions][recipe_engine/recipe_modules/assertions], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/tryserver/tests/get_files_affected_by_patch.py#18 )(api):**
### *recipes* / [tryserver:tests/get\_footers ](/recipes/recipe_modules/tryserver/tests/get_footers.py )
[DEPS ](/recipes/recipe_modules/tryserver/tests/get_footers.py#9 ): [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/assertions][recipe_engine/recipe_modules/assertions], [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/tryserver/tests/get_footers.py#19 )(api):**
### *recipes* / [tryserver:tests/require\_is\_tryserver ](/recipes/recipe_modules/tryserver/tests/require_is_tryserver.py )
[DEPS ](/recipes/recipe_modules/tryserver/tests/require_is_tryserver.py#12 ): [tryserver ](#recipe_modules-tryserver ), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/tryserver/tests/require_is_tryserver.py#19 )(api):**
### *recipes* / [windows\_sdk:examples/full ](/recipes/recipe_modules/windows_sdk/examples/full.py )
[DEPS ](/recipes/recipe_modules/windows_sdk/examples/full.py#7 ): [windows\_sdk ](#recipe_modules-windows_sdk ), [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]
PYTHON_VERSION_COMPATIBILITY: PY3
— **def [RunSteps ](/recipes/recipe_modules/windows_sdk/examples/full.py#16 )(api):**
[recipe_engine/recipe_modules/assertions]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-assertions
[recipe_engine/recipe_modules/buildbucket]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-buildbucket
[recipe_engine/recipe_modules/cipd]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-cipd
[recipe_engine/recipe_modules/commit_position]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-commit_position
[recipe_engine/recipe_modules/context]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-context
[recipe_engine/recipe_modules/cq]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-cq
[recipe_engine/recipe_modules/file]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-file
[recipe_engine/recipe_modules/json]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-json
[recipe_engine/recipe_modules/led]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-led
[recipe_engine/recipe_modules/milo]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-milo
[recipe_engine/recipe_modules/path]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-path
[recipe_engine/recipe_modules/platform]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-platform
[recipe_engine/recipe_modules/properties]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-properties
[recipe_engine/recipe_modules/raw_io]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-raw_io
[recipe_engine/recipe_modules/resultdb]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-resultdb
[recipe_engine/recipe_modules/runtime]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-runtime
[recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-step
[recipe_engine/recipe_modules/time]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-time
[recipe_engine/recipe_modules/url]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-url
[recipe_engine/recipe_modules/version]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /README.recipes.md#recipe_modules-version
[recipe_engine/wkt/RecipeApi]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/a3d5bd82c0f560e046e123452779d92814eb2936 /recipe_engine/recipe_api.py#886
[recipe_engine/recipe_modules/assertions]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-assertions
[recipe_engine/recipe_modules/buildbucket]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-buildbucket
[recipe_engine/recipe_modules/cipd]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-cipd
[recipe_engine/recipe_modules/commit_position]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-commit_position
[recipe_engine/recipe_modules/context]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-context
[recipe_engine/recipe_modules/cq]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-cq
[recipe_engine/recipe_modules/file]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-file
[recipe_engine/recipe_modules/json]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-json
[recipe_engine/recipe_modules/led]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-led
[recipe_engine/recipe_modules/milo]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-milo
[recipe_engine/recipe_modules/path]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-path
[recipe_engine/recipe_modules/platform]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-platform
[recipe_engine/recipe_modules/properties]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-properties
[recipe_engine/recipe_modules/raw_io]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-raw_io
[recipe_engine/recipe_modules/resultdb]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-resultdb
[recipe_engine/recipe_modules/runtime]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-runtime
[recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-step
[recipe_engine/recipe_modules/time]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-time
[recipe_engine/recipe_modules/url]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-url
[recipe_engine/recipe_modules/version]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /README.recipes.md#recipe_modules-version
[recipe_engine/wkt/RecipeApi]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f31086e3f6bab28c77ac18852363a7181cc87cba /recipe_engine/recipe_api.py#886