libv8 7.3.492.27.0 → 8.4.255.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
@@ -17,12 +17,6 @@ import operator
|
|
|
17
17
|
import os
|
|
18
18
|
import pipes
|
|
19
19
|
import platform
|
|
20
|
-
|
|
21
|
-
try:
|
|
22
|
-
import Queue as queue
|
|
23
|
-
except ImportError: # For Py3 compatibility
|
|
24
|
-
import queue
|
|
25
|
-
|
|
26
20
|
import re
|
|
27
21
|
import stat
|
|
28
22
|
import subprocess
|
|
@@ -30,18 +24,18 @@ import sys
|
|
|
30
24
|
import tempfile
|
|
31
25
|
import threading
|
|
32
26
|
import time
|
|
33
|
-
|
|
34
|
-
try:
|
|
35
|
-
import urlparse
|
|
36
|
-
except ImportError: # For Py3 compatibility
|
|
37
|
-
import urllib.parse as urlparse
|
|
38
|
-
|
|
39
27
|
import subprocess2
|
|
40
28
|
|
|
41
29
|
if sys.version_info.major == 2:
|
|
42
30
|
from cStringIO import StringIO
|
|
31
|
+
import collections as collections_abc
|
|
32
|
+
import Queue as queue
|
|
33
|
+
import urlparse
|
|
43
34
|
else:
|
|
35
|
+
from collections import abc as collections_abc
|
|
44
36
|
from io import StringIO
|
|
37
|
+
import queue
|
|
38
|
+
import urllib.parse as urlparse
|
|
45
39
|
|
|
46
40
|
|
|
47
41
|
RETRY_MAX = 3
|
|
@@ -55,7 +49,7 @@ _WARNINGS = []
|
|
|
55
49
|
# These repos are known to cause OOM errors on 32-bit platforms, due the the
|
|
56
50
|
# very large objects they contain. It is not safe to use threaded index-pack
|
|
57
51
|
# when cloning/fetching them.
|
|
58
|
-
|
|
52
|
+
THREADED_INDEX_PACK_BLOCKLIST = [
|
|
59
53
|
'https://chromium.googlesource.com/chromium/reference_builds/chrome_win.git'
|
|
60
54
|
]
|
|
61
55
|
|
|
@@ -164,20 +158,31 @@ class PrintableObject(object):
|
|
|
164
158
|
return output
|
|
165
159
|
|
|
166
160
|
|
|
167
|
-
def
|
|
161
|
+
def AskForData(message):
|
|
162
|
+
# Use this so that it can be mocked in tests on Python 2 and 3.
|
|
163
|
+
try:
|
|
164
|
+
if sys.version_info.major == 2:
|
|
165
|
+
return raw_input(message)
|
|
166
|
+
return input(message)
|
|
167
|
+
except KeyboardInterrupt:
|
|
168
|
+
# Hide the exception.
|
|
169
|
+
sys.exit(1)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
def FileRead(filename, mode='rbU'):
|
|
173
|
+
# Always decodes output to a Unicode string.
|
|
174
|
+
# On Python 3 newlines are converted to '\n' by default and 'U' is deprecated.
|
|
175
|
+
if mode == 'rbU' and sys.version_info.major == 3:
|
|
176
|
+
mode = 'rb'
|
|
168
177
|
with open(filename, mode=mode) as f:
|
|
169
|
-
# codecs.open() has different behavior than open() on python 2.6 so use
|
|
170
|
-
# open() and decode manually.
|
|
171
178
|
s = f.read()
|
|
172
|
-
|
|
173
|
-
return s.decode('utf-8')
|
|
174
|
-
|
|
175
|
-
except (UnicodeDecodeError, AttributeError):
|
|
176
|
-
return s
|
|
179
|
+
if isinstance(s, bytes):
|
|
180
|
+
return s.decode('utf-8', 'replace')
|
|
181
|
+
return s
|
|
177
182
|
|
|
178
183
|
|
|
179
|
-
def FileWrite(filename, content, mode='w'):
|
|
180
|
-
with codecs.open(filename, mode=mode, encoding=
|
|
184
|
+
def FileWrite(filename, content, mode='w', encoding='utf-8'):
|
|
185
|
+
with codecs.open(filename, mode=mode, encoding=encoding) as f:
|
|
181
186
|
f.write(content)
|
|
182
187
|
|
|
183
188
|
|
|
@@ -191,6 +196,35 @@ def temporary_directory(**kwargs):
|
|
|
191
196
|
rmtree(tdir)
|
|
192
197
|
|
|
193
198
|
|
|
199
|
+
@contextlib.contextmanager
|
|
200
|
+
def temporary_file():
|
|
201
|
+
"""Creates a temporary file.
|
|
202
|
+
|
|
203
|
+
On Windows, a file must be closed before it can be opened again. This function
|
|
204
|
+
allows to write something like:
|
|
205
|
+
|
|
206
|
+
with gclient_utils.temporary_file() as tmp:
|
|
207
|
+
gclient_utils.FileWrite(tmp, foo)
|
|
208
|
+
useful_stuff(tmp)
|
|
209
|
+
|
|
210
|
+
Instead of something like:
|
|
211
|
+
|
|
212
|
+
with tempfile.NamedTemporaryFile(delete=False) as tmp:
|
|
213
|
+
tmp.write(foo)
|
|
214
|
+
tmp.close()
|
|
215
|
+
try:
|
|
216
|
+
useful_stuff(tmp)
|
|
217
|
+
finally:
|
|
218
|
+
os.remove(tmp.name)
|
|
219
|
+
"""
|
|
220
|
+
handle, name = tempfile.mkstemp()
|
|
221
|
+
os.close(handle)
|
|
222
|
+
try:
|
|
223
|
+
yield name
|
|
224
|
+
finally:
|
|
225
|
+
os.remove(name)
|
|
226
|
+
|
|
227
|
+
|
|
194
228
|
def safe_rename(old, new):
|
|
195
229
|
"""Renames a file reliably.
|
|
196
230
|
|
|
@@ -215,7 +249,7 @@ def safe_rename(old, new):
|
|
|
215
249
|
|
|
216
250
|
|
|
217
251
|
def rm_file_or_tree(path):
|
|
218
|
-
if os.path.isfile(path):
|
|
252
|
+
if os.path.isfile(path) or os.path.islink(path):
|
|
219
253
|
os.remove(path)
|
|
220
254
|
else:
|
|
221
255
|
rmtree(path)
|
|
@@ -290,7 +324,7 @@ def rmtree(path):
|
|
|
290
324
|
def safe_makedirs(tree):
|
|
291
325
|
"""Creates the directory in a safe manner.
|
|
292
326
|
|
|
293
|
-
Because multiple threads can create these directories
|
|
327
|
+
Because multiple threads can create these directories concurrently, trap the
|
|
294
328
|
exception and pass on.
|
|
295
329
|
"""
|
|
296
330
|
count = 0
|
|
@@ -312,38 +346,6 @@ def CommandToStr(args):
|
|
|
312
346
|
return ' '.join(pipes.quote(arg) for arg in args)
|
|
313
347
|
|
|
314
348
|
|
|
315
|
-
def CheckCallAndFilterAndHeader(args, always=False, header=None, **kwargs):
|
|
316
|
-
"""Adds 'header' support to CheckCallAndFilter.
|
|
317
|
-
|
|
318
|
-
If |always| is True, a message indicating what is being done
|
|
319
|
-
is printed to stdout all the time even if not output is generated. Otherwise
|
|
320
|
-
the message header is printed only if the call generated any ouput.
|
|
321
|
-
"""
|
|
322
|
-
stdout = kwargs.setdefault('stdout', sys.stdout)
|
|
323
|
-
if header is None:
|
|
324
|
-
# The automatically generated header only prepends newline if always is
|
|
325
|
-
# false: always is usually set to false if there's an external progress
|
|
326
|
-
# display, and it's better not to clobber it in that case.
|
|
327
|
-
header = "%s________ running '%s' in '%s'\n" % (
|
|
328
|
-
'' if always else '\n',
|
|
329
|
-
' '.join(args), kwargs.get('cwd', '.'))
|
|
330
|
-
|
|
331
|
-
if always:
|
|
332
|
-
stdout.write(header)
|
|
333
|
-
else:
|
|
334
|
-
filter_fn = kwargs.get('filter_fn')
|
|
335
|
-
def filter_msg(line):
|
|
336
|
-
if line is None:
|
|
337
|
-
stdout.write(header)
|
|
338
|
-
elif filter_fn:
|
|
339
|
-
filter_fn(line)
|
|
340
|
-
kwargs['filter_fn'] = filter_msg
|
|
341
|
-
kwargs['call_filter_on_first_line'] = True
|
|
342
|
-
# Obviously.
|
|
343
|
-
kwargs.setdefault('print_stdout', True)
|
|
344
|
-
return CheckCallAndFilter(args, **kwargs)
|
|
345
|
-
|
|
346
|
-
|
|
347
349
|
class Wrapper(object):
|
|
348
350
|
"""Wraps an object, acting as a transparent proxy for all properties by
|
|
349
351
|
default.
|
|
@@ -355,22 +357,6 @@ class Wrapper(object):
|
|
|
355
357
|
return getattr(self._wrapped, name)
|
|
356
358
|
|
|
357
359
|
|
|
358
|
-
class WriteToStdout(Wrapper):
|
|
359
|
-
"""Creates a file object clone to also print to sys.stdout."""
|
|
360
|
-
def __init__(self, wrapped):
|
|
361
|
-
super(WriteToStdout, self).__init__(wrapped)
|
|
362
|
-
if not hasattr(self, 'lock'):
|
|
363
|
-
self.lock = threading.Lock()
|
|
364
|
-
|
|
365
|
-
def write(self, out, *args, **kwargs):
|
|
366
|
-
self._wrapped.write(out, *args, **kwargs)
|
|
367
|
-
self.lock.acquire()
|
|
368
|
-
try:
|
|
369
|
-
sys.stdout.write(out, *args, **kwargs)
|
|
370
|
-
finally:
|
|
371
|
-
self.lock.release()
|
|
372
|
-
|
|
373
|
-
|
|
374
360
|
class AutoFlush(Wrapper):
|
|
375
361
|
"""Creates a file object clone to automatically flush after N seconds."""
|
|
376
362
|
def __init__(self, wrapped, delay):
|
|
@@ -408,16 +394,21 @@ class Annotated(Wrapper):
|
|
|
408
394
|
self.lock = threading.Lock()
|
|
409
395
|
self.__output_buffers = {}
|
|
410
396
|
self.__include_zero = include_zero
|
|
397
|
+
self._wrapped_write = getattr(self._wrapped, 'buffer', self._wrapped).write
|
|
411
398
|
|
|
412
399
|
@property
|
|
413
400
|
def annotated(self):
|
|
414
401
|
return self
|
|
415
402
|
|
|
416
403
|
def write(self, out):
|
|
404
|
+
# Store as bytes to ensure Unicode characters get output correctly.
|
|
405
|
+
if not isinstance(out, bytes):
|
|
406
|
+
out = out.encode('utf-8')
|
|
407
|
+
|
|
417
408
|
index = getattr(threading.currentThread(), 'index', 0)
|
|
418
409
|
if not index and not self.__include_zero:
|
|
419
410
|
# Unindexed threads aren't buffered.
|
|
420
|
-
return self.
|
|
411
|
+
return self._wrapped_write(out)
|
|
421
412
|
|
|
422
413
|
self.lock.acquire()
|
|
423
414
|
try:
|
|
@@ -425,7 +416,7 @@ class Annotated(Wrapper):
|
|
|
425
416
|
# Strings are immutable, requiring to keep a lock for the whole dictionary
|
|
426
417
|
# otherwise. Using an array is faster than using a dummy object.
|
|
427
418
|
if not index in self.__output_buffers:
|
|
428
|
-
obj = self.__output_buffers[index] = ['']
|
|
419
|
+
obj = self.__output_buffers[index] = [b'']
|
|
429
420
|
else:
|
|
430
421
|
obj = self.__output_buffers[index]
|
|
431
422
|
finally:
|
|
@@ -433,10 +424,19 @@ class Annotated(Wrapper):
|
|
|
433
424
|
|
|
434
425
|
# Continue lockless.
|
|
435
426
|
obj[0] += out
|
|
436
|
-
while
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
427
|
+
while True:
|
|
428
|
+
cr_loc = obj[0].find(b'\r')
|
|
429
|
+
lf_loc = obj[0].find(b'\n')
|
|
430
|
+
if cr_loc == lf_loc == -1:
|
|
431
|
+
break
|
|
432
|
+
elif cr_loc == -1 or (lf_loc >= 0 and lf_loc < cr_loc):
|
|
433
|
+
line, remaining = obj[0].split(b'\n', 1)
|
|
434
|
+
if line:
|
|
435
|
+
self._wrapped_write(b'%d>%s\n' % (index, line))
|
|
436
|
+
elif lf_loc == -1 or (cr_loc >= 0 and cr_loc < lf_loc):
|
|
437
|
+
line, remaining = obj[0].split(b'\r', 1)
|
|
438
|
+
if line:
|
|
439
|
+
self._wrapped_write(b'%d>%s\r' % (index, line))
|
|
440
440
|
obj[0] = remaining
|
|
441
441
|
|
|
442
442
|
def flush(self):
|
|
@@ -455,10 +455,10 @@ class Annotated(Wrapper):
|
|
|
455
455
|
finally:
|
|
456
456
|
self.lock.release()
|
|
457
457
|
|
|
458
|
-
# Don't keep the lock while
|
|
458
|
+
# Don't keep the lock while writing. Will append \n when it shouldn't.
|
|
459
459
|
for orphan in orphans:
|
|
460
460
|
if orphan[1]:
|
|
461
|
-
self.
|
|
461
|
+
self._wrapped_write(b'%d>%s\n' % (orphan[0], orphan[1]))
|
|
462
462
|
return self._wrapped.flush()
|
|
463
463
|
|
|
464
464
|
|
|
@@ -473,7 +473,7 @@ def MakeFileAutoFlush(fileobj, delay=10):
|
|
|
473
473
|
def MakeFileAnnotated(fileobj, include_zero=False):
|
|
474
474
|
if getattr(fileobj, 'annotated', None):
|
|
475
475
|
return fileobj
|
|
476
|
-
return Annotated(fileobj)
|
|
476
|
+
return Annotated(fileobj, include_zero)
|
|
477
477
|
|
|
478
478
|
|
|
479
479
|
GCLIENT_CHILDREN = []
|
|
@@ -526,9 +526,9 @@ class GClientChildren(object):
|
|
|
526
526
|
print(' ', zombie.pid, file=sys.stderr)
|
|
527
527
|
|
|
528
528
|
|
|
529
|
-
def CheckCallAndFilter(args,
|
|
530
|
-
|
|
531
|
-
|
|
529
|
+
def CheckCallAndFilter(args, print_stdout=False, filter_fn=None,
|
|
530
|
+
show_header=False, always_show_header=False, retry=False,
|
|
531
|
+
**kwargs):
|
|
532
532
|
"""Runs a command and calls back a filter function if needed.
|
|
533
533
|
|
|
534
534
|
Accepts all subprocess2.Popen() parameters plus:
|
|
@@ -536,28 +536,69 @@ def CheckCallAndFilter(args, stdout=None, filter_fn=None,
|
|
|
536
536
|
filter_fn: A function taking a single string argument called with each line
|
|
537
537
|
of the subprocess2's output. Each line has the trailing newline
|
|
538
538
|
character trimmed.
|
|
539
|
-
|
|
539
|
+
show_header: Whether to display a header before the command output.
|
|
540
|
+
always_show_header: Show header even when the command produced no output.
|
|
540
541
|
retry: If the process exits non-zero, sleep for a brief interval and try
|
|
541
542
|
again, up to RETRY_MAX times.
|
|
542
543
|
|
|
543
544
|
stderr is always redirected to stdout.
|
|
545
|
+
|
|
546
|
+
Returns the output of the command as a binary string.
|
|
544
547
|
"""
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
548
|
+
def show_header_if_necessary(needs_header, attempt):
|
|
549
|
+
"""Show the header at most once."""
|
|
550
|
+
if not needs_header[0]:
|
|
551
|
+
return
|
|
552
|
+
|
|
553
|
+
needs_header[0] = False
|
|
554
|
+
# Automatically generated header. We only prepend a newline if
|
|
555
|
+
# always_show_header is false, since it usually indicates there's an
|
|
556
|
+
# external progress display, and it's better not to clobber it in that case.
|
|
557
|
+
header = '' if always_show_header else '\n'
|
|
558
|
+
header += '________ running \'%s\' in \'%s\'' % (
|
|
559
|
+
' '.join(args), kwargs.get('cwd', '.'))
|
|
560
|
+
if attempt:
|
|
561
|
+
header += ' attempt %s / %s' % (attempt + 1, RETRY_MAX + 1)
|
|
562
|
+
header += '\n'
|
|
563
|
+
|
|
564
|
+
if print_stdout:
|
|
565
|
+
stdout_write = getattr(sys.stdout, 'buffer', sys.stdout).write
|
|
566
|
+
stdout_write(header.encode())
|
|
567
|
+
if filter_fn:
|
|
568
|
+
filter_fn(header)
|
|
569
|
+
|
|
570
|
+
def filter_line(command_output, line_start):
|
|
571
|
+
"""Extract the last line from command output and filter it."""
|
|
572
|
+
if not filter_fn or line_start is None:
|
|
573
|
+
return
|
|
574
|
+
command_output.seek(line_start)
|
|
575
|
+
filter_fn(command_output.read().decode('utf-8'))
|
|
576
|
+
|
|
577
|
+
# Initialize stdout writer if needed. On Python 3, sys.stdout does not accept
|
|
578
|
+
# byte inputs and sys.stdout.buffer must be used instead.
|
|
579
|
+
if print_stdout:
|
|
580
|
+
sys.stdout.flush()
|
|
581
|
+
stdout_write = getattr(sys.stdout, 'buffer', sys.stdout).write
|
|
582
|
+
else:
|
|
583
|
+
stdout_write = lambda _: None
|
|
549
584
|
|
|
550
585
|
sleep_interval = RETRY_INITIAL_SLEEP
|
|
551
586
|
run_cwd = kwargs.get('cwd', os.getcwd())
|
|
552
|
-
for
|
|
587
|
+
for attempt in range(RETRY_MAX + 1):
|
|
553
588
|
kid = subprocess2.Popen(
|
|
554
589
|
args, bufsize=0, stdout=subprocess2.PIPE, stderr=subprocess2.STDOUT,
|
|
555
590
|
**kwargs)
|
|
556
591
|
|
|
557
592
|
GClientChildren.add(kid)
|
|
558
593
|
|
|
559
|
-
#
|
|
560
|
-
|
|
594
|
+
# Store the output of the command regardless of the value of print_stdout or
|
|
595
|
+
# filter_fn.
|
|
596
|
+
command_output = io.BytesIO()
|
|
597
|
+
|
|
598
|
+
# Passed as a list for "by ref" semantics.
|
|
599
|
+
needs_header = [show_header]
|
|
600
|
+
if always_show_header:
|
|
601
|
+
show_header_if_necessary(needs_header, attempt)
|
|
561
602
|
|
|
562
603
|
# Also, we need to forward stdout to prevent weird re-ordering of output.
|
|
563
604
|
# This has to be done on a per byte basis to make sure it is not buffered:
|
|
@@ -565,26 +606,31 @@ def CheckCallAndFilter(args, stdout=None, filter_fn=None,
|
|
|
565
606
|
# input, no end-of-line character is output after the prompt and it would
|
|
566
607
|
# not show up.
|
|
567
608
|
try:
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
609
|
+
line_start = None
|
|
610
|
+
while True:
|
|
611
|
+
in_byte = kid.stdout.read(1)
|
|
612
|
+
is_newline = in_byte in (b'\n', b'\r')
|
|
613
|
+
if not in_byte:
|
|
614
|
+
break
|
|
615
|
+
|
|
616
|
+
show_header_if_necessary(needs_header, attempt)
|
|
617
|
+
|
|
618
|
+
if is_newline:
|
|
619
|
+
filter_line(command_output, line_start)
|
|
620
|
+
line_start = None
|
|
621
|
+
elif line_start is None:
|
|
622
|
+
line_start = command_output.tell()
|
|
623
|
+
|
|
624
|
+
stdout_write(in_byte)
|
|
625
|
+
command_output.write(in_byte)
|
|
626
|
+
|
|
627
|
+
# Flush the rest of buffered output.
|
|
628
|
+
sys.stdout.flush()
|
|
629
|
+
if line_start is not None:
|
|
630
|
+
filter_line(command_output, line_start)
|
|
631
|
+
|
|
587
632
|
rv = kid.wait()
|
|
633
|
+
kid.stdout.close()
|
|
588
634
|
|
|
589
635
|
# Don't put this in a 'finally,' since the child may still run if we get
|
|
590
636
|
# an exception.
|
|
@@ -595,13 +641,16 @@ def CheckCallAndFilter(args, stdout=None, filter_fn=None,
|
|
|
595
641
|
raise
|
|
596
642
|
|
|
597
643
|
if rv == 0:
|
|
598
|
-
return
|
|
644
|
+
return command_output.getvalue()
|
|
645
|
+
|
|
599
646
|
if not retry:
|
|
600
647
|
break
|
|
648
|
+
|
|
601
649
|
print("WARNING: subprocess '%s' in %s failed; will retry after a short "
|
|
602
650
|
'nap...' % (' '.join('"%s"' % x for x in args), run_cwd))
|
|
603
651
|
time.sleep(sleep_interval)
|
|
604
652
|
sleep_interval *= 2
|
|
653
|
+
|
|
605
654
|
raise subprocess2.CalledProcessError(
|
|
606
655
|
rv, args, kwargs.get('cwd', None), None, None)
|
|
607
656
|
|
|
@@ -624,6 +673,7 @@ class GitFilter(object):
|
|
|
624
673
|
The line will be skipped if predicate(line) returns False.
|
|
625
674
|
out_fh: File handle to write output to.
|
|
626
675
|
"""
|
|
676
|
+
self.first_line = True
|
|
627
677
|
self.last_time = 0
|
|
628
678
|
self.time_throttle = time_throttle
|
|
629
679
|
self.predicate = predicate
|
|
@@ -632,20 +682,22 @@ class GitFilter(object):
|
|
|
632
682
|
|
|
633
683
|
def __call__(self, line):
|
|
634
684
|
# git uses an escape sequence to clear the line; elide it.
|
|
635
|
-
esc = line.find(chr(0o33)
|
|
685
|
+
esc = line.find(chr(0o33))
|
|
636
686
|
if esc > -1:
|
|
637
687
|
line = line[:esc]
|
|
638
688
|
if self.predicate and not self.predicate(line):
|
|
639
689
|
return
|
|
640
690
|
now = time.time()
|
|
641
|
-
match = self.PERCENT_RE.match(line
|
|
691
|
+
match = self.PERCENT_RE.match(line)
|
|
642
692
|
if match:
|
|
643
693
|
if match.group(1) != self.progress_prefix:
|
|
644
694
|
self.progress_prefix = match.group(1)
|
|
645
695
|
elif now - self.last_time < self.time_throttle:
|
|
646
696
|
return
|
|
647
697
|
self.last_time = now
|
|
648
|
-
self.
|
|
698
|
+
if not self.first_line:
|
|
699
|
+
self.out_fh.write('[%s] ' % Elapsed())
|
|
700
|
+
self.first_line = False
|
|
649
701
|
print(line, file=self.out_fh)
|
|
650
702
|
|
|
651
703
|
|
|
@@ -687,7 +739,8 @@ def GetGClientRootAndEntries(path=None):
|
|
|
687
739
|
return None
|
|
688
740
|
config_path = os.path.join(root, config_file)
|
|
689
741
|
env = {}
|
|
690
|
-
|
|
742
|
+
with open(config_path) as config:
|
|
743
|
+
exec(config.read(), env)
|
|
691
744
|
config_dir = os.path.dirname(config_path)
|
|
692
745
|
return config_dir, env['entries']
|
|
693
746
|
|
|
@@ -900,7 +953,7 @@ class ExecutionQueue(object):
|
|
|
900
953
|
running = self.running
|
|
901
954
|
self.running = []
|
|
902
955
|
for t in running:
|
|
903
|
-
if t.
|
|
956
|
+
if t.is_alive():
|
|
904
957
|
self.running.append(t)
|
|
905
958
|
else:
|
|
906
959
|
t.join()
|
|
@@ -1140,7 +1193,7 @@ def DefaultIndexPackConfig(url=''):
|
|
|
1140
1193
|
performance."""
|
|
1141
1194
|
cache_limit = DefaultDeltaBaseCacheLimit()
|
|
1142
1195
|
result = ['-c', 'core.deltaBaseCacheLimit=%s' % cache_limit]
|
|
1143
|
-
if url in
|
|
1196
|
+
if url in THREADED_INDEX_PACK_BLOCKLIST:
|
|
1144
1197
|
result.extend(['-c', 'pack.threads=1'])
|
|
1145
1198
|
return result
|
|
1146
1199
|
|
|
@@ -1151,7 +1204,7 @@ def FindExecutable(executable):
|
|
|
1151
1204
|
|
|
1152
1205
|
for path_folder in path_folders:
|
|
1153
1206
|
target = os.path.join(path_folder, executable)
|
|
1154
|
-
# Just
|
|
1207
|
+
# Just in case we have some ~/blah paths.
|
|
1155
1208
|
target = os.path.abspath(os.path.expanduser(target))
|
|
1156
1209
|
if os.path.isfile(target) and os.access(target, os.X_OK):
|
|
1157
1210
|
return target
|
|
@@ -1175,7 +1228,7 @@ def freeze(obj):
|
|
|
1175
1228
|
|
|
1176
1229
|
Will raise TypeError if you pass an object which is not hashable.
|
|
1177
1230
|
"""
|
|
1178
|
-
if isinstance(obj,
|
|
1231
|
+
if isinstance(obj, collections_abc.Mapping):
|
|
1179
1232
|
return FrozenDict((freeze(k), freeze(v)) for k, v in obj.items())
|
|
1180
1233
|
elif isinstance(obj, (list, tuple)):
|
|
1181
1234
|
return tuple(freeze(i) for i in obj)
|
|
@@ -1186,7 +1239,7 @@ def freeze(obj):
|
|
|
1186
1239
|
return obj
|
|
1187
1240
|
|
|
1188
1241
|
|
|
1189
|
-
class FrozenDict(
|
|
1242
|
+
class FrozenDict(collections_abc.Mapping):
|
|
1190
1243
|
"""An immutable OrderedDict.
|
|
1191
1244
|
|
|
1192
1245
|
Modified From: http://stackoverflow.com/a/2704866
|
|
@@ -1200,13 +1253,13 @@ class FrozenDict(collections.Mapping):
|
|
|
1200
1253
|
operator.xor, (hash(i) for i in enumerate(self._d.items())), 0)
|
|
1201
1254
|
|
|
1202
1255
|
def __eq__(self, other):
|
|
1203
|
-
if not isinstance(other,
|
|
1256
|
+
if not isinstance(other, collections_abc.Mapping):
|
|
1204
1257
|
return NotImplemented
|
|
1205
1258
|
if self is other:
|
|
1206
1259
|
return True
|
|
1207
1260
|
if len(self) != len(other):
|
|
1208
1261
|
return False
|
|
1209
|
-
for k, v in self.
|
|
1262
|
+
for k, v in self.items():
|
|
1210
1263
|
if k not in other or other[k] != v:
|
|
1211
1264
|
return False
|
|
1212
1265
|
return True
|