libv8 6.7.288.46.1 → 7.3.492.27.0beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG.md +4 -0
- data/README.md +2 -0
- data/ext/libv8/builder.rb +6 -2
- data/lib/libv8/version.rb +1 -1
- data/vendor/depot_tools/.gitattributes +1 -0
- data/vendor/depot_tools/.gitignore +7 -0
- data/vendor/depot_tools/CROS_OWNERS +5 -0
- data/vendor/depot_tools/OWNERS +12 -1
- data/vendor/depot_tools/PRESUBMIT.py +16 -9
- data/vendor/depot_tools/README.md +9 -2
- data/vendor/depot_tools/autoninja +14 -6
- data/vendor/depot_tools/autoninja.bat +11 -1
- data/vendor/depot_tools/autoninja.py +40 -18
- data/vendor/depot_tools/bb +12 -0
- data/vendor/depot_tools/bb.bat +7 -0
- data/vendor/depot_tools/bootstrap/win/manifest.txt +1 -1
- data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +1 -1
- data/vendor/depot_tools/bootstrap/win/win_tools.py +2 -1
- data/vendor/depot_tools/buildbucket.py +57 -4
- data/vendor/depot_tools/cipd +157 -44
- data/vendor/depot_tools/cipd.bat +51 -14
- data/vendor/depot_tools/cipd.ps1 +104 -42
- data/vendor/depot_tools/cipd_client_version +1 -1
- data/vendor/depot_tools/cipd_client_version.digests +21 -0
- data/vendor/depot_tools/cipd_manifest.txt +19 -6
- data/vendor/depot_tools/cipd_manifest.versions +318 -0
- data/vendor/depot_tools/clang_format.py +4 -4
- data/vendor/depot_tools/cpplint.py +44 -199
- data/vendor/depot_tools/dart_format.py +2 -2
- data/vendor/depot_tools/detect_host_arch.py +8 -3
- data/vendor/depot_tools/download_from_google_storage.py +47 -39
- data/vendor/depot_tools/fetch.py +30 -18
- data/vendor/depot_tools/fetch_configs/android_internal.py +34 -0
- data/vendor/depot_tools/fetch_configs/chromium.py +18 -1
- data/vendor/depot_tools/fetch_configs/config_util.py +4 -2
- data/vendor/depot_tools/fetch_configs/inspector_protocol.py +40 -0
- data/vendor/depot_tools/fetch_configs/node-ci.py +41 -0
- data/vendor/depot_tools/fix_encoding.py +3 -3
- data/vendor/depot_tools/gclient +1 -1
- data/vendor/depot_tools/gclient.py +415 -198
- data/vendor/depot_tools/gclient_eval.py +220 -171
- data/vendor/depot_tools/gclient_paths.py +142 -0
- data/vendor/depot_tools/gclient_scm.py +200 -51
- data/vendor/depot_tools/gclient_utils.py +88 -191
- data/vendor/depot_tools/gerrit_client.py +13 -0
- data/vendor/depot_tools/gerrit_util.py +158 -23
- data/vendor/depot_tools/git-nav-upstream +1 -1
- data/vendor/depot_tools/git_cache.py +77 -24
- data/vendor/depot_tools/git_cl.py +705 -1099
- data/vendor/depot_tools/git_common.py +9 -6
- data/vendor/depot_tools/git_map_branches.py +19 -2
- data/vendor/depot_tools/git_nav_downstream.py +3 -4
- data/vendor/depot_tools/git_rebase_update.py +14 -0
- data/vendor/depot_tools/git_reparent_branch.py +8 -2
- data/vendor/depot_tools/gn.py +38 -3
- data/vendor/depot_tools/gsutil.py +8 -3
- data/vendor/depot_tools/gsutil.py.bat +15 -0
- data/vendor/depot_tools/gsutil.vpython +16 -0
- data/vendor/depot_tools/infra/config/OWNERS +0 -1
- data/vendor/depot_tools/infra/config/recipes.cfg +3 -2
- data/vendor/depot_tools/lucicfg +12 -0
- data/vendor/depot_tools/lucicfg.bat +7 -0
- data/vendor/depot_tools/man/html/git-map-branches.html +34 -2
- data/vendor/depot_tools/man/html/git-new-branch.html +40 -32
- data/vendor/depot_tools/man/man1/git-map-branches.1 +24 -5
- data/vendor/depot_tools/man/man1/git-new-branch.1 +35 -27
- data/vendor/depot_tools/man/src/git-map-branches.demo.1.sh +1 -0
- data/vendor/depot_tools/man/src/git-map-branches.txt +10 -0
- data/vendor/depot_tools/man/src/git-new-branch.demo.1.sh +9 -4
- data/vendor/depot_tools/man/src/git-new-branch.txt +1 -1
- data/vendor/depot_tools/metrics.README.md +98 -0
- data/vendor/depot_tools/metrics.py +296 -0
- data/vendor/depot_tools/metrics_utils.py +303 -0
- data/vendor/depot_tools/my_activity.py +91 -29
- data/vendor/depot_tools/ninja +1 -1
- data/vendor/depot_tools/ninjalog.README.md +64 -0
- data/vendor/depot_tools/ninjalog_uploader.py +232 -0
- data/vendor/depot_tools/ninjalog_uploader_wrapper.py +116 -0
- data/vendor/depot_tools/owners.py +30 -13
- data/vendor/depot_tools/owners_finder.py +5 -2
- data/vendor/depot_tools/presubmit_canned_checks.py +188 -29
- data/vendor/depot_tools/presubmit_support.py +18 -41
- data/vendor/depot_tools/pylintrc +23 -19
- data/vendor/depot_tools/recipes/OWNERS +2 -0
- data/vendor/depot_tools/recipes/README.recipes.md +344 -151
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/OWNERS +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +2 -16
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +141 -99
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +5 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +5 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +6 -98
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +45 -5
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{tryjob.json → input_commit_with_id_without_repo.json} +6 -11
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{tryjob_empty_revision.json → multiple_patch_refs.json} +8 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +19 -29
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{trychange.json → refs.json} +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +51 -6
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +50 -6
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +51 -6
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +17 -25
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +17 -25
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +18 -26
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +18 -26
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +26 -28
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +45 -5
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +17 -25
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +13 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name.json +13 -152
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +185 -202
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +52 -157
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +5 -14
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +34 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +14 -2
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +7 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +9 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +9 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +9 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +13 -8
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +18 -12
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +18 -12
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +18 -12
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +3 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +58 -46
- data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +65 -22
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +20 -21
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/buildbot.json +20 -21
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +20 -21
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +20 -21
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +5 -2
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +62 -14
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +24 -38
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +56 -50
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.py +15 -9
- data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +4 -1
- data/vendor/depot_tools/recipes/recipe_modules/git/api.py +34 -22
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_luci.json +222 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +224 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +10 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +5 -7
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +5 -7
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +10 -5
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +8 -9
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +12 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +27 -11
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +1 -1
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +12 -13
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +120 -5
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +45 -3
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +25 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +56 -4
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +6 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.py +49 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +24 -13
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +13 -14
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/basic.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_linux.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_mac.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_win.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_linux.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_mac.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +1 -2
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +35 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +116 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +82 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +23 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +2 -7
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +7 -6
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +117 -8
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/set_failure_hash_with_no_steps.json +7 -4
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +98 -7
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +147 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch.json +8 -5
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch_luci.json +8 -5
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +9 -6
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +9 -6
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +27 -2
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/test_api.py +14 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/__init__.py +25 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/api.py +137 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +107 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +26 -0
- data/vendor/depot_tools/recipes/recipes.py +37 -27
- data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +7 -10
- data/vendor/depot_tools/repo +34 -8
- data/vendor/depot_tools/roll_dep.py +52 -49
- data/vendor/depot_tools/scm.py +38 -23
- data/vendor/depot_tools/setup_color.py +4 -2
- data/vendor/depot_tools/split_cl.py +32 -4
- data/vendor/depot_tools/subprocess2.py +22 -4
- data/vendor/depot_tools/third_party/httplib2/README.chromium +2 -2
- data/vendor/depot_tools/third_party/httplib2/__init__.py +242 -158
- data/vendor/depot_tools/third_party/httplib2/cacerts.txt +57 -44
- data/vendor/depot_tools/third_party/httplib2/socks.py +15 -5
- data/vendor/depot_tools/third_party/logilab/README.chromium +2 -4
- data/vendor/depot_tools/third_party/logilab/astroid/README.chromium +2 -1
- data/vendor/depot_tools/third_party/logilab/astroid/__init__.py +10 -5
- data/vendor/depot_tools/third_party/logilab/astroid/__pkginfo__.py +5 -5
- data/vendor/depot_tools/third_party/logilab/astroid/arguments.py +233 -0
- data/vendor/depot_tools/third_party/logilab/astroid/as_string.py +82 -33
- data/vendor/depot_tools/third_party/logilab/astroid/bases.py +137 -153
- data/vendor/depot_tools/third_party/logilab/astroid/brain/{builtin_inference.py → brain_builtin_inference.py} +117 -26
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_dateutil.py +15 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/{py2gi.py → brain_gi.py} +48 -8
- data/vendor/depot_tools/third_party/logilab/astroid/brain/{py2mechanize.py → brain_mechanize.py} +0 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/{pynose.py → brain_nose.py} +4 -1
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_numpy.py +62 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_pytest.py +76 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_qt.py +44 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/{pysix_moves.py → brain_six.py} +28 -1
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_ssl.py +65 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_stdlib.py +473 -0
- data/vendor/depot_tools/third_party/logilab/astroid/builder.py +104 -81
- data/vendor/depot_tools/third_party/logilab/astroid/context.py +81 -0
- data/vendor/depot_tools/third_party/logilab/astroid/decorators.py +75 -0
- data/vendor/depot_tools/third_party/logilab/astroid/exceptions.py +20 -0
- data/vendor/depot_tools/third_party/logilab/astroid/inference.py +137 -183
- data/vendor/depot_tools/third_party/logilab/astroid/manager.py +45 -169
- data/vendor/depot_tools/third_party/logilab/astroid/mixins.py +37 -14
- data/vendor/depot_tools/third_party/logilab/astroid/modutils.py +112 -41
- data/vendor/depot_tools/third_party/logilab/astroid/node_classes.py +243 -156
- data/vendor/depot_tools/third_party/logilab/astroid/nodes.py +35 -22
- data/vendor/depot_tools/third_party/logilab/astroid/objects.py +186 -0
- data/vendor/depot_tools/third_party/logilab/astroid/protocols.py +157 -102
- data/vendor/depot_tools/third_party/logilab/astroid/raw_building.py +32 -8
- data/vendor/depot_tools/third_party/logilab/astroid/rebuilder.py +372 -309
- data/vendor/depot_tools/third_party/logilab/astroid/scoped_nodes.py +652 -420
- data/vendor/depot_tools/third_party/logilab/astroid/test_utils.py +4 -21
- data/vendor/depot_tools/third_party/logilab/astroid/transforms.py +96 -0
- data/vendor/depot_tools/third_party/logilab/astroid/util.py +89 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/LICENSE +19 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/README.chromium +11 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/__init__.py +20 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/cext.c +1421 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/compat.py +9 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/simple.py +246 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/slots.py +414 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/utils.py +13 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/LICENSE +24 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/README.chromium +11 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/__init__.py +19 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/_wrappers.c +2729 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/arguments.py +96 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/decorators.py +512 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/importer.py +228 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/wrappers.py +901 -0
- data/vendor/depot_tools/third_party/pylint/README.chromium +2 -25
- data/vendor/depot_tools/third_party/pylint/__pkginfo__.py +13 -3
- data/vendor/depot_tools/third_party/pylint/checkers/__init__.py +1 -2
- data/vendor/depot_tools/third_party/pylint/checkers/async.py +82 -0
- data/vendor/depot_tools/third_party/pylint/checkers/base.py +893 -119
- data/vendor/depot_tools/third_party/pylint/checkers/classes.py +342 -204
- data/vendor/depot_tools/third_party/pylint/checkers/design_analysis.py +51 -34
- data/vendor/depot_tools/third_party/pylint/checkers/exceptions.py +84 -47
- data/vendor/depot_tools/third_party/pylint/checkers/format.py +55 -30
- data/vendor/depot_tools/third_party/pylint/checkers/imports.py +314 -73
- data/vendor/depot_tools/third_party/pylint/checkers/logging.py +10 -8
- data/vendor/depot_tools/third_party/pylint/checkers/misc.py +2 -1
- data/vendor/depot_tools/third_party/pylint/checkers/newstyle.py +45 -48
- data/vendor/depot_tools/third_party/pylint/checkers/python3.py +31 -21
- data/vendor/depot_tools/third_party/pylint/checkers/raw_metrics.py +3 -3
- data/vendor/depot_tools/third_party/pylint/checkers/similar.py +4 -5
- data/vendor/depot_tools/third_party/pylint/checkers/spelling.py +24 -10
- data/vendor/depot_tools/third_party/pylint/checkers/stdlib.py +120 -56
- data/vendor/depot_tools/third_party/pylint/checkers/strings.py +38 -35
- data/vendor/depot_tools/third_party/pylint/checkers/typecheck.py +485 -138
- data/vendor/depot_tools/third_party/pylint/checkers/utils.py +319 -142
- data/vendor/depot_tools/third_party/pylint/checkers/variables.py +329 -207
- data/vendor/depot_tools/third_party/pylint/config.py +739 -76
- data/vendor/depot_tools/third_party/pylint/epylint.py +9 -5
- data/vendor/depot_tools/third_party/pylint/extensions/__init__.py +0 -0
- data/vendor/depot_tools/third_party/pylint/extensions/check_docs.py +311 -0
- data/vendor/depot_tools/third_party/pylint/extensions/check_elif.py +62 -0
- data/vendor/depot_tools/third_party/{logilab/common → pylint}/graph.py +30 -133
- data/vendor/depot_tools/third_party/pylint/gui.py +2 -2
- data/vendor/depot_tools/third_party/pylint/interfaces.py +21 -3
- data/vendor/depot_tools/third_party/pylint/lint.py +123 -140
- data/vendor/depot_tools/third_party/pylint/pyreverse/diadefslib.py +10 -13
- data/vendor/depot_tools/third_party/pylint/pyreverse/diagrams.py +15 -4
- data/vendor/depot_tools/third_party/pylint/pyreverse/inspector.py +372 -0
- data/vendor/depot_tools/third_party/pylint/pyreverse/main.py +30 -7
- data/vendor/depot_tools/third_party/pylint/pyreverse/utils.py +80 -2
- data/vendor/depot_tools/third_party/{logilab/common → pylint/pyreverse}/vcgutils.py +19 -37
- data/vendor/depot_tools/third_party/pylint/pyreverse/writer.py +3 -4
- data/vendor/depot_tools/third_party/pylint/reporters/__init__.py +34 -18
- data/vendor/depot_tools/third_party/pylint/reporters/guireporter.py +1 -1
- data/vendor/depot_tools/third_party/pylint/reporters/html.py +10 -3
- data/vendor/depot_tools/third_party/pylint/reporters/json.py +10 -4
- data/vendor/depot_tools/third_party/pylint/reporters/text.py +94 -3
- data/vendor/depot_tools/third_party/pylint/reporters/ureports/__init__.py +106 -0
- data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/html_writer.py +17 -57
- data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/nodes.py +52 -74
- data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/text_writer.py +14 -60
- data/vendor/depot_tools/third_party/pylint/testutils.py +22 -20
- data/vendor/depot_tools/third_party/pylint/utils.py +268 -44
- data/vendor/depot_tools/third_party/repo/progress.py +42 -0
- data/vendor/depot_tools/update_depot_tools +1 -1
- data/vendor/depot_tools/upload_metrics.py +25 -0
- data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +45 -15
- data/vendor/depot_tools/win_toolchain/package_from_installed.py +71 -24
- data/vendor/depot_tools/yapf +1 -1
- data/vendor/depot_tools/yapf.bat +1 -1
- metadata +92 -77
- data/vendor/depot_tools/git-crsync +0 -3
- data/vendor/depot_tools/infra/config/cq.cfg +0 -32
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/apply_gerrit_ref.json +0 -29
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/apply_gerrit_ref_custom.json +0 -29
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/buildbot.json +0 -105
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/shallow.json +0 -195
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle_deprecated.json +0 -248
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8.json +0 -248
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name_no_patch.json +0 -105
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/apply_gerrit.py +0 -33
- data/vendor/depot_tools/third_party/logilab/astroid/brain/py2pytest.py +0 -31
- data/vendor/depot_tools/third_party/logilab/astroid/brain/py2qt4.py +0 -22
- data/vendor/depot_tools/third_party/logilab/astroid/brain/py2stdlib.py +0 -334
- data/vendor/depot_tools/third_party/logilab/astroid/inspector.py +0 -273
- data/vendor/depot_tools/third_party/logilab/astroid/utils.py +0 -239
- data/vendor/depot_tools/third_party/logilab/common/LICENSE.txt +0 -339
- data/vendor/depot_tools/third_party/logilab/common/README.chromium +0 -11
- data/vendor/depot_tools/third_party/logilab/common/__init__.py +0 -175
- data/vendor/depot_tools/third_party/logilab/common/__pkginfo__.py +0 -57
- data/vendor/depot_tools/third_party/logilab/common/cache.py +0 -114
- data/vendor/depot_tools/third_party/logilab/common/changelog.py +0 -238
- data/vendor/depot_tools/third_party/logilab/common/clcommands.py +0 -334
- data/vendor/depot_tools/third_party/logilab/common/cli.py +0 -211
- data/vendor/depot_tools/third_party/logilab/common/compat.py +0 -78
- data/vendor/depot_tools/third_party/logilab/common/configuration.py +0 -1105
- data/vendor/depot_tools/third_party/logilab/common/contexts.py +0 -5
- data/vendor/depot_tools/third_party/logilab/common/corbautils.py +0 -117
- data/vendor/depot_tools/third_party/logilab/common/daemon.py +0 -101
- data/vendor/depot_tools/third_party/logilab/common/date.py +0 -335
- data/vendor/depot_tools/third_party/logilab/common/dbf.py +0 -231
- data/vendor/depot_tools/third_party/logilab/common/debugger.py +0 -214
- data/vendor/depot_tools/third_party/logilab/common/decorators.py +0 -281
- data/vendor/depot_tools/third_party/logilab/common/deprecation.py +0 -189
- data/vendor/depot_tools/third_party/logilab/common/fileutils.py +0 -404
- data/vendor/depot_tools/third_party/logilab/common/interface.py +0 -71
- data/vendor/depot_tools/third_party/logilab/common/logging_ext.py +0 -195
- data/vendor/depot_tools/third_party/logilab/common/modutils.py +0 -702
- data/vendor/depot_tools/third_party/logilab/common/optik_ext.py +0 -392
- data/vendor/depot_tools/third_party/logilab/common/optparser.py +0 -92
- data/vendor/depot_tools/third_party/logilab/common/proc.py +0 -277
- data/vendor/depot_tools/third_party/logilab/common/pyro_ext.py +0 -180
- data/vendor/depot_tools/third_party/logilab/common/pytest.py +0 -1199
- data/vendor/depot_tools/third_party/logilab/common/registry.py +0 -1119
- data/vendor/depot_tools/third_party/logilab/common/shellutils.py +0 -462
- data/vendor/depot_tools/third_party/logilab/common/sphinx_ext.py +0 -87
- data/vendor/depot_tools/third_party/logilab/common/sphinxutils.py +0 -122
- data/vendor/depot_tools/third_party/logilab/common/table.py +0 -929
- data/vendor/depot_tools/third_party/logilab/common/tasksqueue.py +0 -101
- data/vendor/depot_tools/third_party/logilab/common/testlib.py +0 -1392
- data/vendor/depot_tools/third_party/logilab/common/textutils.py +0 -537
- data/vendor/depot_tools/third_party/logilab/common/tree.py +0 -369
- data/vendor/depot_tools/third_party/logilab/common/umessage.py +0 -194
- data/vendor/depot_tools/third_party/logilab/common/ureports/__init__.py +0 -172
- data/vendor/depot_tools/third_party/logilab/common/ureports/docbook_writer.py +0 -140
- data/vendor/depot_tools/third_party/logilab/common/urllib2ext.py +0 -89
- data/vendor/depot_tools/third_party/logilab/common/visitor.py +0 -109
- data/vendor/depot_tools/third_party/logilab/common/xmlrpcutils.py +0 -131
- data/vendor/depot_tools/third_party/logilab/common/xmlutils.py +0 -61
data/vendor/depot_tools/pylintrc
CHANGED
@@ -7,9 +7,6 @@
|
|
7
7
|
# pygtk.require().
|
8
8
|
#init-hook=
|
9
9
|
|
10
|
-
# Profiled execution.
|
11
|
-
profile=no
|
12
|
-
|
13
10
|
# Add files or directories to the blacklist. They should be base names, not
|
14
11
|
# paths.
|
15
12
|
ignore=CVS
|
@@ -93,31 +90,53 @@ disable=
|
|
93
90
|
logging-not-lazy,
|
94
91
|
bad-continuation,
|
95
92
|
anomalous-backslash-in-string,
|
93
|
+
assigning-non-slot,
|
96
94
|
bad-context-manager,
|
97
95
|
bad-indentation,
|
98
96
|
bad-str-strip-call,
|
97
|
+
bad-super-call,
|
99
98
|
bad-whitespace,
|
100
99
|
cell-var-from-loop,
|
100
|
+
consider-using-enumerate,
|
101
101
|
deprecated-lambda,
|
102
|
+
deprecated-method,
|
102
103
|
eval-used,
|
103
104
|
function-redefined,
|
104
105
|
import-error,
|
105
106
|
locally-enabled,
|
107
|
+
misplaced-comparison-constant,
|
108
|
+
misplaced-bare-raise,
|
106
109
|
missing-final-newline,
|
110
|
+
multiple-imports,
|
107
111
|
no-init,
|
108
112
|
no-name-in-module,
|
113
|
+
no-self-argument,
|
109
114
|
no-self-use,
|
115
|
+
not-an-iterable,
|
110
116
|
not-callable,
|
111
117
|
old-style-class,
|
112
118
|
protected-access,
|
119
|
+
redefined-variable-type,
|
120
|
+
simplifiable-if-statement,
|
121
|
+
singleton-comparison,
|
113
122
|
superfluous-parens,
|
114
123
|
super-on-old-class,
|
124
|
+
too-many-boolean-expressions,
|
115
125
|
too-many-function-args,
|
126
|
+
too-many-nested-blocks,
|
116
127
|
trailing-whitespace,
|
128
|
+
undefined-variable,
|
129
|
+
ungrouped-imports,
|
117
130
|
unnecessary-semicolon,
|
131
|
+
unneeded-not,
|
118
132
|
unpacking-non-sequence,
|
133
|
+
unsubscriptable-object,
|
134
|
+
unsupported-membership-test,
|
119
135
|
unused-import,
|
120
|
-
useless-else-on-loop
|
136
|
+
useless-else-on-loop,
|
137
|
+
using-constant-test,
|
138
|
+
wrong-import-order,
|
139
|
+
wrong-import-position,
|
121
140
|
|
122
141
|
|
123
142
|
[REPORTS]
|
@@ -142,10 +161,6 @@ reports=no
|
|
142
161
|
# (RP0004).
|
143
162
|
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
|
144
163
|
|
145
|
-
# Add a comment according to your evaluation note. This is used by the global
|
146
|
-
# evaluation report (RP0004).
|
147
|
-
comment=no
|
148
|
-
|
149
164
|
|
150
165
|
[VARIABLES]
|
151
166
|
|
@@ -171,10 +186,6 @@ ignore-mixin-members=yes
|
|
171
186
|
# (useful for classes with attributes dynamically set).
|
172
187
|
ignored-classes=SQLObject,twisted.internet.reactor,hashlib,google.appengine.api.memcache
|
173
188
|
|
174
|
-
# When zope mode is activated, add a predefined set of Zope acquired attributes
|
175
|
-
# to generated-members.
|
176
|
-
zope=no
|
177
|
-
|
178
189
|
# List of members which are set dynamically and missed by pylint inference
|
179
190
|
# system, and so shouldn't trigger E0201 when accessed. Python regular
|
180
191
|
# expressions are accepted.
|
@@ -215,9 +226,6 @@ indent-string=' '
|
|
215
226
|
|
216
227
|
[BASIC]
|
217
228
|
|
218
|
-
# Required attributes for module, separated by a comma
|
219
|
-
required-attributes=
|
220
|
-
|
221
229
|
# List of builtins function names that should not be used, separated by a comma
|
222
230
|
bad-functions=map,filter,apply,input
|
223
231
|
|
@@ -296,10 +304,6 @@ max-public-methods=20
|
|
296
304
|
|
297
305
|
[CLASSES]
|
298
306
|
|
299
|
-
# List of interface methods to ignore, separated by a comma. This is used for
|
300
|
-
# instance to not check methods defines in Zope's Interface base class.
|
301
|
-
ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by
|
302
|
-
|
303
307
|
# List of method names used to declare (i.e. assign) instance attributes.
|
304
308
|
defining-attr-methods=__init__,__new__,setUp
|
305
309
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!--- AUTOGENERATED BY `./recipes.py test train` -->
|
2
|
-
#
|
2
|
+
# Repo documentation for [depot\_tools](https://chromium.googlesource.com/chromium/tools/depot_tools.git)
|
3
3
|
## Table of Contents
|
4
4
|
|
5
5
|
**[Recipe Modules](#Recipe-Modules)**
|
6
6
|
* [bot_update](#recipe_modules-bot_update) — Recipe module to ensure a checkout is consistent on a bot.
|
7
|
-
* [cipd](#recipe_modules-cipd)
|
7
|
+
* [cipd](#recipe_modules-cipd) — API for interacting with CIPD.
|
8
8
|
* [depot_tools](#recipe_modules-depot_tools) — The `depot_tools` module provides safe functions to access paths within the depot_tools repo.
|
9
9
|
* [gclient](#recipe_modules-gclient)
|
10
10
|
* [gerrit](#recipe_modules-gerrit)
|
@@ -13,11 +13,14 @@
|
|
13
13
|
* [gitiles](#recipe_modules-gitiles)
|
14
14
|
* [gsutil](#recipe_modules-gsutil)
|
15
15
|
* [infra_paths](#recipe_modules-infra_paths)
|
16
|
+
* [osx_sdk](#recipe_modules-osx_sdk) — The `osx_sdk` module provides safe functions to access a semi-hermetic XCode installation.
|
16
17
|
* [presubmit](#recipe_modules-presubmit)
|
17
18
|
* [tryserver](#recipe_modules-tryserver)
|
19
|
+
* [windows_sdk](#recipe_modules-windows_sdk) — The `windows_sdk` module provides safe functions to access a hermetic Microsoft Visual Studio installation.
|
18
20
|
|
19
21
|
**[Recipes](#Recipes)**
|
20
22
|
* [bot_update:examples/full](#recipes-bot_update_examples_full)
|
23
|
+
* [bot_update:tests/ensure_checkout](#recipes-bot_update_tests_ensure_checkout)
|
21
24
|
* [cipd:examples/full](#recipes-cipd_examples_full)
|
22
25
|
* [cipd:examples/platform_suffix](#recipes-cipd_examples_platform_suffix)
|
23
26
|
* [depot_tools:examples/full](#recipes-depot_tools_examples_full)
|
@@ -28,32 +31,33 @@
|
|
28
31
|
* [git:examples/full](#recipes-git_examples_full)
|
29
32
|
* [git_cl:examples/full](#recipes-git_cl_examples_full)
|
30
33
|
* [gitiles:examples/full](#recipes-gitiles_examples_full)
|
34
|
+
* [gitiles:tests/parse_repo_url](#recipes-gitiles_tests_parse_repo_url)
|
31
35
|
* [gsutil:examples/full](#recipes-gsutil_examples_full)
|
32
36
|
* [infra_paths:examples/full](#recipes-infra_paths_examples_full)
|
37
|
+
* [osx_sdk:examples/full](#recipes-osx_sdk_examples_full)
|
33
38
|
* [presubmit:examples/full](#recipes-presubmit_examples_full)
|
34
39
|
* [tryserver:examples/full](#recipes-tryserver_examples_full)
|
40
|
+
* [windows_sdk:examples/full](#recipes-windows_sdk_examples_full)
|
35
41
|
## Recipe Modules
|
36
42
|
|
37
43
|
### *recipe_modules* / [bot\_update](/recipes/recipe_modules/bot_update)
|
38
44
|
|
39
|
-
[DEPS](/recipes/recipe_modules/bot_update/__init__.py#1): [depot\_tools](#recipe_modules-depot_tools), [gclient](#recipe_modules-gclient), [gerrit](#recipe_modules-gerrit), [tryserver](#recipe_modules-tryserver), [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/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime], [recipe\_engine/source\_manifest][recipe_engine/recipe_modules/source_manifest], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
45
|
+
[DEPS](/recipes/recipe_modules/bot_update/__init__.py#1): [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/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/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime], [recipe\_engine/source\_manifest][recipe_engine/recipe_modules/source_manifest], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
40
46
|
|
41
47
|
Recipe module to ensure a checkout is consistent on a bot.
|
42
48
|
|
43
|
-
#### **class [BotUpdateApi](/recipes/recipe_modules/bot_update/api.py#
|
49
|
+
#### **class [BotUpdateApi](/recipes/recipe_modules/bot_update/api.py#12)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
44
50
|
|
45
|
-
— **def [\_\_call\_\_](/recipes/recipe_modules/bot_update/api.py#
|
51
|
+
— **def [\_\_call\_\_](/recipes/recipe_modules/bot_update/api.py#27)(self, name, cmd, \*\*kwargs):**
|
46
52
|
|
47
53
|
Wrapper for easy calling of bot_update.
|
48
54
|
|
49
|
-
— **def [
|
50
|
-
|
51
|
-
— **def [deapply\_patch](/recipes/recipe_modules/bot_update/api.py#410)(self, bot_update_step):**
|
55
|
+
— **def [deapply\_patch](/recipes/recipe_modules/bot_update/api.py#452)(self, bot_update_step):**
|
52
56
|
|
53
57
|
Deapplies a patch, taking care of DEPS and solution revisions properly.
|
54
58
|
|
55
59
|
|
56
|
-
— **def [ensure\_checkout](/recipes/recipe_modules/bot_update/api.py#68)(self, gclient_config=None, suffix=None, patch=True, update_presentation=True, patch_root=None,
|
60
|
+
— **def [ensure\_checkout](/recipes/recipe_modules/bot_update/api.py#68)(self, gclient_config=None, suffix=None, patch=True, update_presentation=True, patch_root=None, with_branch_heads=False, with_tags=False, refs=None, patch_oauth2=None, oauth2_json=None, use_site_config_creds=None, clobber=False, root_solution_revision=None, rietveld=None, issue=None, patchset=None, gerrit_no_reset=False, gerrit_no_rebase_patch_ref=False, disable_syntax_validation=False, manifest_name=None, patch_refs=None, ignore_input_commit=False, set_output_commit=False, \*\*kwargs):**
|
57
61
|
|
58
62
|
Args:
|
59
63
|
gclient_config: The gclient configuration to use when running bot_update.
|
@@ -63,8 +67,17 @@ Args:
|
|
63
67
|
such as bisect.
|
64
68
|
manifest_name: The name of the manifest to upload to LogDog. This must
|
65
69
|
be unique for the whole build.
|
66
|
-
|
67
|
-
|
70
|
+
ignore_input_commit: if True, ignore api.buildbucket.gitiles_commit.
|
71
|
+
Exists for historical reasons. Please do not use.
|
72
|
+
set_output_commit: if True, mark the checked out commit as the
|
73
|
+
primary output commit of this build, i.e. call
|
74
|
+
api.buildbucket.set_output_gitiles_commit.
|
75
|
+
In case of multiple repos, the repo is the one specified in
|
76
|
+
api.buildbucket.gitiles_commit or the first configured solution.
|
77
|
+
When sorting builds by commit position, this commit will be used.
|
78
|
+
Requires falsy ignore_input_commit.
|
79
|
+
|
80
|
+
— **def [get\_project\_revision\_properties](/recipes/recipe_modules/bot_update/api.py#429)(self, project_name, gclient_config=None):**
|
68
81
|
|
69
82
|
Returns all property names used for storing the checked-out revision of
|
70
83
|
a given project.
|
@@ -78,12 +91,25 @@ Args:
|
|
78
91
|
Returns (list of str): All properties that'll hold the checked-out revision
|
79
92
|
of the given project. An empty list if no such properties exist.
|
80
93
|
|
81
|
-
&
|
94
|
+
— **def [initialize](/recipes/recipe_modules/bot_update/api.py#22)(self):**
|
95
|
+
|
96
|
+
  **@property**<br>— **def [last\_returned\_properties](/recipes/recipe_modules/bot_update/api.py#36)(self):**
|
82
97
|
### *recipe_modules* / [cipd](/recipes/recipe_modules/cipd)
|
83
98
|
|
84
99
|
[DEPS](/recipes/recipe_modules/cipd/__init__.py#1): [infra\_paths](#recipe_modules-infra_paths), [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/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
85
100
|
|
86
|
-
|
101
|
+
API for interacting with CIPD.
|
102
|
+
|
103
|
+
Depends on 'cipd' binary available in PATH:
|
104
|
+
https://godoc.org/go.chromium.org/luci/cipd/client/cmd/cipd
|
105
|
+
|
106
|
+
WARNING: There is an alternative cipd recipe_module in recipes-py.git:
|
107
|
+
https://codesearch.chromium.org/chromium/infra/recipes-py/recipe_modules/cipd/
|
108
|
+
|
109
|
+
Consider using that one instead.
|
110
|
+
TODO(crbug.com/875523): Delete this module.
|
111
|
+
|
112
|
+
#### **class [CIPDApi](/recipes/recipe_modules/cipd/api.py#160)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
87
113
|
|
88
114
|
CIPDApi provides basic support for CIPD.
|
89
115
|
|
@@ -92,7 +118,7 @@ installed somewhere in $PATH. This will be true if you use depot_tools, or if
|
|
92
118
|
your recipe is running inside of chrome-infrastructure's systems (buildbot,
|
93
119
|
swarming).
|
94
120
|
|
95
|
-
— **def [build](/recipes/recipe_modules/cipd/api.py#
|
121
|
+
— **def [build](/recipes/recipe_modules/cipd/api.py#233)(self, input_dir, output_package, package_name, install_mode=None):**
|
96
122
|
|
97
123
|
Builds, but does not upload, a cipd package from a directory.
|
98
124
|
|
@@ -105,7 +131,7 @@ Args:
|
|
105
131
|
should use when installing this package. If None, defaults to the
|
106
132
|
platform default ('copy' on windows, 'symlink' on everything else).
|
107
133
|
|
108
|
-
— **def [create\_from\_pkg](/recipes/recipe_modules/cipd/api.py#
|
134
|
+
— **def [create\_from\_pkg](/recipes/recipe_modules/cipd/api.py#329)(self, pkg_def, refs=None, tags=None):**
|
109
135
|
|
110
136
|
Builds and uploads a package based on a PackageDefinition object.
|
111
137
|
|
@@ -123,7 +149,7 @@ Returns the JSON 'result' section, e.g.: {
|
|
123
149
|
"instance_id": "433bfdf86c0bb82d1eee2d1a0473d3709c25d2c4"
|
124
150
|
}
|
125
151
|
|
126
|
-
— **def [create\_from\_yaml](/recipes/recipe_modules/cipd/api.py#
|
152
|
+
— **def [create\_from\_yaml](/recipes/recipe_modules/cipd/api.py#309)(self, pkg_def, refs=None, tags=None):**
|
127
153
|
|
128
154
|
Builds and uploads a package based on on-disk YAML package definition
|
129
155
|
file.
|
@@ -141,11 +167,11 @@ Returns the JSON 'result' section, e.g.: {
|
|
141
167
|
"instance_id": "433bfdf86c0bb82d1eee2d1a0473d3709c25d2c4"
|
142
168
|
}
|
143
169
|
|
144
|
-
  **@property**<br>— **def [default\_bot\_service\_account\_credentials](/recipes/recipe_modules/cipd/api.py#
|
170
|
+
  **@property**<br>— **def [default\_bot\_service\_account\_credentials](/recipes/recipe_modules/cipd/api.py#197)(self):**
|
145
171
|
|
146
|
-
— **def [describe](/recipes/recipe_modules/cipd/api.py#
|
172
|
+
— **def [describe](/recipes/recipe_modules/cipd/api.py#436)(self, package_name, version, test_data_refs=None, test_data_tags=None):**
|
147
173
|
|
148
|
-
— **def [ensure](/recipes/recipe_modules/cipd/api.py#
|
174
|
+
— **def [ensure](/recipes/recipe_modules/cipd/api.py#351)(self, root, packages):**
|
149
175
|
|
150
176
|
Ensures that packages are installed in a given root dir.
|
151
177
|
|
@@ -156,11 +182,11 @@ packages must be a mapping from package name to its version, where
|
|
156
182
|
If installing a package requires credentials, call
|
157
183
|
``set_service_account_credentials`` before calling this function.
|
158
184
|
|
159
|
-
  **@property**<br>— **def [executable](/recipes/recipe_modules/cipd/api.py#
|
185
|
+
  **@property**<br>— **def [executable](/recipes/recipe_modules/cipd/api.py#193)(self):**
|
160
186
|
|
161
|
-
— **def [initialize](/recipes/recipe_modules/cipd/api.py#
|
187
|
+
— **def [initialize](/recipes/recipe_modules/cipd/api.py#187)(self):**
|
162
188
|
|
163
|
-
— **def [platform\_suffix](/recipes/recipe_modules/cipd/api.py#
|
189
|
+
— **def [platform\_suffix](/recipes/recipe_modules/cipd/api.py#206)(self, name=None, arch=None, bits=None):**
|
164
190
|
|
165
191
|
Use to get full package name that is platform indepdent.
|
166
192
|
|
@@ -172,15 +198,15 @@ Optional platform bits and architecture may be supplied to generate CIPD
|
|
172
198
|
suffixes for other platforms. If any are omitted, the current platform
|
173
199
|
parameters will be used.
|
174
200
|
|
175
|
-
— **def [register](/recipes/recipe_modules/cipd/api.py#
|
201
|
+
— **def [register](/recipes/recipe_modules/cipd/api.py#261)(self, package_name, package_path, refs=None, tags=None):**
|
176
202
|
|
177
|
-
— **def [search](/recipes/recipe_modules/cipd/api.py#
|
203
|
+
— **def [search](/recipes/recipe_modules/cipd/api.py#418)(self, package_name, tag):**
|
178
204
|
|
179
|
-
— **def [set\_ref](/recipes/recipe_modules/cipd/api.py#
|
205
|
+
— **def [set\_ref](/recipes/recipe_modules/cipd/api.py#398)(self, package_name, version, refs):**
|
180
206
|
|
181
|
-
— **def [set\_service\_account\_credentials](/recipes/recipe_modules/cipd/api.py#
|
207
|
+
— **def [set\_service\_account\_credentials](/recipes/recipe_modules/cipd/api.py#190)(self, path):**
|
182
208
|
|
183
|
-
— **def [set\_tag](/recipes/recipe_modules/cipd/api.py#
|
209
|
+
— **def [set\_tag](/recipes/recipe_modules/cipd/api.py#378)(self, package_name, version, tags):**
|
184
210
|
### *recipe_modules* / [depot\_tools](/recipes/recipe_modules/depot_tools)
|
185
211
|
|
186
212
|
[DEPS](/recipes/recipe_modules/depot_tools/__init__.py#5): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/runtime][recipe_engine/recipe_modules/runtime]
|
@@ -190,6 +216,8 @@ the depot_tools repo.
|
|
190
216
|
|
191
217
|
#### **class [DepotToolsApi](/recipes/recipe_modules/depot_tools/api.py#12)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
192
218
|
|
219
|
+
  **@property**<br>— **def [autoninja\_path](/recipes/recipe_modules/depot_tools/api.py#45)(self):**
|
220
|
+
|
193
221
|
  **@property**<br>— **def [cros\_path](/recipes/recipe_modules/depot_tools/api.py#26)(self):**
|
194
222
|
|
195
223
|
  **@property**<br>— **def [download\_from\_google\_storage\_path](/recipes/recipe_modules/depot_tools/api.py#13)(self):**
|
@@ -200,7 +228,7 @@ the depot_tools repo.
|
|
200
228
|
|
201
229
|
  **@property**<br>— **def [ninja\_path](/recipes/recipe_modules/depot_tools/api.py#40)(self):**
|
202
230
|
|
203
|
-
  **@contextlib.contextmanager**<br>— **def [on\_path](/recipes/recipe_modules/depot_tools/api.py#
|
231
|
+
  **@contextlib.contextmanager**<br>— **def [on\_path](/recipes/recipe_modules/depot_tools/api.py#54)(self):**
|
204
232
|
|
205
233
|
Use this context manager to put depot_tools on $PATH.
|
206
234
|
|
@@ -209,7 +237,7 @@ Example:
|
|
209
237
|
with api.depot_tools.on_path():
|
210
238
|
# run some steps
|
211
239
|
|
212
|
-
  **@property**<br>— **def [presubmit\_support\_py\_path](/recipes/recipe_modules/depot_tools/api.py#
|
240
|
+
  **@property**<br>— **def [presubmit\_support\_py\_path](/recipes/recipe_modules/depot_tools/api.py#50)(self):**
|
213
241
|
|
214
242
|
  **@property**<br>— **def [root](/recipes/recipe_modules/depot_tools/api.py#21)(self):**
|
215
243
|
|
@@ -218,7 +246,7 @@ Returns (Path): The "depot_tools" root directory.
|
|
218
246
|
  **@property**<br>— **def [upload\_to\_google\_storage\_path](/recipes/recipe_modules/depot_tools/api.py#17)(self):**
|
219
247
|
### *recipe_modules* / [gclient](/recipes/recipe_modules/gclient)
|
220
248
|
|
221
|
-
[DEPS](/recipes/recipe_modules/gclient/__init__.py#1): [infra\_paths](#recipe_modules-infra_paths), [tryserver](#recipe_modules-tryserver), [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/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
249
|
+
[DEPS](/recipes/recipe_modules/gclient/__init__.py#1): [gitiles](#recipe_modules-gitiles), [infra\_paths](#recipe_modules-infra_paths), [tryserver](#recipe_modules-tryserver), [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/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
222
250
|
|
223
251
|
#### **class [GclientApi](/recipes/recipe_modules/gclient/api.py#65)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
224
252
|
|
@@ -226,37 +254,39 @@ Returns (Path): The "depot_tools" root directory.
|
|
226
254
|
|
227
255
|
Wrapper for easy calling of gclient steps.
|
228
256
|
|
229
|
-
— **def [break\_locks](/recipes/recipe_modules/gclient/api.py#
|
257
|
+
— **def [break\_locks](/recipes/recipe_modules/gclient/api.py#270)(self):**
|
230
258
|
|
231
259
|
Remove all index.lock files. If a previous run of git crashed, bot was
|
232
260
|
reset, etc... we might end up with leftover index.lock files.
|
233
261
|
|
234
|
-
— **def [
|
262
|
+
— **def [checkout](/recipes/recipe_modules/gclient/api.py#230)(self, gclient_config=None, revert=RevertOnTryserver, inject_parent_got_revision=True, extra_sync_flags=None, \*\*kwargs):**
|
263
|
+
|
264
|
+
Return a step generator function for gclient checkouts.
|
235
265
|
|
236
|
-
|
266
|
+
  **@staticmethod**<br>— **def [config\_to\_pythonish](/recipes/recipe_modules/gclient/api.py#120)(cfg):**
|
237
267
|
|
238
|
-
|
239
|
-
which describe where to place the patch. If no mapping is found for the
|
240
|
-
repo url, falls back to trying to find a mapping for the old-style
|
241
|
-
"patch_project".
|
268
|
+
— **def [get\_config\_defaults](/recipes/recipe_modules/gclient/api.py#114)(self):**
|
242
269
|
|
243
|
-
|
244
|
-
be extended to all of them.
|
270
|
+
— **def [get\_gerrit\_patch\_root](/recipes/recipe_modules/gclient/api.py#292)(self, gclient_config=None):**
|
245
271
|
|
246
|
-
|
272
|
+
Returns local path to the repo where gerrit patch will be applied.
|
247
273
|
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
274
|
+
If there is no patch, returns None.
|
275
|
+
If patch is specified, but such repo is not found among configured solutions
|
276
|
+
or repo_path_map, returns name of the first solution. This is done solely
|
277
|
+
for backward compatibility with existing tests.
|
278
|
+
Please do not rely on this logic in new code.
|
279
|
+
Instead, properly map a repository to a local path using repo_path_map.
|
280
|
+
TODO(nodir): remove this. Update all recipe tests to specify a git_repo
|
281
|
+
matching the recipe.
|
252
282
|
|
253
|
-
— **def [
|
283
|
+
— **def [get\_repo\_path](/recipes/recipe_modules/gclient/api.py#319)(self, repo_url, gclient_config=None):**
|
254
284
|
|
255
|
-
|
285
|
+
Returns local path to the repo checkout given its url.
|
256
286
|
|
257
|
-
|
287
|
+
Consults cfg.repo_path_map and fallbacks to urls in configured solutions.
|
258
288
|
|
259
|
-
|
289
|
+
Returns None if not found.
|
260
290
|
|
261
291
|
  **@staticmethod**<br>— **def [got\_revision\_reverse\_mapping](/recipes/recipe_modules/gclient/api.py#125)(cfg):**
|
262
292
|
|
@@ -276,20 +306,11 @@ Args:
|
|
276
306
|
override (bool) - If True, will forcibly set revision and custom_vars
|
277
307
|
even if the config already contains values for them.
|
278
308
|
|
279
|
-
  **@property**<br>— **def [is\_blink\_mode](/recipes/recipe_modules/gclient/api.py#270)(self):**
|
280
|
-
|
281
|
-
Indicates wether the caller is to use the Blink config rather than the
|
282
|
-
Chromium config. This may happen for one of two reasons:
|
283
|
-
1. The builder is configured to always use TOT Blink. (factory property
|
284
|
-
top_of_tree_blink=True)
|
285
|
-
2. A try job comes in that applies to the Blink tree. (patch_project is
|
286
|
-
blink)
|
287
|
-
|
288
309
|
— **def [resolve\_revision](/recipes/recipe_modules/gclient/api.py#142)(self, revision):**
|
289
310
|
|
290
311
|
— **def [runhooks](/recipes/recipe_modules/gclient/api.py#264)(self, args=None, name='runhooks', \*\*kwargs):**
|
291
312
|
|
292
|
-
— **def [set\_patch\
|
313
|
+
— **def [set\_patch\_repo\_revision](/recipes/recipe_modules/gclient/api.py#349)(self, gclient_config=None):**
|
293
314
|
|
294
315
|
Updates config revision corresponding to patch_project.
|
295
316
|
|
@@ -313,6 +334,8 @@ Module for interact with gerrit endpoints
|
|
313
334
|
|
314
335
|
Wrapper for easy calling of gerrit_utils steps.
|
315
336
|
|
337
|
+
— **def [abandon\_change](/recipes/recipe_modules/gerrit/api.py#159)(self, host, change, message=None, name=None, step_test_data=None):**
|
338
|
+
|
316
339
|
— **def [create\_gerrit\_branch](/recipes/recipe_modules/gerrit/api.py#31)(self, host, project, branch, commit, \*\*kwargs):**
|
317
340
|
|
318
341
|
Create a new branch from given project and commit
|
@@ -320,37 +343,24 @@ Create a new branch from given project and commit
|
|
320
343
|
Returns:
|
321
344
|
the ref of the branch created
|
322
345
|
|
323
|
-
— **def [get\_change\_description](/recipes/recipe_modules/gerrit/api.py#
|
346
|
+
— **def [get\_change\_description](/recipes/recipe_modules/gerrit/api.py#72)(self, host, change, patchset):**
|
324
347
|
|
325
348
|
Get the description for a given CL and patchset.
|
326
349
|
|
327
350
|
Args:
|
328
|
-
host: Gerrit host to query.
|
351
|
+
host: URL of Gerrit host to query.
|
329
352
|
change: The change number.
|
330
353
|
patchset: The patchset number.
|
331
354
|
|
332
355
|
Returns:
|
333
356
|
The description corresponding to given CL and patchset.
|
334
357
|
|
335
|
-
— **def [get\
|
336
|
-
|
337
|
-
Get the upstream branch for a given CL.
|
338
|
-
|
339
|
-
Result is cached.
|
340
|
-
|
341
|
-
Args:
|
342
|
-
host: Gerrit host to query.
|
343
|
-
change: The change number.
|
344
|
-
|
345
|
-
Returns:
|
346
|
-
the name of the branch
|
347
|
-
|
348
|
-
— **def [get\_changes](/recipes/recipe_modules/gerrit/api.py#151)(self, host, query_params, start=None, limit=None, o_params=None, step_test_data=None, \*\*kwargs):**
|
358
|
+
— **def [get\_changes](/recipes/recipe_modules/gerrit/api.py#117)(self, host, query_params, start=None, limit=None, o_params=None, step_test_data=None, \*\*kwargs):**
|
349
359
|
|
350
360
|
Query changes for the given host.
|
351
361
|
|
352
362
|
Args:
|
353
|
-
host: Gerrit host to query.
|
363
|
+
host: URL of Gerrit host to query.
|
354
364
|
query_params: Query parameters as list of (key, value) tuples to form a
|
355
365
|
query as documented here:
|
356
366
|
https://gerrit-review.googlesource.com/Documentation/user-search.html#search-operators
|
@@ -370,7 +380,7 @@ Get a branch from given project and commit
|
|
370
380
|
Returns:
|
371
381
|
the revision of the branch
|
372
382
|
|
373
|
-
— **def [get\_revision\_info](/recipes/recipe_modules/gerrit/api.py#
|
383
|
+
— **def [get\_revision\_info](/recipes/recipe_modules/gerrit/api.py#87)(self, host, change, patchset):**
|
374
384
|
|
375
385
|
Returns the info for a given patchset of a given change.
|
376
386
|
|
@@ -384,7 +394,7 @@ Returns:
|
|
384
394
|
https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#list-changes
|
385
395
|
### *recipe_modules* / [git](/recipes/recipe_modules/git)
|
386
396
|
|
387
|
-
[DEPS](/recipes/recipe_modules/git/__init__.py#1): [infra\_paths](#recipe_modules-infra_paths), [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/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
397
|
+
[DEPS](/recipes/recipe_modules/git/__init__.py#1): [infra\_paths](#recipe_modules-infra_paths), [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/python][recipe_engine/recipe_modules/python], [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]
|
388
398
|
|
389
399
|
#### **class [GitApi](/recipes/recipe_modules/git/api.py#10)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
390
400
|
|
@@ -392,7 +402,7 @@ Returns:
|
|
392
402
|
|
393
403
|
Return a git command step.
|
394
404
|
|
395
|
-
— **def [bundle\_create](/recipes/recipe_modules/git/api.py#
|
405
|
+
— **def [bundle\_create](/recipes/recipe_modules/git/api.py#382)(self, bundle_path, rev_list_args=None, \*\*kwargs):**
|
396
406
|
|
397
407
|
Run 'git bundle create' on a Git repository.
|
398
408
|
|
@@ -402,11 +412,11 @@ Args:
|
|
402
412
|
refs in the Git checkout will be bundled.
|
403
413
|
kwargs: Forwarded to '__call__'.
|
404
414
|
|
405
|
-
— **def [cat\_file\_at\_commit](/recipes/recipe_modules/git/api.py#
|
415
|
+
— **def [cat\_file\_at\_commit](/recipes/recipe_modules/git/api.py#45)(self, file_path, commit_hash, remote_name=None, \*\*kwargs):**
|
406
416
|
|
407
417
|
Outputs the contents of a file at a given revision.
|
408
418
|
|
409
|
-
— **def [checkout](/recipes/recipe_modules/git/api.py#
|
419
|
+
— **def [checkout](/recipes/recipe_modules/git/api.py#117)(self, url, ref=None, dir_path=None, recursive=False, submodules=True, submodule_update_force=False, keep_paths=None, step_suffix=None, curl_trace_file=None, can_fail_build=True, set_got_revision=False, remote_name=None, display_fetch_size=None, file_name=None, submodule_update_recursive=True, use_git_cache=False, progress=True, tags=False):**
|
410
420
|
|
411
421
|
Performs a full git checkout and returns sha1 of checked out revision.
|
412
422
|
|
@@ -440,11 +450,12 @@ Args:
|
|
440
450
|
"git fetch origin" or "git push origin".
|
441
451
|
* arbitrary refs such refs/whatever/not-fetched-by-default-to-cache
|
442
452
|
progress (bool): wether to show progress for fetch or not
|
453
|
+
tags (bool): Also fetch tags.
|
443
454
|
|
444
455
|
Returns: If the checkout was successful, this returns the commit hash of
|
445
456
|
the checked-out-repo. Otherwise this returns None.
|
446
457
|
|
447
|
-
— **def [config\_get](/recipes/recipe_modules/git/api.py#
|
458
|
+
— **def [config\_get](/recipes/recipe_modules/git/api.py#355)(self, prop_name, \*\*kwargs):**
|
448
459
|
|
449
460
|
Returns: (str) The Git config output, or None if no output was generated.
|
450
461
|
|
@@ -452,7 +463,7 @@ Args:
|
|
452
463
|
prop_name: (str) The name of the config property to query.
|
453
464
|
kwargs: Forwarded to '__call__'.
|
454
465
|
|
455
|
-
— **def [count\_objects](/recipes/recipe_modules/git/api.py#
|
466
|
+
— **def [count\_objects](/recipes/recipe_modules/git/api.py#53)(self, previous_result=None, can_fail_build=False, \*\*kwargs):**
|
456
467
|
|
457
468
|
Returns `git count-objects` result as a dict.
|
458
469
|
|
@@ -465,11 +476,11 @@ Args:
|
|
465
476
|
Returns:
|
466
477
|
A dict of count-object values, or None if count-object run failed.
|
467
478
|
|
468
|
-
— **def [fetch\_tags](/recipes/recipe_modules/git/api.py#
|
479
|
+
— **def [fetch\_tags](/recipes/recipe_modules/git/api.py#39)(self, remote_name=None, \*\*kwargs):**
|
469
480
|
|
470
481
|
Fetches all tags from the remote.
|
471
482
|
|
472
|
-
— **def [get\_remote\_url](/recipes/recipe_modules/git/api.py#
|
483
|
+
— **def [get\_remote\_url](/recipes/recipe_modules/git/api.py#372)(self, remote_name=None, \*\*kwargs):**
|
473
484
|
|
474
485
|
Returns: (str) The URL of the remote Git repository, or None.
|
475
486
|
|
@@ -477,11 +488,11 @@ Args:
|
|
477
488
|
remote_name: (str) The name of the remote to query, defaults to 'origin'.
|
478
489
|
kwargs: Forwarded to '__call__'.
|
479
490
|
|
480
|
-
— **def [get\_timestamp](/recipes/recipe_modules/git/api.py#
|
491
|
+
— **def [get\_timestamp](/recipes/recipe_modules/git/api.py#327)(self, commit='HEAD', test_data=None, \*\*kwargs):**
|
481
492
|
|
482
493
|
Find and return the timestamp of the given commit.
|
483
494
|
|
484
|
-
— **def [new\_branch](/recipes/recipe_modules/git/api.py#
|
495
|
+
— **def [new\_branch](/recipes/recipe_modules/git/api.py#395)(self, branch, name=None, upstream=None, \*\*kwargs):**
|
485
496
|
|
486
497
|
Runs git new-branch on a Git repository, to be used before git cl upload.
|
487
498
|
|
@@ -491,7 +502,7 @@ Args:
|
|
491
502
|
upstream (str): to origin/master.
|
492
503
|
kwargs: Forwarded to '__call__'.
|
493
504
|
|
494
|
-
— **def [rebase](/recipes/recipe_modules/git/api.py#
|
505
|
+
— **def [rebase](/recipes/recipe_modules/git/api.py#336)(self, name_prefix, branch, dir_path, remote_name=None, \*\*kwargs):**
|
495
506
|
|
496
507
|
Run rebase HEAD onto branch
|
497
508
|
Args:
|
@@ -516,13 +527,18 @@ DEPRECATED. Consider using gerrit.get_change_description instead.
|
|
516
527
|
— **def [upload](/recipes/recipe_modules/git_cl/api.py#47)(self, message, upload_args=None, \*\*kwargs):**
|
517
528
|
### *recipe_modules* / [gitiles](/recipes/recipe_modules/gitiles)
|
518
529
|
|
519
|
-
[DEPS](/recipes/recipe_modules/gitiles/__init__.py#
|
530
|
+
[DEPS](/recipes/recipe_modules/gitiles/__init__.py#5): [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/python][recipe_engine/recipe_modules/python], [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]
|
520
531
|
|
521
|
-
#### **class [Gitiles](/recipes/recipe_modules/gitiles/api.py#
|
532
|
+
#### **class [Gitiles](/recipes/recipe_modules/gitiles/api.py#11)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
522
533
|
|
523
534
|
Module for polling a git repository using the Gitiles web interface.
|
524
535
|
|
525
|
-
— **def [
|
536
|
+
— **def [canonicalize\_repo\_url](/recipes/recipe_modules/gitiles/api.py#216)(self, repo_url):**
|
537
|
+
|
538
|
+
Returns a canonical form of repo_url. If not recognized, returns as is.
|
539
|
+
|
540
|
+
|
541
|
+
— **def [commit\_log](/recipes/recipe_modules/gitiles/api.py#114)(self, url, commit, step_name=None, attempts=None):**
|
526
542
|
|
527
543
|
Returns: (dict) the Gitiles commit log structure for a given commit.
|
528
544
|
|
@@ -532,7 +548,23 @@ Args:
|
|
532
548
|
step_name (str): If not None, override the step name.
|
533
549
|
attempts (int): Number of times to try the request before failing.
|
534
550
|
|
535
|
-
— **def [download\
|
551
|
+
— **def [download\_archive](/recipes/recipe_modules/gitiles/api.py#156)(self, repository_url, destination, revision='refs/heads/master'):**
|
552
|
+
|
553
|
+
Downloads an archive of the repo and extracts it to `destination`.
|
554
|
+
|
555
|
+
If the gitiles server attempts to provide a tarball with paths which escape
|
556
|
+
`destination`, this function will extract all valid files and then
|
557
|
+
raise StepFailure with an attribute `StepFailure.gitiles_skipped_files`
|
558
|
+
containing the names of the files that were skipped.
|
559
|
+
|
560
|
+
Args:
|
561
|
+
repository_url (str): Full URL to the repository
|
562
|
+
destination (Path): Local path to extract the archive to. Must not exist
|
563
|
+
prior to this call.
|
564
|
+
revision (str): The ref or revision in the repo to download. Defaults to
|
565
|
+
'refs/heads/master'.
|
566
|
+
|
567
|
+
— **def [download\_file](/recipes/recipe_modules/gitiles/api.py#130)(self, repository_url, file_path, branch='master', step_name=None, attempts=None, \*\*kwargs):**
|
536
568
|
|
537
569
|
Downloads raw file content from a Gitiles repository.
|
538
570
|
|
@@ -546,7 +578,7 @@ Args:
|
|
546
578
|
Returns:
|
547
579
|
Raw file content.
|
548
580
|
|
549
|
-
— **def [log](/recipes/recipe_modules/gitiles/api.py#
|
581
|
+
— **def [log](/recipes/recipe_modules/gitiles/api.py#68)(self, url, ref, limit=0, cursor=None, step_name=None, attempts=None, \*\*kwargs):**
|
550
582
|
|
551
583
|
Returns the most recent commits under the given ref with properties.
|
552
584
|
|
@@ -569,20 +601,31 @@ Returns:
|
|
569
601
|
Cursor can be used for subsequent calls to log for paging. If None,
|
570
602
|
signals that there are no more commits to fetch.
|
571
603
|
|
572
|
-
— **def [
|
604
|
+
— **def [parse\_repo\_url](/recipes/recipe_modules/gitiles/api.py#205)(self, repo_url):**
|
605
|
+
|
606
|
+
Returns (host, project) pair.
|
607
|
+
|
608
|
+
Returns (None, None) if repo_url is not recognized.
|
609
|
+
|
610
|
+
— **def [refs](/recipes/recipe_modules/gitiles/api.py#56)(self, url, step_name='refs', attempts=None):**
|
573
611
|
|
574
612
|
Returns a list of refs in the remote repository.
|
613
|
+
|
614
|
+
— **def [unparse\_repo\_url](/recipes/recipe_modules/gitiles/api.py#212)(self, host, project):**
|
615
|
+
|
616
|
+
Generates a Gitiles repo URL. See also parse_repo_url.
|
575
617
|
### *recipe_modules* / [gsutil](/recipes/recipe_modules/gsutil)
|
576
618
|
|
577
619
|
[DEPS](/recipes/recipe_modules/gsutil/__init__.py#1): [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/python][recipe_engine/recipe_modules/python]
|
578
620
|
|
579
621
|
#### **class [GSUtilApi](/recipes/recipe_modules/gsutil/api.py#9)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
580
622
|
|
581
|
-
— **def [\_\_call\_\_](/recipes/recipe_modules/gsutil/api.py#14)(self, cmd, name=None, use_retry_wrapper=True, version=None, parallel_upload=False, multithreaded=False, \*\*kwargs):**
|
623
|
+
— **def [\_\_call\_\_](/recipes/recipe_modules/gsutil/api.py#14)(self, cmd, name=None, use_retry_wrapper=True, version=None, parallel_upload=False, multithreaded=False, infra_step=True, \*\*kwargs):**
|
582
624
|
|
583
625
|
A step to run arbitrary gsutil commands.
|
584
626
|
|
585
|
-
|
627
|
+
On LUCI this should automatically use the ambient task account credentials.
|
628
|
+
On Buildbot, this assumes that gsutil authentication environment variables
|
586
629
|
(AWS_CREDENTIAL_FILE and BOTO_CONFIG) are already set, though if you want to
|
587
630
|
set them to something else you can always do so using the env={} kwarg.
|
588
631
|
|
@@ -590,28 +633,29 @@ Note also that gsutil does its own wildcard processing, so wildcards are
|
|
590
633
|
valid in file-like portions of the cmd. See 'gsutil help wildcards'.
|
591
634
|
|
592
635
|
Arguments:
|
593
|
-
cmd: list of (string) arguments to pass to gsutil.
|
594
|
-
Include gsutil-level options first (see 'gsutil help options').
|
595
|
-
name: the (string) name of the step to use.
|
596
|
-
Defaults to the first non-flag token in the cmd.
|
597
636
|
|
598
|
-
|
637
|
+
* cmd (List[str|Path]) - Arguments to pass to gsutil. Include gsutil-level
|
638
|
+
options first (see 'gsutil help options').
|
639
|
+
* name (str) - Name of the step to use. Defaults to the first non-flag
|
640
|
+
token in the cmd.
|
599
641
|
|
600
|
-
— **def [
|
642
|
+
— **def [cat](/recipes/recipe_modules/gsutil/api.py#108)(self, url, args=None, \*\*kwargs):**
|
601
643
|
|
602
|
-
— **def [
|
644
|
+
— **def [copy](/recipes/recipe_modules/gsutil/api.py#115)(self, source_bucket, source, dest_bucket, dest, args=None, link_name='gsutil.copy', metadata=None, unauthenticated_url=False, \*\*kwargs):**
|
603
645
|
|
604
|
-
— **def [download
|
646
|
+
— **def [download](/recipes/recipe_modules/gsutil/api.py#94)(self, bucket, source, dest, args=None, \*\*kwargs):**
|
647
|
+
|
648
|
+
— **def [download\_url](/recipes/recipe_modules/gsutil/api.py#101)(self, url, dest, args=None, \*\*kwargs):**
|
605
649
|
|
606
650
|
  **@property**<br>— **def [gsutil\_py\_path](/recipes/recipe_modules/gsutil/api.py#10)(self):**
|
607
651
|
|
608
|
-
— **def [list](/recipes/recipe_modules/gsutil/api.py#
|
652
|
+
— **def [list](/recipes/recipe_modules/gsutil/api.py#132)(self, url, args=None, \*\*kwargs):**
|
609
653
|
|
610
|
-
— **def [remove\_url](/recipes/recipe_modules/gsutil/api.py#
|
654
|
+
— **def [remove\_url](/recipes/recipe_modules/gsutil/api.py#146)(self, url, args=None, \*\*kwargs):**
|
611
655
|
|
612
|
-
— **def [signurl](/recipes/recipe_modules/gsutil/api.py#
|
656
|
+
— **def [signurl](/recipes/recipe_modules/gsutil/api.py#139)(self, private_key_file, bucket, dest, args=None, \*\*kwargs):**
|
613
657
|
|
614
|
-
— **def [upload](/recipes/recipe_modules/gsutil/api.py#
|
658
|
+
— **def [upload](/recipes/recipe_modules/gsutil/api.py#78)(self, source, bucket, dest, args=None, link_name='gsutil.upload', metadata=None, unauthenticated_url=False, \*\*kwargs):**
|
615
659
|
### *recipe_modules* / [infra\_paths](/recipes/recipe_modules/infra_paths)
|
616
660
|
|
617
661
|
[DEPS](/recipes/recipe_modules/infra_paths/__init__.py#1): [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
|
@@ -630,9 +674,69 @@ It returns git_cache path if it is defined (Buildbot world), otherwise
|
|
630
674
|
uses the more generic [CACHE]/git path (LUCI world).
|
631
675
|
|
632
676
|
— **def [initialize](/recipes/recipe_modules/infra_paths/api.py#11)(self):**
|
677
|
+
### *recipe_modules* / [osx\_sdk](/recipes/recipe_modules/osx_sdk)
|
678
|
+
|
679
|
+
[DEPS](/recipes/recipe_modules/osx_sdk/__init__.py#5): [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]
|
680
|
+
|
681
|
+
The `osx_sdk` module provides safe functions to access a semi-hermetic
|
682
|
+
XCode installation.
|
683
|
+
|
684
|
+
Available only to Google-run bots.
|
685
|
+
|
686
|
+
#### **class [OSXSDKApi](/recipes/recipe_modules/osx_sdk/api.py#24)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
687
|
+
|
688
|
+
API for using OS X SDK distributed via CIPD.
|
689
|
+
|
690
|
+
  **@contextmanager**<br>— **def [\_\_call\_\_](/recipes/recipe_modules/osx_sdk/api.py#37)(self, kind):**
|
691
|
+
|
692
|
+
Sets up the XCode SDK environment.
|
693
|
+
|
694
|
+
Is a no-op on non-mac platforms.
|
695
|
+
|
696
|
+
This will deploy the helper tool and the XCode.app bundle at
|
697
|
+
`[START_DIR]/cache/osx_sdk`.
|
698
|
+
|
699
|
+
To avoid machines rebuilding these on every run, set up a named cache in
|
700
|
+
your cr-buildbucket.cfg file like:
|
701
|
+
|
702
|
+
caches: {
|
703
|
+
# Cache for mac_toolchain tool and XCode.app
|
704
|
+
name: "osx_sdk"
|
705
|
+
path: "osx_sdk"
|
706
|
+
}
|
707
|
+
|
708
|
+
If you have builders which e.g. use a non-current SDK, you can give them
|
709
|
+
a uniqely named cache:
|
710
|
+
|
711
|
+
caches: {
|
712
|
+
# Cache for N-1 version mac_toolchain tool and XCode.app
|
713
|
+
name: "osx_sdk_old"
|
714
|
+
path: "osx_sdk"
|
715
|
+
}
|
716
|
+
|
717
|
+
Similarly, if you have mac and iOS builders you may want to distinguish the
|
718
|
+
cache name by adding '_ios' to it. However, if you're sharing the same bots
|
719
|
+
for both mac and iOS, consider having a single cache and just always
|
720
|
+
fetching the iOS version. This will lead to lower overall disk utilization
|
721
|
+
and should help to reduce cache thrashing.
|
722
|
+
|
723
|
+
Usage:
|
724
|
+
with api.osx_sdk('mac'):
|
725
|
+
# sdk with mac build bits
|
726
|
+
|
727
|
+
with api.osx_sdk('ios'):
|
728
|
+
# sdk with mac+iOS build bits
|
729
|
+
|
730
|
+
Args:
|
731
|
+
kind ('mac'|'ios'): How the SDK should be configured. iOS includes the
|
732
|
+
base XCode distribution, as well as the iOS simulators (which can be
|
733
|
+
quite large).
|
734
|
+
|
735
|
+
Raises:
|
736
|
+
StepFailure or InfraFailure.
|
633
737
|
### *recipe_modules* / [presubmit](/recipes/recipe_modules/presubmit)
|
634
738
|
|
635
|
-
[DEPS](/recipes/recipe_modules/presubmit/__init__.py#1): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
739
|
+
[DEPS](/recipes/recipe_modules/presubmit/__init__.py#1): [depot\_tools](#recipe_modules-depot_tools), [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
636
740
|
|
637
741
|
#### **class [PresubmitApi](/recipes/recipe_modules/presubmit/api.py#7)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
638
742
|
|
@@ -643,54 +747,87 @@ Return a presubmit step.
|
|
643
747
|
  **@property**<br>— **def [presubmit\_support\_path](/recipes/recipe_modules/presubmit/api.py#8)(self):**
|
644
748
|
### *recipe_modules* / [tryserver](/recipes/recipe_modules/tryserver)
|
645
749
|
|
646
|
-
[DEPS](/recipes/recipe_modules/tryserver/__init__.py#5): [gerrit](#recipe_modules-gerrit), [git](#recipe_modules-git), [git\_cl](#recipe_modules-git_cl), [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/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
750
|
+
[DEPS](/recipes/recipe_modules/tryserver/__init__.py#5): [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/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
647
751
|
|
648
|
-
#### **class [TryserverApi](/recipes/recipe_modules/tryserver/api.py#
|
752
|
+
#### **class [TryserverApi](/recipes/recipe_modules/tryserver/api.py#11)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
649
753
|
|
650
|
-
— **def [add\_failure\_reason](/recipes/recipe_modules/tryserver/api.py#
|
754
|
+
— **def [add\_failure\_reason](/recipes/recipe_modules/tryserver/api.py#215)(self, reason):**
|
651
755
|
|
652
756
|
Records a more detailed reason why build is failing.
|
653
757
|
|
654
758
|
The reason can be any JSON-serializable object.
|
655
759
|
|
656
|
-
— **def [
|
760
|
+
  **@property**<br>— **def [gerrit\_change](/recipes/recipe_modules/tryserver/api.py#34)(self):**
|
761
|
+
|
762
|
+
Returns current gerrit change, if there is exactly one.
|
763
|
+
|
764
|
+
Returns a self.m.buildbucket.common_pb2.GerritChange or None.
|
765
|
+
|
766
|
+
  **@property**<br>— **def [gerrit\_change\_fetch\_ref](/recipes/recipe_modules/tryserver/api.py#97)(self):**
|
767
|
+
|
768
|
+
Returns gerrit patch ref, e.g. "refs/heads/45/12345/6, or None.
|
769
|
+
|
770
|
+
Populated iff gerrit_change is populated.
|
771
|
+
|
772
|
+
  **@property**<br>— **def [gerrit\_change\_repo\_url](/recipes/recipe_modules/tryserver/api.py#42)(self):**
|
773
|
+
|
774
|
+
Returns canonical URL of the gitiles repo of the current Gerrit CL.
|
775
|
+
|
776
|
+
Populated iff gerrit_change is populated.
|
777
|
+
|
778
|
+
  **@property**<br>— **def [gerrit\_change\_target\_ref](/recipes/recipe_modules/tryserver/api.py#106)(self):**
|
779
|
+
|
780
|
+
Returns gerrit change destination ref, e.g. "refs/heads/master".
|
781
|
+
|
782
|
+
Populated iff gerrit_change is populated.
|
783
|
+
|
784
|
+
— **def [get\_files\_affected\_by\_patch](/recipes/recipe_modules/tryserver/api.py#136)(self, patch_root, \*\*kwargs):**
|
657
785
|
|
658
786
|
Returns list of paths to files affected by the patch.
|
659
787
|
|
660
788
|
Argument:
|
661
789
|
patch_root: path relative to api.path['root'], usually obtained from
|
662
|
-
api.gclient.
|
790
|
+
api.gclient.get_gerrit_patch_root().
|
663
791
|
|
664
792
|
Returned paths will be relative to to patch_root.
|
665
793
|
|
666
|
-
— **def [get\_footer](/recipes/recipe_modules/tryserver/api.py#
|
794
|
+
— **def [get\_footer](/recipes/recipe_modules/tryserver/api.py#271)(self, tag, patch_text=None):**
|
667
795
|
|
668
796
|
Gets a specific tag from a CL description
|
669
797
|
|
670
|
-
— **def [get\_footers](/recipes/recipe_modules/tryserver/api.py#
|
798
|
+
— **def [get\_footers](/recipes/recipe_modules/tryserver/api.py#251)(self, patch_text=None):**
|
671
799
|
|
672
800
|
Retrieves footers from the patch description.
|
673
801
|
|
674
802
|
footers are machine readable tags embedded in commit messages. See
|
675
803
|
git-footers documentation for more information.
|
676
804
|
|
677
|
-
&
|
805
|
+
— **def [initialize](/recipes/recipe_modules/tryserver/api.py#23)(self):**
|
806
|
+
|
807
|
+
  **@property**<br>— **def [is\_gerrit\_issue](/recipes/recipe_modules/tryserver/api.py#120)(self):**
|
678
808
|
|
679
809
|
Returns true iff the properties exist to match a Gerrit issue.
|
680
810
|
|
681
|
-
  **@property**<br>— **def [is\_patch\_in\_git](/recipes/recipe_modules/tryserver/api.py#
|
811
|
+
  **@property**<br>— **def [is\_patch\_in\_git](/recipes/recipe_modules/tryserver/api.py#130)(self):**
|
682
812
|
|
683
|
-
  **@property**<br>— **def [is\_tryserver](/recipes/recipe_modules/tryserver/api.py#
|
813
|
+
  **@property**<br>— **def [is\_tryserver](/recipes/recipe_modules/tryserver/api.py#115)(self):**
|
684
814
|
|
685
815
|
Returns true iff we have a change to check out.
|
686
816
|
|
687
|
-
— **def [normalize\_footer\_name](/recipes/recipe_modules/tryserver/api.py#
|
817
|
+
— **def [normalize\_footer\_name](/recipes/recipe_modules/tryserver/api.py#275)(self, footer):**
|
688
818
|
|
689
|
-
— **def [set\_compile\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#
|
819
|
+
— **def [set\_compile\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#194)(self):**
|
690
820
|
|
691
821
|
Mark the tryjob result as a compile failure.
|
692
822
|
|
693
|
-
&
|
823
|
+
— **def [set\_do\_not\_retry\_build](/recipes/recipe_modules/tryserver/api.py#181)(self):**
|
824
|
+
|
825
|
+
A flag to indicate the build should not be retried by the CQ.
|
826
|
+
|
827
|
+
This mechanism is used to reduce CQ duration when retrying will likely
|
828
|
+
return an identical result.
|
829
|
+
|
830
|
+
  **@contextlib.contextmanager**<br>— **def [set\_failure\_hash](/recipes/recipe_modules/tryserver/api.py#224)(self):**
|
694
831
|
|
695
832
|
Context manager that sets a failure_hash build property on StepFailure.
|
696
833
|
|
@@ -699,7 +836,7 @@ for the same reason. For example, if a patch is bad (breaks something),
|
|
699
836
|
we'd expect it to always break in the same way. Different failures
|
700
837
|
for the same patch are usually a sign of flakiness.
|
701
838
|
|
702
|
-
— **def [set\_invalid\_test\_results\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#
|
839
|
+
— **def [set\_invalid\_test\_results\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#206)(self):**
|
703
840
|
|
704
841
|
Mark the tryjob result as having invalid test results.
|
705
842
|
|
@@ -707,30 +844,69 @@ This means we run some tests, but the results were not valid
|
|
707
844
|
(e.g. no list of specific test cases that failed, or too many
|
708
845
|
tests failing, etc).
|
709
846
|
|
710
|
-
— **def [set\_patch\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#
|
847
|
+
— **def [set\_patch\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#190)(self):**
|
711
848
|
|
712
849
|
Mark the tryjob result as failure to apply the patch.
|
713
850
|
|
714
|
-
— **def [set\_subproject\_tag](/recipes/recipe_modules/tryserver/api.py#
|
851
|
+
— **def [set\_subproject\_tag](/recipes/recipe_modules/tryserver/api.py#163)(self, subproject_tag):**
|
715
852
|
|
716
853
|
Adds a subproject tag to the build.
|
717
854
|
|
718
855
|
This can be used to distinguish between builds that execute different steps
|
719
856
|
depending on what was patched, e.g. blink vs. pure chromium patches.
|
720
857
|
|
721
|
-
— **def [set\_test\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#
|
858
|
+
— **def [set\_test\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#198)(self):**
|
722
859
|
|
723
860
|
Mark the tryjob result as a test failure.
|
724
861
|
|
725
862
|
This means we started running actual tests (not prerequisite steps
|
726
863
|
like checkout or compile), and some of these tests have failed.
|
864
|
+
### *recipe_modules* / [windows\_sdk](/recipes/recipe_modules/windows_sdk)
|
865
|
+
|
866
|
+
[DEPS](/recipes/recipe_modules/windows_sdk/__init__.py#5): [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]
|
867
|
+
|
868
|
+
The `windows_sdk` module provides safe functions to access a hermetic
|
869
|
+
Microsoft Visual Studio installation.
|
870
|
+
|
871
|
+
Available only to Google-run bots.
|
872
|
+
|
873
|
+
#### **class [WindowsSDKApi](/recipes/recipe_modules/windows_sdk/api.py#16)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
|
874
|
+
|
875
|
+
API for using Windows SDK distributed via CIPD.
|
876
|
+
|
877
|
+
  **@contextmanager**<br>— **def [\_\_call\_\_](/recipes/recipe_modules/windows_sdk/api.py#26)(self, path=None, version=None, enabled=True, target_arch='x64'):**
|
878
|
+
|
879
|
+
Setups the SDK environment when enabled.
|
880
|
+
|
881
|
+
Args:
|
882
|
+
path (path): Path to a directory where to install the SDK
|
883
|
+
(default is '[CACHE]/windows_sdk')
|
884
|
+
version (str): CIPD version of the SDK
|
885
|
+
(default is set via $infra/windows_sdk.version property)
|
886
|
+
enabled (bool): Whether the SDK should be used or not.
|
887
|
+
target_arch (str): 'x86' or 'x64'.
|
888
|
+
|
889
|
+
Yields:
|
890
|
+
If enabled, yields SDKPaths object with paths to well-known roots within
|
891
|
+
the deployed bundle:
|
892
|
+
* win_sdk - a Path to the root of the extracted Windows SDK.
|
893
|
+
* dia_sdk - a Path to the root of the extracted Debug Interface Access
|
894
|
+
SDK.
|
895
|
+
|
896
|
+
Raises:
|
897
|
+
StepFailure or InfraFailure.
|
727
898
|
## Recipes
|
728
899
|
|
729
900
|
### *recipes* / [bot\_update:examples/full](/recipes/recipe_modules/bot_update/examples/full.py)
|
730
901
|
|
731
|
-
[DEPS](/recipes/recipe_modules/bot_update/examples/full.py#5): [bot\_update](#recipe_modules-bot_update), [gclient](#recipe_modules-gclient), [gerrit](#recipe_modules-gerrit), [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]
|
902
|
+
[DEPS](/recipes/recipe_modules/bot_update/examples/full.py#5): [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]
|
732
903
|
|
733
|
-
— **def [RunSteps](/recipes/recipe_modules/bot_update/examples/full.py#
|
904
|
+
— **def [RunSteps](/recipes/recipe_modules/bot_update/examples/full.py#20)(api):**
|
905
|
+
### *recipes* / [bot\_update:tests/ensure\_checkout](/recipes/recipe_modules/bot_update/tests/ensure_checkout.py)
|
906
|
+
|
907
|
+
[DEPS](/recipes/recipe_modules/bot_update/tests/ensure_checkout.py#7): [bot\_update](#recipe_modules-bot_update), [gclient](#recipe_modules-gclient), [recipe\_engine/json][recipe_engine/recipe_modules/json]
|
908
|
+
|
909
|
+
— **def [RunSteps](/recipes/recipe_modules/bot_update/tests/ensure_checkout.py#14)(api):**
|
734
910
|
### *recipes* / [cipd:examples/full](/recipes/recipe_modules/cipd/examples/full.py)
|
735
911
|
|
736
912
|
[DEPS](/recipes/recipe_modules/cipd/examples/full.py#8): [cipd](#recipe_modules-cipd), [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/step][recipe_engine/recipe_modules/step]
|
@@ -755,12 +931,12 @@ like checkout or compile), and some of these tests have failed.
|
|
755
931
|
|
756
932
|
[DEPS](/recipes/recipe_modules/gclient/examples/full.py#5): [gclient](#recipe_modules-gclient), [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]
|
757
933
|
|
758
|
-
— **def [RunSteps](/recipes/recipe_modules/gclient/examples/full.py#
|
934
|
+
— **def [RunSteps](/recipes/recipe_modules/gclient/examples/full.py#53)(api):**
|
759
935
|
### *recipes* / [gclient:tests/patch\_project](/recipes/recipe_modules/gclient/tests/patch_project.py)
|
760
936
|
|
761
|
-
[DEPS](/recipes/recipe_modules/gclient/tests/patch_project.py#9): [gclient](#recipe_modules-gclient), [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
|
937
|
+
[DEPS](/recipes/recipe_modules/gclient/tests/patch_project.py#9): [gclient](#recipe_modules-gclient), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
|
762
938
|
|
763
|
-
— **def [RunSteps](/recipes/recipe_modules/gclient/tests/patch_project.py#
|
939
|
+
— **def [RunSteps](/recipes/recipe_modules/gclient/tests/patch_project.py#22)(api, patch_project, patch_repository_url):**
|
764
940
|
### *recipes* / [gerrit:examples/full](/recipes/recipe_modules/gerrit/examples/full.py)
|
765
941
|
|
766
942
|
[DEPS](/recipes/recipe_modules/gerrit/examples/full.py#5): [gerrit](#recipe_modules-gerrit), [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
@@ -768,9 +944,9 @@ like checkout or compile), and some of these tests have failed.
|
|
768
944
|
— **def [RunSteps](/recipes/recipe_modules/gerrit/examples/full.py#11)(api):**
|
769
945
|
### *recipes* / [git:examples/full](/recipes/recipe_modules/git/examples/full.py)
|
770
946
|
|
771
|
-
[DEPS](/recipes/recipe_modules/git/examples/full.py#5): [git](#recipe_modules-git), [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]
|
947
|
+
[DEPS](/recipes/recipe_modules/git/examples/full.py#5): [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/runtime][recipe_engine/recipe_modules/runtime], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
772
948
|
|
773
|
-
— **def [RunSteps](/recipes/recipe_modules/git/examples/full.py#
|
949
|
+
— **def [RunSteps](/recipes/recipe_modules/git/examples/full.py#19)(api):**
|
774
950
|
### *recipes* / [git\_cl:examples/full](/recipes/recipe_modules/git_cl/examples/full.py)
|
775
951
|
|
776
952
|
[DEPS](/recipes/recipe_modules/git_cl/examples/full.py#9): [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]
|
@@ -778,9 +954,14 @@ like checkout or compile), and some of these tests have failed.
|
|
778
954
|
— **def [RunSteps](/recipes/recipe_modules/git_cl/examples/full.py#17)(api):**
|
779
955
|
### *recipes* / [gitiles:examples/full](/recipes/recipe_modules/gitiles/examples/full.py)
|
780
956
|
|
781
|
-
[DEPS](/recipes/recipe_modules/gitiles/examples/full.py#5): [gitiles](#recipe_modules-gitiles), [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/properties][recipe_engine/recipe_modules/properties]
|
957
|
+
[DEPS](/recipes/recipe_modules/gitiles/examples/full.py#5): [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]
|
958
|
+
|
959
|
+
— **def [RunSteps](/recipes/recipe_modules/gitiles/examples/full.py#14)(api):**
|
960
|
+
### *recipes* / [gitiles:tests/parse\_repo\_url](/recipes/recipe_modules/gitiles/tests/parse_repo_url.py)
|
782
961
|
|
783
|
-
|
962
|
+
[DEPS](/recipes/recipe_modules/gitiles/tests/parse_repo_url.py#5): [gitiles](#recipe_modules-gitiles), [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
963
|
+
|
964
|
+
— **def [RunSteps](/recipes/recipe_modules/gitiles/tests/parse_repo_url.py#12)(api):**
|
784
965
|
### *recipes* / [gsutil:examples/full](/recipes/recipe_modules/gsutil/examples/full.py)
|
785
966
|
|
786
967
|
[DEPS](/recipes/recipe_modules/gsutil/examples/full.py#5): [gsutil](#recipe_modules-gsutil), [recipe\_engine/path][recipe_engine/recipe_modules/path]
|
@@ -793,6 +974,11 @@ Move things around in a loop!
|
|
793
974
|
[DEPS](/recipes/recipe_modules/infra_paths/examples/full.py#7): [infra\_paths](#recipe_modules-infra_paths), [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/step][recipe_engine/recipe_modules/step]
|
794
975
|
|
795
976
|
— **def [RunSteps](/recipes/recipe_modules/infra_paths/examples/full.py#16)(api):**
|
977
|
+
### *recipes* / [osx\_sdk:examples/full](/recipes/recipe_modules/osx_sdk/examples/full.py)
|
978
|
+
|
979
|
+
[DEPS](/recipes/recipe_modules/osx_sdk/examples/full.py#5): [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]
|
980
|
+
|
981
|
+
— **def [RunSteps](/recipes/recipe_modules/osx_sdk/examples/full.py#13)(api):**
|
796
982
|
### *recipes* / [presubmit:examples/full](/recipes/recipe_modules/presubmit/examples/full.py)
|
797
983
|
|
798
984
|
[DEPS](/recipes/recipe_modules/presubmit/examples/full.py#5): [presubmit](#recipe_modules-presubmit)
|
@@ -800,20 +986,27 @@ Move things around in a loop!
|
|
800
986
|
— **def [RunSteps](/recipes/recipe_modules/presubmit/examples/full.py#10)(api):**
|
801
987
|
### *recipes* / [tryserver:examples/full](/recipes/recipe_modules/tryserver/examples/full.py)
|
802
988
|
|
803
|
-
[DEPS](/recipes/recipe_modules/tryserver/examples/full.py#5): [tryserver](#recipe_modules-tryserver), [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/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
804
|
-
|
805
|
-
— **def [RunSteps](/recipes/recipe_modules/tryserver/examples/full.py#
|
806
|
-
|
807
|
-
|
808
|
-
[recipe_engine/recipe_modules/
|
809
|
-
|
810
|
-
[
|
811
|
-
|
812
|
-
[recipe_engine/recipe_modules/
|
813
|
-
[recipe_engine/recipe_modules/
|
814
|
-
[recipe_engine/recipe_modules/
|
815
|
-
[recipe_engine/recipe_modules/
|
816
|
-
[recipe_engine/recipe_modules/
|
817
|
-
[recipe_engine/recipe_modules/
|
818
|
-
[recipe_engine/recipe_modules/
|
819
|
-
[recipe_engine/
|
989
|
+
[DEPS](/recipes/recipe_modules/tryserver/examples/full.py#5): [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/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
|
990
|
+
|
991
|
+
— **def [RunSteps](/recipes/recipe_modules/tryserver/examples/full.py#19)(api):**
|
992
|
+
### *recipes* / [windows\_sdk:examples/full](/recipes/recipe_modules/windows_sdk/examples/full.py)
|
993
|
+
|
994
|
+
[DEPS](/recipes/recipe_modules/windows_sdk/examples/full.py#5): [windows\_sdk](#recipe_modules-windows_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]
|
995
|
+
|
996
|
+
— **def [RunSteps](/recipes/recipe_modules/windows_sdk/examples/full.py#13)(api):**
|
997
|
+
|
998
|
+
[recipe_engine/recipe_modules/buildbucket]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-buildbucket
|
999
|
+
[recipe_engine/recipe_modules/cipd]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-cipd
|
1000
|
+
[recipe_engine/recipe_modules/context]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-context
|
1001
|
+
[recipe_engine/recipe_modules/file]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-file
|
1002
|
+
[recipe_engine/recipe_modules/json]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-json
|
1003
|
+
[recipe_engine/recipe_modules/path]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-path
|
1004
|
+
[recipe_engine/recipe_modules/platform]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-platform
|
1005
|
+
[recipe_engine/recipe_modules/properties]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-properties
|
1006
|
+
[recipe_engine/recipe_modules/python]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-python
|
1007
|
+
[recipe_engine/recipe_modules/raw_io]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-raw_io
|
1008
|
+
[recipe_engine/recipe_modules/runtime]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-runtime
|
1009
|
+
[recipe_engine/recipe_modules/source_manifest]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-source_manifest
|
1010
|
+
[recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-step
|
1011
|
+
[recipe_engine/recipe_modules/url]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/README.recipes.md#recipe_modules-url
|
1012
|
+
[recipe_engine/wkt/RecipeApi]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/602257a66a4e492e7029ccaf542b55f9ef641346/recipe_engine/recipe_api.py#838
|