libv8 7.3.492.27.1 → 8.4.255.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +11 -14
- data/CHANGELOG.md +10 -0
- data/README.md +10 -11
- data/Rakefile +30 -36
- data/ext/libv8/builder.rb +1 -1
- data/lib/libv8/version.rb +1 -1
- data/libv8.gemspec +1 -3
- data/vendor/depot_tools/{cipd.ps1 → .cipd_impl.ps1} +0 -0
- data/vendor/depot_tools/.gitattributes +1 -1
- data/vendor/depot_tools/.gitignore +7 -2
- data/vendor/depot_tools/.style.yapf +3 -1
- data/vendor/depot_tools/.vpython +55 -0
- data/vendor/depot_tools/.vpython3 +23 -0
- data/vendor/depot_tools/CROS_OWNERS +3 -1
- data/vendor/depot_tools/GOMA_OWNERS +9 -0
- data/vendor/depot_tools/LUCI_OWNERS +5 -0
- data/vendor/depot_tools/OWNERS +21 -6
- data/vendor/depot_tools/PRESUBMIT.py +35 -18
- data/vendor/depot_tools/README.git-cl.md +0 -14
- data/vendor/depot_tools/README.md +1 -1
- data/vendor/depot_tools/WATCHLISTS +2 -2
- data/vendor/depot_tools/auth.py +60 -772
- data/vendor/depot_tools/autoninja +12 -6
- data/vendor/depot_tools/autoninja.bat +14 -6
- data/vendor/depot_tools/autoninja.py +64 -27
- data/vendor/depot_tools/bb +1 -1
- data/vendor/depot_tools/bootstrap/{win/README.md → README.md} +28 -14
- data/vendor/depot_tools/bootstrap/{win/win_tools.py → bootstrap.py} +60 -43
- data/vendor/depot_tools/bootstrap/{win/git-bash.template.sh → git-bash.template.sh} +1 -1
- data/vendor/depot_tools/bootstrap/{win/git.template.bat → git.template.bat} +0 -0
- data/vendor/depot_tools/bootstrap/manifest.txt +27 -0
- data/vendor/depot_tools/bootstrap/manifest_bleeding_edge.txt +27 -0
- data/vendor/depot_tools/bootstrap/{win/profile.d.python.sh → profile.d.python.sh} +0 -0
- data/vendor/depot_tools/bootstrap/{win/python27.bleeding_edge.bat → python27.bat} +0 -0
- data/vendor/depot_tools/bootstrap/{win/python27.new.bat → python3.bat} +3 -3
- data/vendor/depot_tools/bootstrap/{win/win_tools.bat → win_tools.bat} +21 -16
- data/vendor/depot_tools/bootstrap_python3 +35 -0
- data/vendor/depot_tools/cbuildbot +1 -1
- data/vendor/depot_tools/chrome_set_ver +1 -1
- data/vendor/depot_tools/cipd +43 -39
- data/vendor/depot_tools/cipd.bat +2 -2
- data/vendor/depot_tools/cipd_client_version +1 -1
- data/vendor/depot_tools/cipd_client_version.digests +15 -14
- data/vendor/depot_tools/cipd_manifest.txt +31 -8
- data/vendor/depot_tools/cipd_manifest.versions +278 -158
- data/vendor/depot_tools/cit.py +9 -7
- data/vendor/depot_tools/clang_format.py +4 -1
- data/vendor/depot_tools/clang_format_merge_driver.py +10 -8
- data/vendor/depot_tools/compile_single_file.py +7 -2
- data/vendor/depot_tools/cpplint.py +51 -45
- data/vendor/depot_tools/cros +87 -0
- data/vendor/depot_tools/cros_sdk +1 -1
- data/vendor/depot_tools/crosjobs +13 -0
- data/vendor/depot_tools/detect_host_arch.py +0 -1
- data/vendor/depot_tools/dirmd +12 -0
- data/vendor/depot_tools/dirmd.bat +7 -0
- data/vendor/depot_tools/download_from_google_storage.py +47 -27
- data/vendor/depot_tools/ensure_bootstrap +14 -0
- data/vendor/depot_tools/fetch +14 -1
- data/vendor/depot_tools/fetch.bat +14 -1
- data/vendor/depot_tools/fetch.py +5 -7
- data/vendor/depot_tools/fetch_configs/chromium.py +6 -4
- data/vendor/depot_tools/fetch_configs/devtools-frontend.py +44 -0
- data/vendor/depot_tools/fetch_configs/ios_internal.py +10 -19
- data/vendor/depot_tools/fix_encoding.py +19 -5
- data/vendor/depot_tools/gclient +28 -12
- data/vendor/depot_tools/gclient-new-workdir.py +2 -0
- data/vendor/depot_tools/gclient.bat +18 -1
- data/vendor/depot_tools/gclient.py +160 -119
- data/vendor/depot_tools/gclient_eval.py +119 -107
- data/vendor/depot_tools/gclient_paths.py +67 -57
- data/vendor/depot_tools/gclient_scm.py +181 -159
- data/vendor/depot_tools/gclient_utils.py +177 -124
- data/vendor/depot_tools/gerrit_client.py +21 -13
- data/vendor/depot_tools/gerrit_util.py +188 -228
- data/vendor/depot_tools/git-cache +1 -1
- data/vendor/depot_tools/git-cl +1 -1
- data/vendor/depot_tools/git-drover +1 -1
- data/vendor/depot_tools/git-find-releases +1 -1
- data/vendor/depot_tools/git-footers +1 -1
- data/vendor/depot_tools/git-freeze +1 -1
- data/vendor/depot_tools/git-hyper-blame +1 -1
- data/vendor/depot_tools/git-map +1 -1
- data/vendor/depot_tools/git-map-branches +1 -1
- data/vendor/depot_tools/git-mark-merge-base +1 -1
- data/vendor/depot_tools/git-nav-downstream +1 -1
- data/vendor/depot_tools/git-new-branch +1 -1
- data/vendor/depot_tools/git-number +1 -1
- data/vendor/depot_tools/git-rebase-update +1 -1
- data/vendor/depot_tools/git-rename-branch +1 -1
- data/vendor/depot_tools/git-reparent-branch +1 -1
- data/vendor/depot_tools/git-retry +1 -1
- data/vendor/depot_tools/git-squash-branch +1 -1
- data/vendor/depot_tools/git-thaw +1 -1
- data/vendor/depot_tools/git-upstream-diff +1 -1
- data/vendor/depot_tools/git_cache.py +255 -360
- data/vendor/depot_tools/git_cl.py +1562 -2059
- data/vendor/depot_tools/git_cl_completion.sh +16 -2
- data/vendor/depot_tools/git_common.py +77 -32
- data/vendor/depot_tools/git_drover.py +17 -8
- data/vendor/depot_tools/git_find_releases.py +11 -9
- data/vendor/depot_tools/git_footers.py +13 -9
- data/vendor/depot_tools/git_freezer.py +3 -1
- data/vendor/depot_tools/git_hyper_blame.py +25 -32
- data/vendor/depot_tools/git_map.py +115 -93
- data/vendor/depot_tools/git_map_branches.py +11 -10
- data/vendor/depot_tools/git_mark_merge_base.py +8 -6
- data/vendor/depot_tools/git_nav_downstream.py +9 -6
- data/vendor/depot_tools/git_new_branch.py +39 -33
- data/vendor/depot_tools/git_number.py +28 -17
- data/vendor/depot_tools/git_rebase_update.py +50 -49
- data/vendor/depot_tools/git_rename_branch.py +2 -2
- data/vendor/depot_tools/git_reparent_branch.py +8 -6
- data/vendor/depot_tools/git_upstream_diff.py +4 -2
- data/vendor/depot_tools/gn.py +6 -4
- data/vendor/depot_tools/goma_auth +12 -0
- data/vendor/depot_tools/goma_auth.bat +8 -0
- data/vendor/depot_tools/goma_ctl +12 -0
- data/vendor/depot_tools/goma_ctl.bat +8 -0
- data/vendor/depot_tools/gsutil.py +5 -2
- data/vendor/depot_tools/gsutil.py.bat +8 -0
- data/vendor/depot_tools/gsutil.vpython +3 -1
- data/vendor/depot_tools/infra/config/OWNERS +2 -2
- data/vendor/depot_tools/infra/config/recipes.cfg +3 -2
- data/vendor/depot_tools/led +1 -1
- data/vendor/depot_tools/lockfile.py +116 -0
- data/vendor/depot_tools/luci-auth +1 -1
- data/vendor/depot_tools/lucicfg +1 -1
- data/vendor/depot_tools/mac_toolchain +1 -1
- data/vendor/depot_tools/man/html/depot_tools.html +1 -1
- data/vendor/depot_tools/man/html/depot_tools_tutorial.html +31 -25
- data/vendor/depot_tools/man/html/git-cl.html +1 -1
- data/vendor/depot_tools/man/html/git-drover.html +18 -18
- data/vendor/depot_tools/man/html/git-footers.html +1 -1
- data/vendor/depot_tools/man/html/git-freeze.html +3 -3
- data/vendor/depot_tools/man/html/git-hyper-blame.html +1 -1
- data/vendor/depot_tools/man/html/git-map-branches.html +2 -2
- data/vendor/depot_tools/man/html/git-map.html +1 -1
- data/vendor/depot_tools/man/html/git-mark-merge-base.html +1 -1
- data/vendor/depot_tools/man/html/git-nav-downstream.html +3 -3
- data/vendor/depot_tools/man/html/git-nav-upstream.html +12 -6
- data/vendor/depot_tools/man/html/git-new-branch.html +1 -1
- data/vendor/depot_tools/man/html/git-rebase-update.html +20 -1
- data/vendor/depot_tools/man/html/git-rename-branch.html +1 -1
- data/vendor/depot_tools/man/html/git-reparent-branch.html +1 -1
- data/vendor/depot_tools/man/html/git-retry.html +1 -1
- data/vendor/depot_tools/man/html/git-squash-branch.html +1 -1
- data/vendor/depot_tools/man/html/git-thaw.html +1 -1
- data/vendor/depot_tools/man/html/git-upstream-diff.html +10 -6
- data/vendor/depot_tools/man/man1/git-cl.1 +4 -4
- data/vendor/depot_tools/man/man1/git-drover.1 +21 -21
- data/vendor/depot_tools/man/man1/git-footers.1 +4 -4
- data/vendor/depot_tools/man/man1/git-freeze.1 +6 -6
- data/vendor/depot_tools/man/man1/git-hyper-blame.1 +4 -4
- data/vendor/depot_tools/man/man1/git-map-branches.1 +4 -4
- data/vendor/depot_tools/man/man1/git-map.1 +4 -4
- data/vendor/depot_tools/man/man1/git-mark-merge-base.1 +4 -4
- data/vendor/depot_tools/man/man1/git-nav-downstream.1 +6 -6
- data/vendor/depot_tools/man/man1/git-nav-upstream.1 +15 -9
- data/vendor/depot_tools/man/man1/git-new-branch.1 +3 -3
- data/vendor/depot_tools/man/man1/git-rebase-update.1 +14 -4
- data/vendor/depot_tools/man/man1/git-rename-branch.1 +4 -4
- data/vendor/depot_tools/man/man1/git-reparent-branch.1 +4 -4
- data/vendor/depot_tools/man/man1/git-retry.1 +4 -4
- data/vendor/depot_tools/man/man1/git-squash-branch.1 +4 -4
- data/vendor/depot_tools/man/man1/git-thaw.1 +4 -4
- data/vendor/depot_tools/man/man1/git-upstream-diff.1 +7 -13
- data/vendor/depot_tools/man/man7/depot_tools.7 +4 -4
- data/vendor/depot_tools/man/man7/depot_tools_tutorial.7 +31 -25
- data/vendor/depot_tools/man/src/common_demo_functions.sh +2 -2
- data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +3 -3
- data/vendor/depot_tools/man/src/filter_demo_output.py +4 -2
- data/vendor/depot_tools/man/src/git-new-branch.txt +2 -1
- data/vendor/depot_tools/man/src/git-rebase-update.txt +8 -1
- data/vendor/depot_tools/metrics.README.md +8 -5
- data/vendor/depot_tools/metrics.py +7 -6
- data/vendor/depot_tools/metrics_utils.py +4 -14
- data/vendor/depot_tools/my_activity.py +85 -251
- data/vendor/depot_tools/ninja +1 -0
- data/vendor/depot_tools/ninja-mac +0 -0
- data/vendor/depot_tools/ninjalog_uploader.py +146 -145
- data/vendor/depot_tools/ninjalog_uploader_wrapper.py +69 -60
- data/vendor/depot_tools/owners.py +156 -43
- data/vendor/depot_tools/owners_finder.py +28 -14
- data/vendor/depot_tools/post_build_ninja_summary.py +76 -48
- data/vendor/depot_tools/presubmit_canned_checks.py +293 -106
- data/vendor/depot_tools/presubmit_support.py +527 -333
- data/vendor/depot_tools/prpc +1 -1
- data/vendor/depot_tools/pylint +2 -12
- data/vendor/depot_tools/pylint-1.5 +78 -0
- data/vendor/depot_tools/pylint-1.6 +78 -0
- data/vendor/depot_tools/pylint-1.7 +78 -0
- data/vendor/depot_tools/pylint-1.8 +78 -0
- data/vendor/depot_tools/pylint-1.9 +78 -0
- data/vendor/depot_tools/{depot-tools-auth.bat → pylint.bat} +2 -2
- data/vendor/depot_tools/pylint_main.py +45 -0
- data/vendor/depot_tools/pylintrc +14 -1
- data/vendor/depot_tools/python-bin/python3 +7 -0
- data/vendor/depot_tools/python_runner.sh +13 -8
- data/vendor/depot_tools/rdb +12 -0
- data/vendor/depot_tools/rdb.bat +7 -0
- data/vendor/depot_tools/recipes/OWNERS +0 -1
- data/vendor/depot_tools/recipes/README.recipes.md +218 -151
- data/vendor/depot_tools/recipes/recipe_modules/OWNERS +1 -1
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +17 -16
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +127 -78
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +19 -4
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +18 -3
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +19 -4
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +29 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +28 -10
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +29 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +29 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/input_commit_with_id_without_repo.json +29 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/multiple_patch_refs.json +29 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +35 -10
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{with_manifest_name.json → no_cp_checkout_HEAD.json} +25 -15
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_branch_head.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_specific_commit.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_master.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/refs.json +29 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +29 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/resolve_chromium_fixed_version.json +117 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +17 -11
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +41 -10
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +24 -11
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +35 -10
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +35 -10
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +38 -11
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +36 -11
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +35 -10
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +35 -10
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +35 -10
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +0 -5
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +29 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +95 -22
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +187 -114
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +2 -2
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py +42 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/__init__.py +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +2 -2
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +2 -4
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +26 -6
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +23 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +23 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/cipd/test_api.py +1 -1
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +4 -1
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +4 -2
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +3 -1
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +4 -2
- data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +2 -1
- data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +82 -13
- data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +23 -11
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +3 -4
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +3 -6
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +3 -4
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +7 -7
- data/vendor/depot_tools/recipes/recipe_modules/gclient/resources/diff_deps.py +16 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/test_api.py +4 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/basic.json +55 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/dont have revision yet.json +84 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/no change, exception.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/windows.json +55 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.py +88 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +9 -21
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/sync_failure.py +24 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +2 -1
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +7 -12
- data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +0 -2
- data/vendor/depot_tools/recipes/recipe_modules/git/api.py +9 -17
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +3 -13
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +4 -12
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +2 -10
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +1 -7
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +1 -7
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +0 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +3 -10
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +3 -11
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +3 -13
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +2 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +0 -5
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +1 -1
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +7 -13
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +21 -16
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.py +1 -2
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +1 -1
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +2 -2
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +23 -8
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +52 -1
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.py +15 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +32 -8
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/ancient_version.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/automatic_version.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/explicit_version.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +5 -4
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +21 -2
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +20 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +235 -3
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +13 -5
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.py +5 -1
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/properties.proto +14 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/test_api.py +19 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/execute.py +247 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/prepare.py +49 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +33 -45
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +64 -21
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +64 -21
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +1 -22
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +1 -22
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +5 -32
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py +29 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.expected/basic.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py +32 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +0 -1
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +2 -1
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +1 -6
- data/vendor/depot_tools/recipes/recipes.py +49 -28
- data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +11 -6
- data/vendor/depot_tools/repo +698 -540
- data/vendor/depot_tools/roll-dep +14 -1
- data/vendor/depot_tools/roll-dep.bat +10 -1
- data/vendor/depot_tools/roll_dep.py +15 -10
- data/vendor/depot_tools/scm.py +95 -75
- data/vendor/depot_tools/setup_color.py +36 -2
- data/vendor/depot_tools/split_cl.py +44 -32
- data/vendor/depot_tools/subcommand.py +6 -6
- data/vendor/depot_tools/subprocess2.py +38 -322
- data/vendor/depot_tools/third_party/colorama/LICENSE.txt +0 -1
- data/vendor/depot_tools/third_party/colorama/README.chromium +4 -5
- data/vendor/depot_tools/third_party/colorama/README.rst +346 -0
- data/vendor/depot_tools/third_party/colorama/__init__.py +3 -4
- data/vendor/depot_tools/third_party/colorama/ansi.py +82 -30
- data/vendor/depot_tools/third_party/colorama/ansitowin32.py +105 -37
- data/vendor/depot_tools/third_party/colorama/initialise.py +39 -15
- data/vendor/depot_tools/third_party/colorama/win32.py +46 -28
- data/vendor/depot_tools/third_party/colorama/winterm.py +80 -31
- data/vendor/depot_tools/update_depot_tools +18 -8
- data/vendor/depot_tools/update_depot_tools.bat +19 -15
- data/vendor/depot_tools/upload_metrics.py +7 -6
- data/vendor/depot_tools/upload_to_google_storage.py +23 -16
- data/vendor/depot_tools/vpython +4 -4
- data/vendor/depot_tools/vpython.bat +1 -1
- data/vendor/depot_tools/vpython3 +55 -0
- data/vendor/depot_tools/vpython3.bat +12 -0
- data/vendor/depot_tools/watchlists.py +14 -11
- data/vendor/depot_tools/weekly +4 -2
- data/vendor/depot_tools/win32imports.py +61 -0
- data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +49 -41
- data/vendor/depot_tools/win_toolchain/package_from_installed.py +142 -149
- data/vendor/depot_tools/wtf +5 -3
- data/vendor/depot_tools/yapf +5 -1
- metadata +68 -343
- data/vendor/depot_tools/README.testing +0 -23
- data/vendor/depot_tools/annotated_gclient.py +0 -89
- data/vendor/depot_tools/appengine_mapper.py +0 -23
- data/vendor/depot_tools/bootstrap/win/manifest.txt +0 -20
- data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +0 -20
- data/vendor/depot_tools/bootstrap/win/pylint.new.bat +0 -7
- data/vendor/depot_tools/buildbucket.py +0 -186
- data/vendor/depot_tools/checkout.py +0 -431
- data/vendor/depot_tools/cros +0 -1
- data/vendor/depot_tools/dart_format.py +0 -58
- data/vendor/depot_tools/depot-tools-auth +0 -8
- data/vendor/depot_tools/depot-tools-auth.py +0 -102
- data/vendor/depot_tools/my_reviews.py +0 -396
- data/vendor/depot_tools/patch.py +0 -548
- data/vendor/depot_tools/pylint.py +0 -30
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/buildbot.json +0 -239
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_luci.json +0 -222
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/__init__.py +0 -4
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/api.py +0 -29
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/basic.json +0 -15
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_linux.json +0 -15
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_mac.json +0 -15
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_win.json +0 -15
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_linux.json +0 -15
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_mac.json +0 -15
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +0 -15
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +0 -15
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +0 -15
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +0 -15
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.py +0 -33
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +0 -66
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/set_failure_hash_with_no_steps.json +0 -11
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch.json +0 -45
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch_luci.json +0 -45
- data/vendor/depot_tools/rietveld.py +0 -779
- data/vendor/depot_tools/roll-dep-svn +0 -8
- data/vendor/depot_tools/roll-dep-svn.bat +0 -12
- data/vendor/depot_tools/roll_dep_svn.py +0 -430
- data/vendor/depot_tools/support/chromite_wrapper +0 -96
- data/vendor/depot_tools/third_party/boto/LICENSE +0 -18
- data/vendor/depot_tools/third_party/boto/README.chromium +0 -43
- data/vendor/depot_tools/third_party/boto/README.rst +0 -163
- data/vendor/depot_tools/third_party/boto/__init__.py +0 -793
- data/vendor/depot_tools/third_party/boto/auth.py +0 -682
- data/vendor/depot_tools/third_party/boto/auth_handler.py +0 -58
- data/vendor/depot_tools/third_party/boto/cacerts/__init__.py +0 -22
- data/vendor/depot_tools/third_party/boto/cacerts/cacerts.txt +0 -2183
- data/vendor/depot_tools/third_party/boto/compat.py +0 -28
- data/vendor/depot_tools/third_party/boto/connection.py +0 -1081
- data/vendor/depot_tools/third_party/boto/contrib/__init__.py +0 -22
- data/vendor/depot_tools/third_party/boto/contrib/ymlmessage.py +0 -52
- data/vendor/depot_tools/third_party/boto/core/README +0 -58
- data/vendor/depot_tools/third_party/boto/core/__init__.py +0 -23
- data/vendor/depot_tools/third_party/boto/core/auth.py +0 -78
- data/vendor/depot_tools/third_party/boto/core/credentials.py +0 -154
- data/vendor/depot_tools/third_party/boto/core/dictresponse.py +0 -178
- data/vendor/depot_tools/third_party/boto/core/service.py +0 -67
- data/vendor/depot_tools/third_party/boto/datapipeline/__init__.py +0 -0
- data/vendor/depot_tools/third_party/boto/datapipeline/exceptions.py +0 -42
- data/vendor/depot_tools/third_party/boto/datapipeline/layer1.py +0 -546
- data/vendor/depot_tools/third_party/boto/ecs/__init__.py +0 -90
- data/vendor/depot_tools/third_party/boto/ecs/item.py +0 -153
- data/vendor/depot_tools/third_party/boto/exception.py +0 -476
- data/vendor/depot_tools/third_party/boto/file/README +0 -49
- data/vendor/depot_tools/third_party/boto/file/__init__.py +0 -28
- data/vendor/depot_tools/third_party/boto/file/bucket.py +0 -112
- data/vendor/depot_tools/third_party/boto/file/connection.py +0 -33
- data/vendor/depot_tools/third_party/boto/file/key.py +0 -199
- data/vendor/depot_tools/third_party/boto/file/simpleresultset.py +0 -30
- data/vendor/depot_tools/third_party/boto/fps/__init__.py +0 -21
- data/vendor/depot_tools/third_party/boto/fps/connection.py +0 -369
- data/vendor/depot_tools/third_party/boto/fps/exception.py +0 -344
- data/vendor/depot_tools/third_party/boto/fps/response.py +0 -175
- data/vendor/depot_tools/third_party/boto/gs/__init__.py +0 -22
- data/vendor/depot_tools/third_party/boto/gs/acl.py +0 -304
- data/vendor/depot_tools/third_party/boto/gs/bucket.py +0 -870
- data/vendor/depot_tools/third_party/boto/gs/bucketlistresultset.py +0 -64
- data/vendor/depot_tools/third_party/boto/gs/connection.py +0 -103
- data/vendor/depot_tools/third_party/boto/gs/cors.py +0 -169
- data/vendor/depot_tools/third_party/boto/gs/key.py +0 -704
- data/vendor/depot_tools/third_party/boto/gs/resumable_upload_handler.py +0 -659
- data/vendor/depot_tools/third_party/boto/gs/user.py +0 -54
- data/vendor/depot_tools/third_party/boto/handler.py +0 -44
- data/vendor/depot_tools/third_party/boto/https_connection.py +0 -124
- data/vendor/depot_tools/third_party/boto/jsonresponse.py +0 -163
- data/vendor/depot_tools/third_party/boto/manage/__init__.py +0 -23
- data/vendor/depot_tools/third_party/boto/manage/cmdshell.py +0 -241
- data/vendor/depot_tools/third_party/boto/manage/propget.py +0 -64
- data/vendor/depot_tools/third_party/boto/manage/server.py +0 -556
- data/vendor/depot_tools/third_party/boto/manage/task.py +0 -175
- data/vendor/depot_tools/third_party/boto/manage/test_manage.py +0 -34
- data/vendor/depot_tools/third_party/boto/manage/volume.py +0 -420
- data/vendor/depot_tools/third_party/boto/mashups/__init__.py +0 -23
- data/vendor/depot_tools/third_party/boto/mashups/interactive.py +0 -97
- data/vendor/depot_tools/third_party/boto/mashups/iobject.py +0 -115
- data/vendor/depot_tools/third_party/boto/mashups/order.py +0 -211
- data/vendor/depot_tools/third_party/boto/mashups/server.py +0 -395
- data/vendor/depot_tools/third_party/boto/plugin.py +0 -90
- data/vendor/depot_tools/third_party/boto/provider.py +0 -337
- data/vendor/depot_tools/third_party/boto/pyami/__init__.py +0 -22
- data/vendor/depot_tools/third_party/boto/pyami/bootstrap.py +0 -134
- data/vendor/depot_tools/third_party/boto/pyami/config.py +0 -229
- data/vendor/depot_tools/third_party/boto/pyami/copybot.cfg +0 -60
- data/vendor/depot_tools/third_party/boto/pyami/copybot.py +0 -97
- data/vendor/depot_tools/third_party/boto/pyami/helloworld.py +0 -28
- data/vendor/depot_tools/third_party/boto/pyami/launch_ami.py +0 -178
- data/vendor/depot_tools/third_party/boto/pyami/scriptbase.py +0 -44
- data/vendor/depot_tools/third_party/boto/pyami/startup.py +0 -60
- data/vendor/depot_tools/third_party/boto/regioninfo.py +0 -63
- data/vendor/depot_tools/third_party/boto/resultset.py +0 -169
- data/vendor/depot_tools/third_party/boto/roboto/__init__.py +0 -1
- data/vendor/depot_tools/third_party/boto/roboto/awsqueryrequest.py +0 -504
- data/vendor/depot_tools/third_party/boto/roboto/awsqueryservice.py +0 -121
- data/vendor/depot_tools/third_party/boto/roboto/param.py +0 -147
- data/vendor/depot_tools/third_party/boto/s3/__init__.py +0 -84
- data/vendor/depot_tools/third_party/boto/s3/acl.py +0 -164
- data/vendor/depot_tools/third_party/boto/s3/bucket.py +0 -1634
- data/vendor/depot_tools/third_party/boto/s3/bucketlistresultset.py +0 -139
- data/vendor/depot_tools/third_party/boto/s3/bucketlogging.py +0 -83
- data/vendor/depot_tools/third_party/boto/s3/connection.py +0 -540
- data/vendor/depot_tools/third_party/boto/s3/cors.py +0 -210
- data/vendor/depot_tools/third_party/boto/s3/deletemarker.py +0 -55
- data/vendor/depot_tools/third_party/boto/s3/key.py +0 -1712
- data/vendor/depot_tools/third_party/boto/s3/keyfile.py +0 -134
- data/vendor/depot_tools/third_party/boto/s3/lifecycle.py +0 -231
- data/vendor/depot_tools/third_party/boto/s3/multidelete.py +0 -138
- data/vendor/depot_tools/third_party/boto/s3/multipart.py +0 -315
- data/vendor/depot_tools/third_party/boto/s3/prefix.py +0 -42
- data/vendor/depot_tools/third_party/boto/s3/resumable_download_handler.py +0 -339
- data/vendor/depot_tools/third_party/boto/s3/tagging.py +0 -71
- data/vendor/depot_tools/third_party/boto/s3/user.py +0 -49
- data/vendor/depot_tools/third_party/boto/s3/website.py +0 -237
- data/vendor/depot_tools/third_party/boto/services/__init__.py +0 -23
- data/vendor/depot_tools/third_party/boto/services/bs.py +0 -179
- data/vendor/depot_tools/third_party/boto/services/message.py +0 -58
- data/vendor/depot_tools/third_party/boto/services/result.py +0 -136
- data/vendor/depot_tools/third_party/boto/services/service.py +0 -161
- data/vendor/depot_tools/third_party/boto/services/servicedef.py +0 -91
- data/vendor/depot_tools/third_party/boto/services/sonofmmm.cfg +0 -43
- data/vendor/depot_tools/third_party/boto/services/sonofmmm.py +0 -81
- data/vendor/depot_tools/third_party/boto/services/submit.py +0 -88
- data/vendor/depot_tools/third_party/boto/ses/__init__.py +0 -54
- data/vendor/depot_tools/third_party/boto/ses/connection.py +0 -521
- data/vendor/depot_tools/third_party/boto/ses/exceptions.py +0 -77
- data/vendor/depot_tools/third_party/boto/storage_uri.py +0 -835
- data/vendor/depot_tools/third_party/boto/sts/__init__.py +0 -55
- data/vendor/depot_tools/third_party/boto/sts/connection.py +0 -207
- data/vendor/depot_tools/third_party/boto/sts/credentials.py +0 -215
- data/vendor/depot_tools/third_party/boto/utils.py +0 -927
- data/vendor/depot_tools/third_party/colorama/README.txt +0 -304
- data/vendor/depot_tools/third_party/fancy_urllib/README +0 -22
- data/vendor/depot_tools/third_party/fancy_urllib/__init__.py +0 -460
- data/vendor/depot_tools/third_party/logilab/README.chromium +0 -6
- data/vendor/depot_tools/third_party/logilab/__init__.py +0 -0
- data/vendor/depot_tools/third_party/logilab/astroid/LICENSE.txt +0 -340
- data/vendor/depot_tools/third_party/logilab/astroid/README.chromium +0 -11
- data/vendor/depot_tools/third_party/logilab/astroid/__init__.py +0 -136
- data/vendor/depot_tools/third_party/logilab/astroid/__pkginfo__.py +0 -42
- data/vendor/depot_tools/third_party/logilab/astroid/arguments.py +0 -233
- data/vendor/depot_tools/third_party/logilab/astroid/as_string.py +0 -548
- data/vendor/depot_tools/third_party/logilab/astroid/astpeephole.py +0 -86
- data/vendor/depot_tools/third_party/logilab/astroid/bases.py +0 -636
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_builtin_inference.py +0 -336
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_dateutil.py +0 -15
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_gi.py +0 -195
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_mechanize.py +0 -18
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_nose.py +0 -82
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_numpy.py +0 -62
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_pytest.py +0 -76
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_qt.py +0 -44
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_six.py +0 -288
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_ssl.py +0 -65
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_stdlib.py +0 -473
- data/vendor/depot_tools/third_party/logilab/astroid/builder.py +0 -263
- data/vendor/depot_tools/third_party/logilab/astroid/context.py +0 -81
- data/vendor/depot_tools/third_party/logilab/astroid/decorators.py +0 -75
- data/vendor/depot_tools/third_party/logilab/astroid/exceptions.py +0 -71
- data/vendor/depot_tools/third_party/logilab/astroid/inference.py +0 -359
- data/vendor/depot_tools/third_party/logilab/astroid/manager.py +0 -267
- data/vendor/depot_tools/third_party/logilab/astroid/mixins.py +0 -147
- data/vendor/depot_tools/third_party/logilab/astroid/modutils.py +0 -741
- data/vendor/depot_tools/third_party/logilab/astroid/node_classes.py +0 -1053
- data/vendor/depot_tools/third_party/logilab/astroid/nodes.py +0 -87
- data/vendor/depot_tools/third_party/logilab/astroid/objects.py +0 -186
- data/vendor/depot_tools/third_party/logilab/astroid/protocols.py +0 -470
- data/vendor/depot_tools/third_party/logilab/astroid/raw_building.py +0 -390
- data/vendor/depot_tools/third_party/logilab/astroid/rebuilder.py +0 -989
- data/vendor/depot_tools/third_party/logilab/astroid/scoped_nodes.py +0 -1716
- data/vendor/depot_tools/third_party/logilab/astroid/test_utils.py +0 -201
- data/vendor/depot_tools/third_party/logilab/astroid/transforms.py +0 -96
- data/vendor/depot_tools/third_party/logilab/astroid/util.py +0 -89
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/LICENSE +0 -19
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/README.chromium +0 -11
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/__init__.py +0 -20
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/cext.c +0 -1421
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/compat.py +0 -9
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/simple.py +0 -246
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/slots.py +0 -414
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/utils.py +0 -13
- data/vendor/depot_tools/third_party/logilab/wrapt/LICENSE +0 -24
- data/vendor/depot_tools/third_party/logilab/wrapt/README.chromium +0 -11
- data/vendor/depot_tools/third_party/logilab/wrapt/__init__.py +0 -19
- data/vendor/depot_tools/third_party/logilab/wrapt/_wrappers.c +0 -2729
- data/vendor/depot_tools/third_party/logilab/wrapt/arguments.py +0 -96
- data/vendor/depot_tools/third_party/logilab/wrapt/decorators.py +0 -512
- data/vendor/depot_tools/third_party/logilab/wrapt/importer.py +0 -228
- data/vendor/depot_tools/third_party/logilab/wrapt/wrappers.py +0 -901
- data/vendor/depot_tools/third_party/mock/LICENSE.txt +0 -26
- data/vendor/depot_tools/third_party/mock/README.chromium +0 -24
- data/vendor/depot_tools/third_party/mock/__init__.py +0 -2366
- data/vendor/depot_tools/third_party/oauth2client/LICENSE +0 -202
- data/vendor/depot_tools/third_party/oauth2client/MODIFICATIONS.diff +0 -66
- data/vendor/depot_tools/third_party/oauth2client/README.chromium +0 -15
- data/vendor/depot_tools/third_party/oauth2client/__init__.py +0 -5
- data/vendor/depot_tools/third_party/oauth2client/anyjson.py +0 -32
- data/vendor/depot_tools/third_party/oauth2client/appengine.py +0 -963
- data/vendor/depot_tools/third_party/oauth2client/client.py +0 -1363
- data/vendor/depot_tools/third_party/oauth2client/clientsecrets.py +0 -153
- data/vendor/depot_tools/third_party/oauth2client/crypt.py +0 -377
- data/vendor/depot_tools/third_party/oauth2client/django_orm.py +0 -134
- data/vendor/depot_tools/third_party/oauth2client/file.py +0 -124
- data/vendor/depot_tools/third_party/oauth2client/gce.py +0 -90
- data/vendor/depot_tools/third_party/oauth2client/keyring_storage.py +0 -109
- data/vendor/depot_tools/third_party/oauth2client/locked_file.py +0 -373
- data/vendor/depot_tools/third_party/oauth2client/multistore_file.py +0 -465
- data/vendor/depot_tools/third_party/oauth2client/old_run.py +0 -160
- data/vendor/depot_tools/third_party/oauth2client/tools.py +0 -243
- data/vendor/depot_tools/third_party/oauth2client/util.py +0 -196
- data/vendor/depot_tools/third_party/oauth2client/xsrfutil.py +0 -113
- data/vendor/depot_tools/third_party/protobuf26/README.chromium +0 -23
- data/vendor/depot_tools/third_party/protobuf26/__init__.py +0 -0
- data/vendor/depot_tools/third_party/protobuf26/compiler/__init__.py +0 -0
- data/vendor/depot_tools/third_party/protobuf26/compiler/plugin_pb2.py +0 -184
- data/vendor/depot_tools/third_party/protobuf26/descriptor.py +0 -849
- data/vendor/depot_tools/third_party/protobuf26/descriptor_database.py +0 -137
- data/vendor/depot_tools/third_party/protobuf26/descriptor_pb2.py +0 -1522
- data/vendor/depot_tools/third_party/protobuf26/descriptor_pool.py +0 -643
- data/vendor/depot_tools/third_party/protobuf26/internal/__init__.py +0 -0
- data/vendor/depot_tools/third_party/protobuf26/internal/api_implementation.py +0 -89
- data/vendor/depot_tools/third_party/protobuf26/internal/containers.py +0 -269
- data/vendor/depot_tools/third_party/protobuf26/internal/cpp_message.py +0 -663
- data/vendor/depot_tools/third_party/protobuf26/internal/decoder.py +0 -831
- data/vendor/depot_tools/third_party/protobuf26/internal/encoder.py +0 -788
- data/vendor/depot_tools/third_party/protobuf26/internal/enum_type_wrapper.py +0 -89
- data/vendor/depot_tools/third_party/protobuf26/internal/message_listener.py +0 -78
- data/vendor/depot_tools/third_party/protobuf26/internal/python_message.py +0 -1247
- data/vendor/depot_tools/third_party/protobuf26/internal/type_checkers.py +0 -328
- data/vendor/depot_tools/third_party/protobuf26/internal/wire_format.py +0 -268
- data/vendor/depot_tools/third_party/protobuf26/message.py +0 -284
- data/vendor/depot_tools/third_party/protobuf26/message_factory.py +0 -155
- data/vendor/depot_tools/third_party/protobuf26/reflection.py +0 -205
- data/vendor/depot_tools/third_party/protobuf26/service.py +0 -226
- data/vendor/depot_tools/third_party/protobuf26/service_reflection.py +0 -284
- data/vendor/depot_tools/third_party/protobuf26/symbol_database.py +0 -185
- data/vendor/depot_tools/third_party/protobuf26/text_encoding.py +0 -110
- data/vendor/depot_tools/third_party/protobuf26/text_format.py +0 -873
- data/vendor/depot_tools/third_party/pylint.py +0 -37
- data/vendor/depot_tools/third_party/pylint/LICENSE.txt +0 -340
- data/vendor/depot_tools/third_party/pylint/README.chromium +0 -30
- data/vendor/depot_tools/third_party/pylint/__init__.py +0 -46
- data/vendor/depot_tools/third_party/pylint/__main__.py +0 -3
- data/vendor/depot_tools/third_party/pylint/__pkginfo__.py +0 -80
- data/vendor/depot_tools/third_party/pylint/checkers/__init__.py +0 -123
- data/vendor/depot_tools/third_party/pylint/checkers/async.py +0 -82
- data/vendor/depot_tools/third_party/pylint/checkers/base.py +0 -2010
- data/vendor/depot_tools/third_party/pylint/checkers/classes.py +0 -1120
- data/vendor/depot_tools/third_party/pylint/checkers/design_analysis.py +0 -348
- data/vendor/depot_tools/third_party/pylint/checkers/exceptions.py +0 -369
- data/vendor/depot_tools/third_party/pylint/checkers/format.py +0 -993
- data/vendor/depot_tools/third_party/pylint/checkers/imports.py +0 -654
- data/vendor/depot_tools/third_party/pylint/checkers/logging.py +0 -258
- data/vendor/depot_tools/third_party/pylint/checkers/misc.py +0 -105
- data/vendor/depot_tools/third_party/pylint/checkers/newstyle.py +0 -169
- data/vendor/depot_tools/third_party/pylint/checkers/python3.py +0 -591
- data/vendor/depot_tools/third_party/pylint/checkers/raw_metrics.py +0 -129
- data/vendor/depot_tools/third_party/pylint/checkers/similar.py +0 -371
- data/vendor/depot_tools/third_party/pylint/checkers/spelling.py +0 -264
- data/vendor/depot_tools/third_party/pylint/checkers/stdlib.py +0 -280
- data/vendor/depot_tools/third_party/pylint/checkers/strings.py +0 -618
- data/vendor/depot_tools/third_party/pylint/checkers/typecheck.py +0 -974
- data/vendor/depot_tools/third_party/pylint/checkers/utils.py +0 -741
- data/vendor/depot_tools/third_party/pylint/checkers/variables.py +0 -1191
- data/vendor/depot_tools/third_party/pylint/config.py +0 -820
- data/vendor/depot_tools/third_party/pylint/epylint.py +0 -181
- data/vendor/depot_tools/third_party/pylint/extensions/__init__.py +0 -0
- data/vendor/depot_tools/third_party/pylint/extensions/check_docs.py +0 -311
- data/vendor/depot_tools/third_party/pylint/extensions/check_elif.py +0 -62
- data/vendor/depot_tools/third_party/pylint/graph.py +0 -179
- data/vendor/depot_tools/third_party/pylint/gui.py +0 -531
- data/vendor/depot_tools/third_party/pylint/interfaces.py +0 -102
- data/vendor/depot_tools/third_party/pylint/lint.py +0 -1381
- data/vendor/depot_tools/third_party/pylint/pyreverse/__init__.py +0 -5
- data/vendor/depot_tools/third_party/pylint/pyreverse/diadefslib.py +0 -230
- data/vendor/depot_tools/third_party/pylint/pyreverse/diagrams.py +0 -258
- data/vendor/depot_tools/third_party/pylint/pyreverse/inspector.py +0 -372
- data/vendor/depot_tools/third_party/pylint/pyreverse/main.py +0 -147
- data/vendor/depot_tools/third_party/pylint/pyreverse/utils.py +0 -210
- data/vendor/depot_tools/third_party/pylint/pyreverse/vcgutils.py +0 -198
- data/vendor/depot_tools/third_party/pylint/pyreverse/writer.py +0 -198
- data/vendor/depot_tools/third_party/pylint/reporters/__init__.py +0 -149
- data/vendor/depot_tools/third_party/pylint/reporters/guireporter.py +0 -27
- data/vendor/depot_tools/third_party/pylint/reporters/html.py +0 -108
- data/vendor/depot_tools/third_party/pylint/reporters/json.py +0 -64
- data/vendor/depot_tools/third_party/pylint/reporters/text.py +0 -237
- data/vendor/depot_tools/third_party/pylint/reporters/ureports/__init__.py +0 -106
- data/vendor/depot_tools/third_party/pylint/reporters/ureports/html_writer.py +0 -93
- data/vendor/depot_tools/third_party/pylint/reporters/ureports/nodes.py +0 -181
- data/vendor/depot_tools/third_party/pylint/reporters/ureports/text_writer.py +0 -99
- data/vendor/depot_tools/third_party/pylint/testutils.py +0 -414
- data/vendor/depot_tools/third_party/pylint/utils.py +0 -1148
- data/vendor/depot_tools/third_party/pymox/COPYING +0 -202
- data/vendor/depot_tools/third_party/pymox/MANIFEST.in +0 -5
- data/vendor/depot_tools/third_party/pymox/README +0 -56
- data/vendor/depot_tools/third_party/pymox/__init__.py +0 -0
- data/vendor/depot_tools/third_party/pymox/mox.py +0 -1643
- data/vendor/depot_tools/third_party/pymox/mox_test.py +0 -1708
- data/vendor/depot_tools/third_party/pymox/mox_test_helper.py +0 -76
- data/vendor/depot_tools/third_party/pymox/setup.py +0 -14
- data/vendor/depot_tools/third_party/pymox/stubout.py +0 -142
- data/vendor/depot_tools/third_party/pymox/stubout_test.py +0 -47
- data/vendor/depot_tools/third_party/pymox/stubout_testee.py +0 -2
- data/vendor/depot_tools/third_party/simplejson/LICENSE.txt +0 -19
- data/vendor/depot_tools/third_party/simplejson/PKG-INFO +0 -29
- data/vendor/depot_tools/third_party/simplejson/__init__.py +0 -437
- data/vendor/depot_tools/third_party/simplejson/decoder.py +0 -421
- data/vendor/depot_tools/third_party/simplejson/encoder.py +0 -501
- data/vendor/depot_tools/third_party/simplejson/ordered_dict.py +0 -119
- data/vendor/depot_tools/third_party/simplejson/scanner.py +0 -77
- data/vendor/depot_tools/third_party/simplejson/tool.py +0 -39
- data/vendor/depot_tools/third_party/upload.py +0 -2565
@@ -5,11 +5,14 @@
|
|
5
5
|
|
6
6
|
# TODO(hinoka): Use logging.
|
7
7
|
|
8
|
+
from __future__ import print_function
|
9
|
+
|
8
10
|
import cStringIO
|
9
11
|
import codecs
|
10
12
|
from contextlib import contextmanager
|
11
13
|
import copy
|
12
14
|
import ctypes
|
15
|
+
from datetime import datetime
|
13
16
|
import json
|
14
17
|
import optparse
|
15
18
|
import os
|
@@ -30,6 +33,11 @@ import os.path as path
|
|
30
33
|
# How many bytes at a time to read from pipes.
|
31
34
|
BUF_SIZE = 256
|
32
35
|
|
36
|
+
# How many seconds of no stdout activity before process is considered stale. Can
|
37
|
+
# be overridden via environmnet variable `STALE_PROCESS_DURATION`. If set to 0,
|
38
|
+
# process won't be terminated.
|
39
|
+
STALE_PROCESS_DURATION = 1200
|
40
|
+
|
33
41
|
# Define a bunch of directory paths.
|
34
42
|
# Relative to this script's filesystem path.
|
35
43
|
THIS_DIR = path.dirname(path.abspath(__file__))
|
@@ -78,9 +86,6 @@ cache_dir = r%(cache_dir)s
|
|
78
86
|
"""
|
79
87
|
|
80
88
|
|
81
|
-
# How many times to try before giving up.
|
82
|
-
ATTEMPTS = 5
|
83
|
-
|
84
89
|
GIT_CACHE_PATH = path.join(DEPOT_TOOLS_DIR, 'git_cache.py')
|
85
90
|
GCLIENT_PATH = path.join(DEPOT_TOOLS_DIR, 'gclient.py')
|
86
91
|
|
@@ -108,17 +113,34 @@ OK = object()
|
|
108
113
|
FAIL = object()
|
109
114
|
|
110
115
|
|
111
|
-
class
|
116
|
+
class ProcessObservers(object):
|
117
|
+
"""ProcessObservers allows monitoring of child process."""
|
118
|
+
|
119
|
+
def poke(self):
|
120
|
+
"""poke is called when child process sent `BUF_SIZE` data to stdout."""
|
121
|
+
pass
|
122
|
+
|
123
|
+
def cancel(self):
|
124
|
+
"""cancel is called once proc exists successfully."""
|
125
|
+
pass
|
126
|
+
|
127
|
+
|
128
|
+
class PsPrinter(ProcessObservers):
|
112
129
|
def __init__(self, interval=300):
|
113
130
|
self.interval = interval
|
114
131
|
self.active = sys.platform.startswith('linux2')
|
115
132
|
self.thread = None
|
116
133
|
|
117
|
-
|
118
|
-
def print_pstree():
|
134
|
+
def print_pstree(self):
|
119
135
|
"""Debugging function used to print "ps auxwwf" for stuck processes."""
|
136
|
+
# Add new line for cleaner output
|
137
|
+
print()
|
120
138
|
subprocess.call(['ps', 'auxwwf'])
|
121
139
|
|
140
|
+
# Restart timer, we want to continue printing until the process is
|
141
|
+
# terminated.
|
142
|
+
self.poke()
|
143
|
+
|
122
144
|
def poke(self):
|
123
145
|
if self.active:
|
124
146
|
self.cancel()
|
@@ -131,6 +153,30 @@ class PsPrinter(object):
|
|
131
153
|
self.thread = None
|
132
154
|
|
133
155
|
|
156
|
+
class StaleProcess(ProcessObservers):
|
157
|
+
'''StaleProcess terminates process if there is no poke call in `interval`. '''
|
158
|
+
|
159
|
+
def __init__(self, interval, proc):
|
160
|
+
self.interval = interval
|
161
|
+
self.proc = proc
|
162
|
+
self.thread = None
|
163
|
+
|
164
|
+
def _terminate_process(self):
|
165
|
+
print('Terminating stale process...')
|
166
|
+
self.proc.terminate()
|
167
|
+
|
168
|
+
def poke(self):
|
169
|
+
self.cancel()
|
170
|
+
if self.interval > 0:
|
171
|
+
self.thread = threading.Timer(self.interval, self._terminate_process)
|
172
|
+
self.thread.start()
|
173
|
+
|
174
|
+
def cancel(self):
|
175
|
+
if self.thread is not None:
|
176
|
+
self.thread.cancel()
|
177
|
+
self.thread = None
|
178
|
+
|
179
|
+
|
134
180
|
def call(*args, **kwargs): # pragma: no cover
|
135
181
|
"""Interactive subprocess call."""
|
136
182
|
kwargs['stdout'] = subprocess.PIPE
|
@@ -147,22 +193,25 @@ def call(*args, **kwargs): # pragma: no cover
|
|
147
193
|
kwargs['env'] = env
|
148
194
|
|
149
195
|
if new_env:
|
150
|
-
print
|
196
|
+
print('===Injecting Environment Variables===')
|
151
197
|
for k, v in sorted(new_env.items()):
|
152
|
-
print
|
153
|
-
print
|
154
|
-
print
|
198
|
+
print('%s: %s' % (k, v))
|
199
|
+
print('%s ===Running %s ===' % (datetime.now(), ' '.join(args),))
|
200
|
+
print('In directory: %s' % cwd)
|
155
201
|
start_time = time.time()
|
156
202
|
proc = subprocess.Popen(args, **kwargs)
|
157
203
|
if stdin_data:
|
158
204
|
proc.stdin.write(stdin_data)
|
159
205
|
proc.stdin.close()
|
160
|
-
|
206
|
+
stale_process_duration = env.get('STALE_PROCESS_DURATION',
|
207
|
+
STALE_PROCESS_DURATION)
|
208
|
+
observers = [PsPrinter(), StaleProcess(int(stale_process_duration), proc)]
|
161
209
|
# This is here because passing 'sys.stdout' into stdout for proc will
|
162
210
|
# produce out of order output.
|
163
211
|
hanging_cr = False
|
164
212
|
while True:
|
165
|
-
|
213
|
+
for observer in observers:
|
214
|
+
observer.poke()
|
166
215
|
buf = proc.stdout.read(BUF_SIZE)
|
167
216
|
if not buf:
|
168
217
|
break
|
@@ -177,20 +226,23 @@ def call(*args, **kwargs): # pragma: no cover
|
|
177
226
|
if hanging_cr:
|
178
227
|
sys.stdout.write('\n')
|
179
228
|
out.write('\n')
|
180
|
-
|
229
|
+
for observer in observers:
|
230
|
+
observer.cancel()
|
181
231
|
|
182
232
|
code = proc.wait()
|
183
233
|
elapsed_time = ((time.time() - start_time) / 60.0)
|
184
234
|
outval = out.getvalue()
|
185
235
|
if code:
|
186
|
-
print
|
187
|
-
|
236
|
+
print('%s ===Failed in %.1f mins of %s ===' %
|
237
|
+
(datetime.now(), elapsed_time, ' '.join(args)))
|
238
|
+
print()
|
188
239
|
raise SubprocessFailed('%s failed with code %d in %s.' %
|
189
240
|
(' '.join(args), code, cwd),
|
190
241
|
code, outval)
|
191
242
|
|
192
|
-
print
|
193
|
-
|
243
|
+
print('%s ===Succeeded in %.1f mins of %s ===' %
|
244
|
+
(datetime.now(), elapsed_time, ' '.join(args)))
|
245
|
+
print()
|
194
246
|
return outval
|
195
247
|
|
196
248
|
|
@@ -222,36 +274,36 @@ def get_gclient_spec(solutions, target_os, target_os_only, target_cpu,
|
|
222
274
|
|
223
275
|
def solutions_printer(solutions):
|
224
276
|
"""Prints gclient solution to stdout."""
|
225
|
-
print
|
226
|
-
print
|
277
|
+
print('Gclient Solutions')
|
278
|
+
print('=================')
|
227
279
|
for solution in solutions:
|
228
280
|
name = solution.get('name')
|
229
281
|
url = solution.get('url')
|
230
|
-
print
|
282
|
+
print('%s (%s)' % (name, url))
|
231
283
|
if solution.get('deps_file'):
|
232
|
-
print
|
284
|
+
print(' Dependencies file is %s' % solution['deps_file'])
|
233
285
|
if 'managed' in solution:
|
234
|
-
print
|
286
|
+
print(' Managed mode is %s' % ('ON' if solution['managed'] else 'OFF'))
|
235
287
|
custom_vars = solution.get('custom_vars')
|
236
288
|
if custom_vars:
|
237
|
-
print
|
238
|
-
for var_name, var_value in sorted(custom_vars.
|
239
|
-
print
|
289
|
+
print(' Custom Variables:')
|
290
|
+
for var_name, var_value in sorted(custom_vars.items()):
|
291
|
+
print(' %s = %s' % (var_name, var_value))
|
240
292
|
custom_deps = solution.get('custom_deps')
|
241
293
|
if 'custom_deps' in solution:
|
242
|
-
print
|
243
|
-
for deps_name, deps_value in sorted(custom_deps.
|
294
|
+
print(' Custom Dependencies:')
|
295
|
+
for deps_name, deps_value in sorted(custom_deps.items()):
|
244
296
|
if deps_value:
|
245
|
-
print
|
297
|
+
print(' %s -> %s' % (deps_name, deps_value))
|
246
298
|
else:
|
247
|
-
print
|
248
|
-
for k, v in solution.
|
299
|
+
print(' %s: Ignore' % deps_name)
|
300
|
+
for k, v in solution.items():
|
249
301
|
# Print out all the keys we don't know about.
|
250
302
|
if k in ['name', 'url', 'deps_file', 'custom_vars', 'custom_deps',
|
251
303
|
'managed']:
|
252
304
|
continue
|
253
|
-
print
|
254
|
-
print
|
305
|
+
print(' %s is %s' % (k, v))
|
306
|
+
print()
|
255
307
|
|
256
308
|
|
257
309
|
def modify_solutions(input_solutions):
|
@@ -270,8 +322,8 @@ def modify_solutions(input_solutions):
|
|
270
322
|
# We don't want gclient to be using a safesync URL. Instead it should
|
271
323
|
# using the lkgr/lkcr branch/tags.
|
272
324
|
if 'safesync_url' in solution:
|
273
|
-
print
|
274
|
-
parsed_path)
|
325
|
+
print('Removing safesync url %s from %s' % (solution['safesync_url'],
|
326
|
+
parsed_path))
|
275
327
|
del solution['safesync_url']
|
276
328
|
|
277
329
|
return solutions
|
@@ -283,11 +335,11 @@ def remove(target, cleanup_dir):
|
|
283
335
|
os.makedirs(cleanup_dir)
|
284
336
|
dest = path.join(cleanup_dir, '%s_%s' % (
|
285
337
|
path.basename(target), uuid.uuid4().hex))
|
286
|
-
print
|
338
|
+
print('Marking for removal %s => %s' % (target, dest))
|
287
339
|
try:
|
288
340
|
os.rename(target, dest)
|
289
341
|
except Exception as e:
|
290
|
-
print
|
342
|
+
print('Error renaming %s to %s: %s' % (target, dest, str(e)))
|
291
343
|
raise
|
292
344
|
|
293
345
|
|
@@ -299,9 +351,9 @@ def ensure_no_checkout(dir_names, cleanup_dir):
|
|
299
351
|
if has_checkout:
|
300
352
|
for filename in os.listdir(build_dir):
|
301
353
|
deletion_target = path.join(build_dir, filename)
|
302
|
-
print
|
354
|
+
print('.git detected in checkout, deleting %s...' % deletion_target,)
|
303
355
|
remove(deletion_target, cleanup_dir)
|
304
|
-
print
|
356
|
+
print('done')
|
305
357
|
|
306
358
|
|
307
359
|
def call_gclient(*args, **kwargs):
|
@@ -313,6 +365,8 @@ def call_gclient(*args, **kwargs):
|
|
313
365
|
"""
|
314
366
|
cmd = [sys.executable, '-u', GCLIENT_PATH]
|
315
367
|
cmd.extend(args)
|
368
|
+
# Disable metrics collection on bots, since it's not supported anyway.
|
369
|
+
kwargs.setdefault('env', {})['DEPOT_TOOLS_METRICS'] = '0'
|
316
370
|
return call(*cmd, **kwargs)
|
317
371
|
|
318
372
|
|
@@ -361,7 +415,7 @@ def gclient_sync(
|
|
361
415
|
args += ['--break_repo_locks']
|
362
416
|
if disable_syntax_validation:
|
363
417
|
args += ['--disable-syntax-validation']
|
364
|
-
for name, revision in sorted(revisions.
|
418
|
+
for name, revision in sorted(revisions.items()):
|
365
419
|
if revision.upper() == 'HEAD':
|
366
420
|
revision = 'origin/master'
|
367
421
|
args.extend(['--revision', '%s@%s' % (name, revision)])
|
@@ -430,13 +484,13 @@ def create_manifest_old():
|
|
430
484
|
'revision': match.group(3),
|
431
485
|
}
|
432
486
|
else:
|
433
|
-
print
|
487
|
+
print("WARNING: Couldn't match revinfo line:\n%s" % line)
|
434
488
|
return manifest
|
435
489
|
|
436
490
|
|
437
491
|
# TODO(hinoka): Include patch revision.
|
438
492
|
def create_manifest(gclient_output, patch_root):
|
439
|
-
"""Return the JSONPB
|
493
|
+
"""Return the JSONPB equivalent of the source manifest proto.
|
440
494
|
|
441
495
|
The source manifest proto is defined here:
|
442
496
|
https://chromium.googlesource.com/infra/luci/recipes-py/+/master/recipe_engine/source_manifest.proto
|
@@ -454,7 +508,7 @@ def create_manifest(gclient_output, patch_root):
|
|
454
508
|
dirs = {}
|
455
509
|
if patch_root:
|
456
510
|
patch_root = patch_root.strip('/') # Normalize directory names.
|
457
|
-
for directory, info in gclient_output.get('solutions', {}).
|
511
|
+
for directory, info in gclient_output.get('solutions', {}).items():
|
458
512
|
directory = directory.strip('/') # Normalize the directory name.
|
459
513
|
# The format of the url is "https://repo.url/blah.git@abcdefabcdef" or
|
460
514
|
# just "https://repo.url/blah.git"
|
@@ -615,11 +669,11 @@ def _maybe_break_locks(checkout_path, tries=3):
|
|
615
669
|
for filename in filenames:
|
616
670
|
if filename.endswith('.lock'):
|
617
671
|
to_break = os.path.join(dirpath, filename)
|
618
|
-
print
|
672
|
+
print('breaking lock: %s' % to_break)
|
619
673
|
try:
|
620
674
|
os.remove(to_break)
|
621
675
|
except OSError as ex:
|
622
|
-
print
|
676
|
+
print('FAILED to break lock: %s: %s' % (to_break, ex))
|
623
677
|
raise
|
624
678
|
|
625
679
|
for _ in xrange(tries):
|
@@ -631,12 +685,14 @@ def _maybe_break_locks(checkout_path, tries=3):
|
|
631
685
|
|
632
686
|
|
633
687
|
|
634
|
-
def git_checkouts(solutions, revisions, refs, git_cache_dir,
|
688
|
+
def git_checkouts(solutions, revisions, refs, no_fetch_tags, git_cache_dir,
|
689
|
+
cleanup_dir):
|
635
690
|
build_dir = os.getcwd()
|
636
691
|
first_solution = True
|
637
692
|
for sln in solutions:
|
638
693
|
sln_dir = path.join(build_dir, sln['name'])
|
639
|
-
_git_checkout(sln, sln_dir, revisions, refs, git_cache_dir,
|
694
|
+
_git_checkout(sln, sln_dir, revisions, refs, no_fetch_tags, git_cache_dir,
|
695
|
+
cleanup_dir)
|
640
696
|
if first_solution:
|
641
697
|
git_ref = git('log', '--format=%H', '--max-count=1',
|
642
698
|
cwd=path.join(build_dir, sln['name'])
|
@@ -645,11 +701,14 @@ def git_checkouts(solutions, revisions, refs, git_cache_dir, cleanup_dir):
|
|
645
701
|
return git_ref
|
646
702
|
|
647
703
|
|
648
|
-
def _git_checkout(sln, sln_dir, revisions, refs, git_cache_dir,
|
704
|
+
def _git_checkout(sln, sln_dir, revisions, refs, no_fetch_tags, git_cache_dir,
|
705
|
+
cleanup_dir):
|
649
706
|
name = sln['name']
|
650
707
|
url = sln['url']
|
651
708
|
populate_cmd = (['cache', 'populate', '--ignore_locks', '-v',
|
652
709
|
'--cache-dir', git_cache_dir, url, '--reset-fetch-config'])
|
710
|
+
if no_fetch_tags:
|
711
|
+
populate_cmd.extend(['--no-fetch-tags'])
|
653
712
|
for ref in refs:
|
654
713
|
populate_cmd.extend(['--ref', ref])
|
655
714
|
|
@@ -686,14 +745,14 @@ def _git_checkout(sln, sln_dir, revisions, refs, git_cache_dir, cleanup_dir):
|
|
686
745
|
# Only kick in deadline after second attempt to ensure we retry at least
|
687
746
|
# once after initial fetch from not-yet-replicated server.
|
688
747
|
if attempt >= 2 and overrun > 0:
|
689
|
-
print
|
748
|
+
print('Ran %s seconds past deadline. Aborting.' % (overrun,))
|
690
749
|
# TODO(tandrii): raise exception immediately here, instead of doing
|
691
750
|
# useless step 2 trying to fetch something that we know doesn't exist
|
692
751
|
# in cache **after production data gives us confidence to do so**.
|
693
752
|
break
|
694
753
|
|
695
754
|
sleep_secs = min(60, 2**attempt)
|
696
|
-
print
|
755
|
+
print('waiting %s seconds and trying to fetch again...' % sleep_secs)
|
697
756
|
time.sleep(sleep_secs)
|
698
757
|
|
699
758
|
# Step 2: populate a checkout from local cache. All operations are local.
|
@@ -705,13 +764,15 @@ def _git_checkout(sln, sln_dir, revisions, refs, git_cache_dir, cleanup_dir):
|
|
705
764
|
# If repo deletion was aborted midway, it may have left .git in broken
|
706
765
|
# state.
|
707
766
|
if path.exists(sln_dir) and is_broken_repo_dir(sln_dir):
|
708
|
-
print
|
767
|
+
print('Git repo %s appears to be broken, removing it' % sln_dir)
|
709
768
|
remove(sln_dir, cleanup_dir)
|
710
769
|
|
711
770
|
# Use "tries=1", since we retry manually in this loop.
|
712
771
|
if not path.isdir(sln_dir):
|
713
772
|
git('clone', '--no-checkout', '--local', '--shared', mirror_dir,
|
714
773
|
sln_dir)
|
774
|
+
# Detach HEAD to be consistent with the non-clone case
|
775
|
+
git('checkout', 'master', '--detach', cwd=sln_dir)
|
715
776
|
_git_disable_gc(sln_dir)
|
716
777
|
else:
|
717
778
|
_git_disable_gc(sln_dir)
|
@@ -732,8 +793,8 @@ def _git_checkout(sln, sln_dir, revisions, refs, git_cache_dir, cleanup_dir):
|
|
732
793
|
git('clean', '-dff', cwd=sln_dir)
|
733
794
|
return
|
734
795
|
except SubprocessFailed as e:
|
735
|
-
# Exited abnormally,
|
736
|
-
print
|
796
|
+
# Exited abnormally, there's probably something wrong.
|
797
|
+
print('Something failed: %s.' % str(e))
|
737
798
|
if first_try:
|
738
799
|
first_try = False
|
739
800
|
# Lets wipe the checkout and try again.
|
@@ -747,16 +808,6 @@ def _git_disable_gc(cwd):
|
|
747
808
|
git('config', 'gc.autopacklimit', '0', cwd=cwd)
|
748
809
|
|
749
810
|
|
750
|
-
def _download(url):
|
751
|
-
"""Fetch url and return content, with retries for flake."""
|
752
|
-
for attempt in xrange(ATTEMPTS):
|
753
|
-
try:
|
754
|
-
return urllib2.urlopen(url).read()
|
755
|
-
except Exception:
|
756
|
-
if attempt == ATTEMPTS - 1:
|
757
|
-
raise
|
758
|
-
|
759
|
-
|
760
811
|
def get_commit_position(git_path, revision='HEAD'):
|
761
812
|
"""Dumps the 'git' log for a specific revision and parses out the commit
|
762
813
|
position.
|
@@ -781,9 +832,9 @@ def parse_got_revision(gclient_output, got_revision_mapping):
|
|
781
832
|
solutions_output = {
|
782
833
|
# Make sure path always ends with a single slash.
|
783
834
|
'%s/' % path.rstrip('/') : solution_output for path, solution_output
|
784
|
-
in gclient_output['solutions'].
|
835
|
+
in gclient_output['solutions'].items()
|
785
836
|
}
|
786
|
-
for property_name, dir_name in got_revision_mapping.
|
837
|
+
for property_name, dir_name in got_revision_mapping.items():
|
787
838
|
# Make sure dir_name always ends with a single slash.
|
788
839
|
dir_name = '%s/' % dir_name.rstrip('/')
|
789
840
|
if dir_name not in solutions_output:
|
@@ -816,15 +867,16 @@ def emit_json(out_file, did_run, gclient_output=None, **kwargs):
|
|
816
867
|
|
817
868
|
|
818
869
|
def ensure_checkout(solutions, revisions, first_sln, target_os, target_os_only,
|
819
|
-
target_cpu, patch_root, patch_refs,
|
820
|
-
|
821
|
-
|
870
|
+
target_cpu, patch_root, patch_refs, gerrit_rebase_patch_ref,
|
871
|
+
no_fetch_tags, refs, git_cache_dir, cleanup_dir,
|
872
|
+
gerrit_reset, disable_syntax_validation):
|
822
873
|
# Get a checkout of each solution, without DEPS or hooks.
|
823
874
|
# Calling git directly because there is no way to run Gclient without
|
824
875
|
# invoking DEPS.
|
825
|
-
print
|
876
|
+
print('Fetching Git checkout')
|
826
877
|
|
827
|
-
git_checkouts(solutions, revisions, refs, git_cache_dir,
|
878
|
+
git_checkouts(solutions, revisions, refs, no_fetch_tags, git_cache_dir,
|
879
|
+
cleanup_dir)
|
828
880
|
|
829
881
|
# Ensure our build/ directory is set up with the correct .gclient file.
|
830
882
|
gclient_configure(solutions, target_os, target_os_only, target_cpu,
|
@@ -836,7 +888,7 @@ def ensure_checkout(solutions, revisions, first_sln, target_os, target_os_only,
|
|
836
888
|
# We want to pass all non-solution revisions into the gclient sync call.
|
837
889
|
solution_dirs = {sln['name'] for sln in solutions}
|
838
890
|
gc_revisions = {
|
839
|
-
dirname: rev for dirname, rev in revisions.
|
891
|
+
dirname: rev for dirname, rev in revisions.items()
|
840
892
|
if dirname not in solution_dirs}
|
841
893
|
# Gclient sometimes ignores "unmanaged": "False" in the gclient solution
|
842
894
|
# if --revision <anything> is passed (for example, for subrepos).
|
@@ -844,20 +896,20 @@ def ensure_checkout(solutions, revisions, first_sln, target_os, target_os_only,
|
|
844
896
|
for solution_name in list(solution_dirs):
|
845
897
|
gc_revisions[solution_name] = 'unmanaged'
|
846
898
|
|
847
|
-
with git_config_if_not_set('user.name', 'chrome-bot')
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
899
|
+
with git_config_if_not_set('user.name', 'chrome-bot'), \
|
900
|
+
git_config_if_not_set('user.email', 'chrome-bot@chromium.org'):
|
901
|
+
# Let gclient do the DEPS syncing.
|
902
|
+
# The branch-head refspec is a special case because it's possible Chrome
|
903
|
+
# src, which contains the branch-head refspecs, is DEPSed in.
|
904
|
+
gclient_output = gclient_sync(
|
905
|
+
BRANCH_HEADS_REFSPEC in refs,
|
906
|
+
TAGS_REFSPEC in refs,
|
907
|
+
gc_revisions,
|
908
|
+
break_repo_locks,
|
909
|
+
disable_syntax_validation,
|
910
|
+
patch_refs,
|
911
|
+
gerrit_reset,
|
912
|
+
gerrit_rebase_patch_ref)
|
861
913
|
|
862
914
|
# Now that gclient_sync has finished, we should revert any .DEPS.git so that
|
863
915
|
# presubmit doesn't complain about it being modified.
|
@@ -901,7 +953,7 @@ def parse_revisions(revisions, root):
|
|
901
953
|
if not normalized_root.endswith('.git'):
|
902
954
|
normalized_root += '.git'
|
903
955
|
elif parsed_root.scheme:
|
904
|
-
print
|
956
|
+
print('WARNING: Unrecognized scheme %s, ignoring' % parsed_root.scheme)
|
905
957
|
continue
|
906
958
|
else:
|
907
959
|
# This is probably a local path.
|
@@ -934,6 +986,12 @@ def parse_args():
|
|
934
986
|
'Can prepend root@<rev> to specify which repository, '
|
935
987
|
'where root is either a filesystem path or git https '
|
936
988
|
'url. To specify Tip of Tree, set rev to HEAD. ')
|
989
|
+
parse.add_option(
|
990
|
+
'--no_fetch_tags',
|
991
|
+
action='store_true',
|
992
|
+
help=('Don\'t fetch tags from the server for the git checkout. '
|
993
|
+
'This can speed up fetch considerably when '
|
994
|
+
'there are many tags.'))
|
937
995
|
# TODO(machenbach): Remove the flag when all uses have been removed.
|
938
996
|
parse.add_option('--output_manifest', action='store_true',
|
939
997
|
help=('Deprecated.'))
|
@@ -990,10 +1048,9 @@ def parse_args():
|
|
990
1048
|
with open(options.revision_mapping_file, 'r') as f:
|
991
1049
|
options.revision_mapping = json.load(f)
|
992
1050
|
except Exception as e:
|
993
|
-
print
|
994
|
-
'WARNING: Caught
|
995
|
-
% (str(e),)
|
996
|
-
)
|
1051
|
+
print(
|
1052
|
+
'WARNING: Caught exception while parsing revision_mapping*: %s'
|
1053
|
+
% (str(e),))
|
997
1054
|
|
998
1055
|
# Because we print CACHE_DIR out into a .gclient file, and then later run
|
999
1056
|
# eval() on it, backslashes need to be escaped, otherwise "E:\b\build" gets
|
@@ -1024,26 +1081,36 @@ def prepare(options, git_slns, active):
|
|
1024
1081
|
first_sln = dir_names[0]
|
1025
1082
|
|
1026
1083
|
# Split all the revision specifications into a nice dict.
|
1027
|
-
print
|
1084
|
+
print('Revisions: %s' % options.revision)
|
1028
1085
|
revisions = parse_revisions(options.revision, first_sln)
|
1029
|
-
print
|
1086
|
+
print('Fetching Git checkout at %s@%s' % (first_sln, revisions[first_sln]))
|
1030
1087
|
return revisions, step_text
|
1031
1088
|
|
1032
1089
|
|
1033
1090
|
def checkout(options, git_slns, specs, revisions, step_text):
|
1034
|
-
print
|
1035
|
-
print
|
1091
|
+
print('Using Python version: %s' % (sys.version,))
|
1092
|
+
print('Checking git version...')
|
1036
1093
|
ver = git('version').strip()
|
1037
|
-
print
|
1094
|
+
print('Using %s' % ver)
|
1038
1095
|
|
1039
1096
|
try:
|
1040
1097
|
protocol = git('config', '--get', 'protocol.version')
|
1041
|
-
print
|
1098
|
+
print('Using git protocol version %s' % protocol)
|
1042
1099
|
except SubprocessFailed as e:
|
1043
|
-
print
|
1100
|
+
print('git protocol version is not specified.')
|
1044
1101
|
|
1045
1102
|
first_sln = git_slns[0]['name']
|
1046
1103
|
dir_names = [sln.get('name') for sln in git_slns if 'name' in sln]
|
1104
|
+
dirty_path = '.dirty_bot_checkout'
|
1105
|
+
if os.path.exists(dirty_path):
|
1106
|
+
ensure_no_checkout(dir_names, options.cleanup_dir)
|
1107
|
+
|
1108
|
+
with open(dirty_path, 'w') as f:
|
1109
|
+
# create file, no content
|
1110
|
+
pass
|
1111
|
+
|
1112
|
+
should_delete_dirty_file = False
|
1113
|
+
|
1047
1114
|
try:
|
1048
1115
|
# Outer try is for catching patch failures and exiting gracefully.
|
1049
1116
|
# Inner try is for catching gclient failures and retrying gracefully.
|
@@ -1066,6 +1133,9 @@ def checkout(options, git_slns, specs, revisions, step_text):
|
|
1066
1133
|
patch_refs=options.patch_refs,
|
1067
1134
|
gerrit_rebase_patch_ref=not options.gerrit_no_rebase_patch_ref,
|
1068
1135
|
|
1136
|
+
# Control how the fetch step will occur.
|
1137
|
+
no_fetch_tags=options.no_fetch_tags,
|
1138
|
+
|
1069
1139
|
# Finally, extra configurations cleanup dir location.
|
1070
1140
|
refs=options.refs,
|
1071
1141
|
git_cache_dir=options.git_cache_dir,
|
@@ -1073,10 +1143,12 @@ def checkout(options, git_slns, specs, revisions, step_text):
|
|
1073
1143
|
gerrit_reset=not options.gerrit_no_reset,
|
1074
1144
|
disable_syntax_validation=options.disable_syntax_validation)
|
1075
1145
|
gclient_output = ensure_checkout(**checkout_parameters)
|
1146
|
+
should_delete_dirty_file = True
|
1076
1147
|
except GclientSyncFailed:
|
1077
|
-
print
|
1148
|
+
print('We failed gclient sync, lets delete the checkout and retry.')
|
1078
1149
|
ensure_no_checkout(dir_names, options.cleanup_dir)
|
1079
1150
|
gclient_output = ensure_checkout(**checkout_parameters)
|
1151
|
+
should_delete_dirty_file = True
|
1080
1152
|
except PatchFailed as e:
|
1081
1153
|
# Tell recipes information such as root, got_revision, etc.
|
1082
1154
|
emit_json(options.output_json,
|
@@ -1088,7 +1160,15 @@ def checkout(options, git_slns, specs, revisions, step_text):
|
|
1088
1160
|
failed_patch_body=e.output,
|
1089
1161
|
step_text='%s PATCH FAILED' % step_text,
|
1090
1162
|
fixed_revisions=revisions)
|
1163
|
+
should_delete_dirty_file = True
|
1091
1164
|
raise
|
1165
|
+
finally:
|
1166
|
+
if should_delete_dirty_file:
|
1167
|
+
try:
|
1168
|
+
os.remove(dirty_path)
|
1169
|
+
except OSError:
|
1170
|
+
print('Dirty file %s has been removed by a different process.' %
|
1171
|
+
dirty_path)
|
1092
1172
|
|
1093
1173
|
# Take care of got_revisions outputs.
|
1094
1174
|
revision_mapping = GOT_REVISION_MAPPINGS.get(git_slns[0]['url'], {})
|
@@ -1124,14 +1204,14 @@ def checkout(options, git_slns, specs, revisions, step_text):
|
|
1124
1204
|
|
1125
1205
|
|
1126
1206
|
def print_debug_info():
|
1127
|
-
print
|
1207
|
+
print("Debugging info:")
|
1128
1208
|
debug_params = {
|
1129
1209
|
'CURRENT_DIR': path.abspath(os.getcwd()),
|
1130
1210
|
'THIS_DIR': THIS_DIR,
|
1131
1211
|
'DEPOT_TOOLS_DIR': DEPOT_TOOLS_DIR,
|
1132
1212
|
}
|
1133
|
-
for k, v in sorted(debug_params.
|
1134
|
-
print
|
1213
|
+
for k, v in sorted(debug_params.items()):
|
1214
|
+
print("%s: %r" % (k, v))
|
1135
1215
|
|
1136
1216
|
|
1137
1217
|
def main():
|
@@ -1141,7 +1221,7 @@ def main():
|
|
1141
1221
|
# Check if this script should activate or not.
|
1142
1222
|
active = True
|
1143
1223
|
|
1144
|
-
# Print a helpful message to tell developers
|
1224
|
+
# Print a helpful message to tell developers what's going on with this step.
|
1145
1225
|
print_debug_info()
|
1146
1226
|
|
1147
1227
|
# Parse, manipulate, and print the gclient solutions.
|
@@ -1152,21 +1232,14 @@ def main():
|
|
1152
1232
|
|
1153
1233
|
solutions_printer(git_slns)
|
1154
1234
|
|
1155
|
-
# Creating hardlinks during a build can interact with git reset in
|
1156
|
-
# unfortunate ways if git's index isn't refreshed beforehand. (See
|
1157
|
-
# crbug.com/330461#c13 for an explanation.)
|
1158
|
-
try:
|
1159
|
-
call_gclient('recurse', '-v', 'git', 'update-index', '--refresh')
|
1160
|
-
except SubprocessFailed:
|
1161
|
-
# Failure here (and nowhere else) may have adverse effects on the
|
1162
|
-
# compile time of the build but shouldn't affect its ability to
|
1163
|
-
# successfully complete.
|
1164
|
-
print 'WARNING: Failed to update git indices.'
|
1165
|
-
|
1166
1235
|
try:
|
1167
1236
|
# Dun dun dun, the main part of bot_update.
|
1168
|
-
|
1169
|
-
|
1237
|
+
# gn creates hardlinks during the build. By default, this makes
|
1238
|
+
# `git reset` overwrite the sources of the hardlinks, which causes
|
1239
|
+
# unnecessary rebuilds. (See crbug.com/330461#c13 for an explanation.)
|
1240
|
+
with git_config_if_not_set('core.trustctime', 'false'):
|
1241
|
+
revisions, step_text = prepare(options, git_slns, active)
|
1242
|
+
checkout(options, git_slns, specs, revisions, step_text)
|
1170
1243
|
|
1171
1244
|
except PatchFailed as e:
|
1172
1245
|
# Return a specific non-zero exit code for patch failure (because it is
|