libv8 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 +7 -0
- data/.gitignore +19 -0
- data/.gitmodules +3 -0
- data/.rspec +3 -0
- data/.travis.yml +45 -0
- data/CHANGELOG.md +111 -0
- data/Gemfile +4 -0
- data/README.md +152 -0
- data/Rakefile +125 -0
- data/appveyor.yml.disabled +36 -0
- data/ext/libv8/arch.rb +20 -0
- data/ext/libv8/builder.rb +106 -0
- data/ext/libv8/extconf.rb +7 -0
- data/ext/libv8/location.rb +89 -0
- data/ext/libv8/paths.rb +28 -0
- data/lib/libv8.rb +9 -0
- data/lib/libv8/version.rb +3 -0
- data/libv8.gemspec +30 -0
- data/scaleway.png +0 -0
- data/spec/location_spec.rb +69 -0
- data/spec/spec_helper.rb +4 -0
- data/thefrontside.png +0 -0
- data/vendor/depot_tools/.cipd_impl.ps1 +129 -0
- data/vendor/depot_tools/.gitattributes +55 -0
- data/vendor/depot_tools/.gitignore +92 -0
- data/vendor/depot_tools/.style.yapf +4 -0
- data/vendor/depot_tools/.vpython +55 -0
- data/vendor/depot_tools/.vpython3 +23 -0
- data/vendor/depot_tools/CROS_OWNERS +7 -0
- data/vendor/depot_tools/GOMA_OWNERS +9 -0
- data/vendor/depot_tools/LICENSE +27 -0
- data/vendor/depot_tools/LUCI_OWNERS +5 -0
- data/vendor/depot_tools/OWNERS +39 -0
- data/vendor/depot_tools/PRESUBMIT.py +150 -0
- data/vendor/depot_tools/README.gclient.md +67 -0
- data/vendor/depot_tools/README.git-cl.md +99 -0
- data/vendor/depot_tools/README.md +78 -0
- data/vendor/depot_tools/WATCHLISTS +26 -0
- data/vendor/depot_tools/auth.py +163 -0
- data/vendor/depot_tools/autoninja +36 -0
- data/vendor/depot_tools/autoninja.bat +33 -0
- data/vendor/depot_tools/autoninja.py +148 -0
- data/vendor/depot_tools/bb +12 -0
- data/vendor/depot_tools/bb.bat +7 -0
- data/vendor/depot_tools/bootstrap/README.md +155 -0
- data/vendor/depot_tools/bootstrap/bootstrap.py +356 -0
- data/vendor/depot_tools/bootstrap/git-bash.template.sh +12 -0
- data/vendor/depot_tools/bootstrap/git.template.bat +5 -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/profile.d.python.sh +20 -0
- data/vendor/depot_tools/bootstrap/python27.bat +46 -0
- data/vendor/depot_tools/bootstrap/python3.bat +46 -0
- data/vendor/depot_tools/bootstrap/win_tools.bat +79 -0
- data/vendor/depot_tools/bootstrap_python3 +35 -0
- data/vendor/depot_tools/breakpad.py +12 -0
- data/vendor/depot_tools/cbuildbot +1 -0
- data/vendor/depot_tools/chrome_set_ver +1 -0
- data/vendor/depot_tools/cipd +247 -0
- data/vendor/depot_tools/cipd.bat +67 -0
- data/vendor/depot_tools/cipd_bin_setup.bat +6 -0
- data/vendor/depot_tools/cipd_bin_setup.sh +22 -0
- data/vendor/depot_tools/cipd_client_version +1 -0
- data/vendor/depot_tools/cipd_client_version.digests +22 -0
- data/vendor/depot_tools/cipd_manifest.txt +63 -0
- data/vendor/depot_tools/cipd_manifest.versions +438 -0
- data/vendor/depot_tools/cit +8 -0
- data/vendor/depot_tools/cit.bat +12 -0
- data/vendor/depot_tools/cit.py +167 -0
- data/vendor/depot_tools/clang-format +8 -0
- data/vendor/depot_tools/clang-format.bat +12 -0
- data/vendor/depot_tools/clang_format.py +79 -0
- data/vendor/depot_tools/clang_format_merge_driver +8 -0
- data/vendor/depot_tools/clang_format_merge_driver.bat +12 -0
- data/vendor/depot_tools/clang_format_merge_driver.py +69 -0
- data/vendor/depot_tools/codereview.settings +6 -0
- data/vendor/depot_tools/compile_single_file +8 -0
- data/vendor/depot_tools/compile_single_file.bat +11 -0
- data/vendor/depot_tools/compile_single_file.py +79 -0
- data/vendor/depot_tools/cpplint.bat +11 -0
- data/vendor/depot_tools/cpplint.py +6097 -0
- data/vendor/depot_tools/cpplint_chromium.py +50 -0
- data/vendor/depot_tools/cros +87 -0
- data/vendor/depot_tools/cros_sdk +1 -0
- data/vendor/depot_tools/crosjobs +13 -0
- data/vendor/depot_tools/detect_host_arch.py +55 -0
- data/vendor/depot_tools/dirmd +12 -0
- data/vendor/depot_tools/dirmd.bat +7 -0
- data/vendor/depot_tools/download_from_google_storage +8 -0
- data/vendor/depot_tools/download_from_google_storage.bat +12 -0
- data/vendor/depot_tools/download_from_google_storage.py +634 -0
- data/vendor/depot_tools/ensure_bootstrap +53 -0
- data/vendor/depot_tools/fetch +21 -0
- data/vendor/depot_tools/fetch.bat +28 -0
- data/vendor/depot_tools/fetch.py +319 -0
- data/vendor/depot_tools/fetch_configs/android.py +34 -0
- data/vendor/depot_tools/fetch_configs/android_internal.py +34 -0
- data/vendor/depot_tools/fetch_configs/breakpad.py +44 -0
- data/vendor/depot_tools/fetch_configs/chromium.py +66 -0
- data/vendor/depot_tools/fetch_configs/config_util.py +52 -0
- data/vendor/depot_tools/fetch_configs/crashpad.py +41 -0
- data/vendor/depot_tools/fetch_configs/dart.py +45 -0
- data/vendor/depot_tools/fetch_configs/depot_tools.py +44 -0
- data/vendor/depot_tools/fetch_configs/devtools-frontend.py +44 -0
- data/vendor/depot_tools/fetch_configs/goma_client.py +41 -0
- data/vendor/depot_tools/fetch_configs/gyp.py +41 -0
- data/vendor/depot_tools/fetch_configs/infra.py +40 -0
- data/vendor/depot_tools/fetch_configs/infra_internal.py +45 -0
- data/vendor/depot_tools/fetch_configs/inspector_protocol.py +40 -0
- data/vendor/depot_tools/fetch_configs/ios.py +34 -0
- data/vendor/depot_tools/fetch_configs/ios_internal.py +39 -0
- data/vendor/depot_tools/fetch_configs/nacl.py +48 -0
- data/vendor/depot_tools/fetch_configs/naclports.py +47 -0
- data/vendor/depot_tools/fetch_configs/node-ci.py +41 -0
- data/vendor/depot_tools/fetch_configs/pdfium.py +40 -0
- data/vendor/depot_tools/fetch_configs/skia.py +41 -0
- data/vendor/depot_tools/fetch_configs/skia_buildbot.py +41 -0
- data/vendor/depot_tools/fetch_configs/syzygy.py +41 -0
- data/vendor/depot_tools/fetch_configs/v8.py +44 -0
- data/vendor/depot_tools/fetch_configs/webrtc.py +52 -0
- data/vendor/depot_tools/fetch_configs/webrtc_android.py +34 -0
- data/vendor/depot_tools/fetch_configs/webrtc_ios.py +34 -0
- data/vendor/depot_tools/fix_encoding.py +385 -0
- data/vendor/depot_tools/gclient +38 -0
- data/vendor/depot_tools/gclient-new-workdir.py +124 -0
- data/vendor/depot_tools/gclient.bat +32 -0
- data/vendor/depot_tools/gclient.py +3198 -0
- data/vendor/depot_tools/gclient_completion.sh +76 -0
- data/vendor/depot_tools/gclient_eval.py +891 -0
- data/vendor/depot_tools/gclient_paths.py +152 -0
- data/vendor/depot_tools/gclient_scm.py +1615 -0
- data/vendor/depot_tools/gclient_utils.py +1280 -0
- data/vendor/depot_tools/gerrit_client.py +151 -0
- data/vendor/depot_tools/gerrit_util.py +996 -0
- data/vendor/depot_tools/git-cache +6 -0
- data/vendor/depot_tools/git-cl +6 -0
- data/vendor/depot_tools/git-crrev-parse +53 -0
- data/vendor/depot_tools/git-drover +6 -0
- data/vendor/depot_tools/git-find-releases +6 -0
- data/vendor/depot_tools/git-footers +6 -0
- data/vendor/depot_tools/git-freeze +8 -0
- data/vendor/depot_tools/git-gs +9 -0
- data/vendor/depot_tools/git-hyper-blame +6 -0
- data/vendor/depot_tools/git-map +6 -0
- data/vendor/depot_tools/git-map-branches +6 -0
- data/vendor/depot_tools/git-mark-merge-base +6 -0
- data/vendor/depot_tools/git-nav-downstream +6 -0
- data/vendor/depot_tools/git-nav-upstream +6 -0
- data/vendor/depot_tools/git-new-branch +6 -0
- data/vendor/depot_tools/git-number +6 -0
- data/vendor/depot_tools/git-rebase-update +6 -0
- data/vendor/depot_tools/git-rename-branch +6 -0
- data/vendor/depot_tools/git-reparent-branch +6 -0
- data/vendor/depot_tools/git-retry +8 -0
- data/vendor/depot_tools/git-runhooks +23 -0
- data/vendor/depot_tools/git-squash-branch +6 -0
- data/vendor/depot_tools/git-templates/description +3 -0
- data/vendor/depot_tools/git-templates/hooks/applypatch-msg +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-applypatch +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-checkout +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-commit +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-merge +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-update +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-applypatch +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-auto-gc +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-commit +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-rebase +4 -0
- data/vendor/depot_tools/git-templates/hooks/prepare-commit-msg +4 -0
- data/vendor/depot_tools/git-templates/info/exclude +6 -0
- data/vendor/depot_tools/git-thaw +13 -0
- data/vendor/depot_tools/git-upstream-diff +9 -0
- data/vendor/depot_tools/git_cache.py +786 -0
- data/vendor/depot_tools/git_cl.py +5158 -0
- data/vendor/depot_tools/git_cl_completion.sh +48 -0
- data/vendor/depot_tools/git_common.py +1101 -0
- data/vendor/depot_tools/git_dates.py +62 -0
- data/vendor/depot_tools/git_drover.py +469 -0
- data/vendor/depot_tools/git_find_releases.py +67 -0
- data/vendor/depot_tools/git_footers.py +261 -0
- data/vendor/depot_tools/git_freezer.py +40 -0
- data/vendor/depot_tools/git_hyper_blame.py +391 -0
- data/vendor/depot_tools/git_map.py +166 -0
- data/vendor/depot_tools/git_map_branches.py +354 -0
- data/vendor/depot_tools/git_mark_merge_base.py +73 -0
- data/vendor/depot_tools/git_nav_downstream.py +69 -0
- data/vendor/depot_tools/git_new_branch.py +82 -0
- data/vendor/depot_tools/git_number.py +301 -0
- data/vendor/depot_tools/git_rebase_update.py +351 -0
- data/vendor/depot_tools/git_rename_branch.py +55 -0
- data/vendor/depot_tools/git_reparent_branch.py +101 -0
- data/vendor/depot_tools/git_retry.py +181 -0
- data/vendor/depot_tools/git_squash_branch.py +28 -0
- data/vendor/depot_tools/git_upstream_diff.py +64 -0
- data/vendor/depot_tools/gn +8 -0
- data/vendor/depot_tools/gn.bat +12 -0
- data/vendor/depot_tools/gn.py +78 -0
- 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 +190 -0
- data/vendor/depot_tools/gsutil.py.bat +23 -0
- data/vendor/depot_tools/gsutil.vpython +120 -0
- data/vendor/depot_tools/infra/README.md +1 -0
- data/vendor/depot_tools/infra/config/OWNERS +7 -0
- data/vendor/depot_tools/infra/config/README.md +1 -0
- data/vendor/depot_tools/infra/config/recipes.cfg +26 -0
- data/vendor/depot_tools/led +12 -0
- data/vendor/depot_tools/led.bat +7 -0
- data/vendor/depot_tools/lockfile.py +116 -0
- data/vendor/depot_tools/luci-auth +13 -0
- data/vendor/depot_tools/luci-auth.bat +8 -0
- data/vendor/depot_tools/lucicfg +12 -0
- data/vendor/depot_tools/lucicfg.bat +7 -0
- data/vendor/depot_tools/mac_toolchain +12 -0
- data/vendor/depot_tools/man/html/depot_tools.html +934 -0
- data/vendor/depot_tools/man/html/depot_tools_tutorial.html +1593 -0
- data/vendor/depot_tools/man/html/git-cl.html +1033 -0
- data/vendor/depot_tools/man/html/git-drover.html +1048 -0
- data/vendor/depot_tools/man/html/git-footers.html +878 -0
- data/vendor/depot_tools/man/html/git-freeze.html +859 -0
- data/vendor/depot_tools/man/html/git-hyper-blame.html +878 -0
- data/vendor/depot_tools/man/html/git-map-branches.html +904 -0
- data/vendor/depot_tools/man/html/git-map.html +887 -0
- data/vendor/depot_tools/man/html/git-mark-merge-base.html +826 -0
- data/vendor/depot_tools/man/html/git-nav-downstream.html +844 -0
- data/vendor/depot_tools/man/html/git-nav-upstream.html +853 -0
- data/vendor/depot_tools/man/html/git-new-branch.html +932 -0
- data/vendor/depot_tools/man/html/git-rebase-update.html +961 -0
- data/vendor/depot_tools/man/html/git-rename-branch.html +794 -0
- data/vendor/depot_tools/man/html/git-reparent-branch.html +847 -0
- data/vendor/depot_tools/man/html/git-retry.html +858 -0
- data/vendor/depot_tools/man/html/git-squash-branch.html +881 -0
- data/vendor/depot_tools/man/html/git-thaw.html +794 -0
- data/vendor/depot_tools/man/html/git-upstream-diff.html +923 -0
- data/vendor/depot_tools/man/man1/git-cl.1 +198 -0
- data/vendor/depot_tools/man/man1/git-drover.1 +330 -0
- data/vendor/depot_tools/man/man1/git-footers.1 +144 -0
- data/vendor/depot_tools/man/man1/git-freeze.1 +113 -0
- data/vendor/depot_tools/man/man1/git-hyper-blame.1 +128 -0
- data/vendor/depot_tools/man/man1/git-map-branches.1 +210 -0
- data/vendor/depot_tools/man/man1/git-map.1 +179 -0
- data/vendor/depot_tools/man/man1/git-mark-merge-base.1 +69 -0
- data/vendor/depot_tools/man/man1/git-nav-downstream.1 +112 -0
- data/vendor/depot_tools/man/man1/git-nav-upstream.1 +122 -0
- data/vendor/depot_tools/man/man1/git-new-branch.1 +176 -0
- data/vendor/depot_tools/man/man1/git-rebase-update.1 +177 -0
- data/vendor/depot_tools/man/man1/git-rename-branch.1 +53 -0
- data/vendor/depot_tools/man/man1/git-reparent-branch.1 +93 -0
- data/vendor/depot_tools/man/man1/git-retry.1 +108 -0
- data/vendor/depot_tools/man/man1/git-squash-branch.1 +129 -0
- data/vendor/depot_tools/man/man1/git-thaw.1 +54 -0
- data/vendor/depot_tools/man/man1/git-upstream-diff.1 +153 -0
- data/vendor/depot_tools/man/man7/depot_tools.7 +139 -0
- data/vendor/depot_tools/man/man7/depot_tools_tutorial.7 +1061 -0
- data/vendor/depot_tools/man/push_to_gs.sh +4 -0
- data/vendor/depot_tools/man/src/.gitignore +5 -0
- data/vendor/depot_tools/man/src/_aliases.txt +5 -0
- data/vendor/depot_tools/man/src/_footer.txt +8 -0
- data/vendor/depot_tools/man/src/_git-cl_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-drover_desc.helper.txt +2 -0
- data/vendor/depot_tools/man/src/_git-footers_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-freeze_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-hyper-blame_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-map-branches_desc.helper.txt +4 -0
- data/vendor/depot_tools/man/src/_git-map_desc.helper.txt +3 -0
- data/vendor/depot_tools/man/src/_git-mark-merge-base_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-nav-downstream_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-nav-upstream_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-new-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-rebase-update_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-rename-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-reparent-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-retry_desc.helper.txt +2 -0
- data/vendor/depot_tools/man/src/_git-squash-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-thaw_desc.helper.txt +2 -0
- data/vendor/depot_tools/man/src/_git-upstream-diff_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_helper_prefix.txt +1 -0
- data/vendor/depot_tools/man/src/asciidoc-override.css +7 -0
- data/vendor/depot_tools/man/src/common_demo_functions.sh +84 -0
- data/vendor/depot_tools/man/src/demo_repo.sh +43 -0
- data/vendor/depot_tools/man/src/depot_tools.txt +28 -0
- data/vendor/depot_tools/man/src/depot_tools_tutorial.demo.walkthrough.sh +155 -0
- data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +432 -0
- data/vendor/depot_tools/man/src/filter_demo_output.py +141 -0
- data/vendor/depot_tools/man/src/git-cl.txt +119 -0
- data/vendor/depot_tools/man/src/git-drover.demo.1.sh +22 -0
- data/vendor/depot_tools/man/src/git-drover.demo.2.sh +23 -0
- data/vendor/depot_tools/man/src/git-drover.demo.3.sh +27 -0
- data/vendor/depot_tools/man/src/git-drover.demo.4.sh +39 -0
- data/vendor/depot_tools/man/src/git-drover.demo.common.sh +19 -0
- data/vendor/depot_tools/man/src/git-drover.txt +102 -0
- data/vendor/depot_tools/man/src/git-footers.demo.1.sh +17 -0
- data/vendor/depot_tools/man/src/git-footers.txt +71 -0
- data/vendor/depot_tools/man/src/git-freeze.demo.1.sh +23 -0
- data/vendor/depot_tools/man/src/git-freeze.txt +54 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.1.sh +3 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.2.sh +4 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.common.sh +57 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.txt +85 -0
- data/vendor/depot_tools/man/src/git-map-branches.demo.1.sh +8 -0
- data/vendor/depot_tools/man/src/git-map-branches.txt +64 -0
- data/vendor/depot_tools/man/src/git-map.demo.1.sh +3 -0
- data/vendor/depot_tools/man/src/git-map.txt +67 -0
- data/vendor/depot_tools/man/src/git-mark-merge-base.txt +46 -0
- data/vendor/depot_tools/man/src/git-nav-downstream.demo.1.sh +12 -0
- data/vendor/depot_tools/man/src/git-nav-downstream.txt +40 -0
- data/vendor/depot_tools/man/src/git-nav-upstream.demo.1.sh +12 -0
- data/vendor/depot_tools/man/src/git-nav-upstream.txt +39 -0
- data/vendor/depot_tools/man/src/git-new-branch.demo.1.sh +17 -0
- data/vendor/depot_tools/man/src/git-new-branch.txt +82 -0
- data/vendor/depot_tools/man/src/git-rebase-update.txt +141 -0
- data/vendor/depot_tools/man/src/git-rename-branch.txt +28 -0
- data/vendor/depot_tools/man/src/git-reparent-branch.txt +61 -0
- data/vendor/depot_tools/man/src/git-retry.txt +67 -0
- data/vendor/depot_tools/man/src/git-squash-branch.demo.1.sh +12 -0
- data/vendor/depot_tools/man/src/git-squash-branch.txt +59 -0
- data/vendor/depot_tools/man/src/git-thaw.txt +29 -0
- data/vendor/depot_tools/man/src/git-upstream-diff.txt +107 -0
- data/vendor/depot_tools/man/src/make_docs.sh +260 -0
- data/vendor/depot_tools/man/src/prep_demo_repo.sh +103 -0
- data/vendor/depot_tools/metrics.README.md +101 -0
- data/vendor/depot_tools/metrics.py +297 -0
- data/vendor/depot_tools/metrics_utils.py +293 -0
- data/vendor/depot_tools/my_activity.py +971 -0
- data/vendor/depot_tools/ninja +44 -0
- data/vendor/depot_tools/ninja-linux32 +0 -0
- data/vendor/depot_tools/ninja-linux64 +0 -0
- data/vendor/depot_tools/ninja-mac +0 -0
- data/vendor/depot_tools/ninja.exe +0 -0
- data/vendor/depot_tools/ninjalog.README.md +64 -0
- data/vendor/depot_tools/ninjalog_uploader.py +233 -0
- data/vendor/depot_tools/ninjalog_uploader_wrapper.py +125 -0
- data/vendor/depot_tools/owners.py +641 -0
- data/vendor/depot_tools/owners_finder.py +385 -0
- data/vendor/depot_tools/post_build_ninja_summary.py +350 -0
- data/vendor/depot_tools/presubmit_canned_checks.py +1655 -0
- data/vendor/depot_tools/presubmit_support.py +1923 -0
- data/vendor/depot_tools/profile.xml +8 -0
- data/vendor/depot_tools/prpc +13 -0
- data/vendor/depot_tools/prpc.bat +8 -0
- data/vendor/depot_tools/pylint +9 -0
- 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/pylint.bat +12 -0
- data/vendor/depot_tools/pylint_main.py +45 -0
- data/vendor/depot_tools/pylintrc +349 -0
- data/vendor/depot_tools/python-bin/python3 +7 -0
- data/vendor/depot_tools/python_runner.sh +60 -0
- data/vendor/depot_tools/rdb +12 -0
- data/vendor/depot_tools/rdb.bat +7 -0
- data/vendor/depot_tools/recipes/OWNERS +4 -0
- data/vendor/depot_tools/recipes/README.recipes.md +1079 -0
- data/vendor/depot_tools/recipes/recipe_modules/OWNERS +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/OWNERS +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +38 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +516 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +117 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +117 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +118 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +194 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/input_commit_with_id_without_repo.json +210 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/multiple_patch_refs.json +214 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_HEAD.json +65 -0
- 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 +212 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +210 -0
- 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 +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +209 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +193 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +261 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +261 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +8 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +308 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/__init__.py +0 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +1258 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +93 -0
- 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 +35 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/__init__.py +9 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +455 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +82 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +411 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +315 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +313 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +313 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.py +187 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.py +59 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/test_api.py +93 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/__init__.py +9 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +75 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +55 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +13 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +428 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +462 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +238 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +240 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +238 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +95 -0
- 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 +36 -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 +92 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/sync_failure.py +24 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/__init__.py +8 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +178 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +284 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.py +73 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/test_api.py +53 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +11 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/api.py +405 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +219 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +216 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +164 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +220 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +239 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +290 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +220 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +222 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +111 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +221 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +219 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +170 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/resources/git_setup.py +52 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/test_api.py +18 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +50 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/config.py +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +105 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.py +47 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/OWNERS +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +257 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +596 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +93 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +251 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/test_api.py +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.py +49 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/__init__.py +4 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +222 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +247 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.py +92 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/resources/gsutil_smart_retry.py +69 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +36 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +140 -0
- 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 +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +42 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +27 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +251 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +27 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.py +19 -0
- 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/__init__.py +18 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +264 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +57 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +190 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +190 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/test_api.py +14 -0
- 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/__init__.py +25 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/api.py +137 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +108 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +21 -0
- data/vendor/depot_tools/recipes/recipes.py +249 -0
- data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +175 -0
- data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.py +56 -0
- data/vendor/depot_tools/recipes/trigger_recipe_roller.txt +13 -0
- data/vendor/depot_tools/repo +1194 -0
- data/vendor/depot_tools/roll-dep +21 -0
- data/vendor/depot_tools/roll-dep.bat +21 -0
- data/vendor/depot_tools/roll_dep.py +282 -0
- data/vendor/depot_tools/scm.py +415 -0
- data/vendor/depot_tools/setup_color.py +130 -0
- data/vendor/depot_tools/split_cl.py +263 -0
- data/vendor/depot_tools/subcommand.py +261 -0
- data/vendor/depot_tools/subprocess2.py +258 -0
- data/vendor/depot_tools/third_party/__init__.py +5 -0
- data/vendor/depot_tools/third_party/colorama/LICENSE.txt +27 -0
- data/vendor/depot_tools/third_party/colorama/README.chromium +12 -0
- data/vendor/depot_tools/third_party/colorama/README.rst +346 -0
- data/vendor/depot_tools/third_party/colorama/__init__.py +6 -0
- data/vendor/depot_tools/third_party/colorama/ansi.py +102 -0
- data/vendor/depot_tools/third_party/colorama/ansitowin32.py +257 -0
- data/vendor/depot_tools/third_party/colorama/initialise.py +80 -0
- data/vendor/depot_tools/third_party/colorama/win32.py +152 -0
- data/vendor/depot_tools/third_party/colorama/winterm.py +169 -0
- data/vendor/depot_tools/third_party/coverage/AUTHORS.txt +43 -0
- data/vendor/depot_tools/third_party/coverage/PKG-INFO +41 -0
- data/vendor/depot_tools/third_party/coverage/README.chromium +13 -0
- data/vendor/depot_tools/third_party/coverage/__init__.py +120 -0
- data/vendor/depot_tools/third_party/coverage/__main__.py +4 -0
- data/vendor/depot_tools/third_party/coverage/annotate.py +101 -0
- data/vendor/depot_tools/third_party/coverage/backward.py +184 -0
- data/vendor/depot_tools/third_party/coverage/bytecode.py +75 -0
- data/vendor/depot_tools/third_party/coverage/cmdline.py +740 -0
- data/vendor/depot_tools/third_party/coverage/codeunit.py +145 -0
- data/vendor/depot_tools/third_party/coverage/collector.py +353 -0
- data/vendor/depot_tools/third_party/coverage/config.py +213 -0
- data/vendor/depot_tools/third_party/coverage/control.py +776 -0
- data/vendor/depot_tools/third_party/coverage/data.py +278 -0
- data/vendor/depot_tools/third_party/coverage/debug.py +54 -0
- data/vendor/depot_tools/third_party/coverage/execfile.py +171 -0
- data/vendor/depot_tools/third_party/coverage/files.py +309 -0
- data/vendor/depot_tools/third_party/coverage/fullcoverage/encodings.py +57 -0
- data/vendor/depot_tools/third_party/coverage/html.py +387 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/coverage_html.js +376 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/index.html +104 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery-1.4.3.min.js +166 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.hotkeys.js +99 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.isonscreen.js +53 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.min.js +166 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.tablesorter.min.js +2 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/keybd_closed.png +0 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/keybd_open.png +0 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/pyfile.html +90 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/style.css +300 -0
- data/vendor/depot_tools/third_party/coverage/misc.py +163 -0
- data/vendor/depot_tools/third_party/coverage/parser.py +666 -0
- data/vendor/depot_tools/third_party/coverage/phystokens.py +208 -0
- data/vendor/depot_tools/third_party/coverage/report.py +92 -0
- data/vendor/depot_tools/third_party/coverage/results.py +286 -0
- data/vendor/depot_tools/third_party/coverage/summary.py +86 -0
- data/vendor/depot_tools/third_party/coverage/templite.py +166 -0
- data/vendor/depot_tools/third_party/coverage/version.py +9 -0
- data/vendor/depot_tools/third_party/coverage/xmlreport.py +155 -0
- data/vendor/depot_tools/third_party/httplib2/LICENSE +1339 -0
- data/vendor/depot_tools/third_party/httplib2/README.chromium +15 -0
- data/vendor/depot_tools/third_party/httplib2/__init__.py +1780 -0
- data/vendor/depot_tools/third_party/httplib2/cacerts.txt +2196 -0
- data/vendor/depot_tools/third_party/httplib2/iri2uri.py +110 -0
- data/vendor/depot_tools/third_party/httplib2/socks.py +448 -0
- data/vendor/depot_tools/third_party/repo/COPYING +202 -0
- data/vendor/depot_tools/third_party/repo/README.chromium +4 -0
- data/vendor/depot_tools/third_party/repo/__init__.py +0 -0
- data/vendor/depot_tools/third_party/repo/progress.py +117 -0
- data/vendor/depot_tools/third_party/retry_decorator/LICENSE.google +30 -0
- data/vendor/depot_tools/third_party/retry_decorator/__init__.py +0 -0
- data/vendor/depot_tools/third_party/retry_decorator/decorators.py +45 -0
- data/vendor/depot_tools/third_party/schema/.editorconfig +15 -0
- data/vendor/depot_tools/third_party/schema/.gitignore +174 -0
- data/vendor/depot_tools/third_party/schema/.travis.yml +37 -0
- data/vendor/depot_tools/third_party/schema/LICENSE-MIT +19 -0
- data/vendor/depot_tools/third_party/schema/MANIFEST.in +1 -0
- data/vendor/depot_tools/third_party/schema/README.chromium +12 -0
- data/vendor/depot_tools/third_party/schema/README.rst +382 -0
- data/vendor/depot_tools/third_party/schema/__init__.py +1 -0
- data/vendor/depot_tools/third_party/schema/schema.py +338 -0
- data/vendor/depot_tools/third_party/schema/setup.cfg +5 -0
- data/vendor/depot_tools/third_party/schema/setup.py +30 -0
- data/vendor/depot_tools/third_party/schema/test_schema.py +556 -0
- data/vendor/depot_tools/third_party/schema/tox.ini +33 -0
- data/vendor/depot_tools/third_party/six/LICENSE.txt +18 -0
- data/vendor/depot_tools/third_party/six/README.chromium +10 -0
- data/vendor/depot_tools/third_party/six/__init__.py +762 -0
- data/vendor/depot_tools/update_depot_tools +138 -0
- data/vendor/depot_tools/update_depot_tools.bat +65 -0
- data/vendor/depot_tools/update_depot_tools_toggle.py +38 -0
- data/vendor/depot_tools/upload_metrics.py +26 -0
- data/vendor/depot_tools/upload_to_google_storage.py +306 -0
- data/vendor/depot_tools/vpython +42 -0
- data/vendor/depot_tools/vpython.bat +7 -0
- data/vendor/depot_tools/vpython3 +55 -0
- data/vendor/depot_tools/vpython3.bat +12 -0
- data/vendor/depot_tools/watchlists.py +141 -0
- data/vendor/depot_tools/weekly +54 -0
- data/vendor/depot_tools/win32imports.py +61 -0
- data/vendor/depot_tools/win_toolchain/OWNERS +2 -0
- data/vendor/depot_tools/win_toolchain/README.md +74 -0
- data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +599 -0
- data/vendor/depot_tools/win_toolchain/package_from_installed.py +524 -0
- data/vendor/depot_tools/wtf +81 -0
- data/vendor/depot_tools/yapf +21 -0
- data/vendor/depot_tools/yapf.bat +12 -0
- data/vendor/depot_tools/zsh-goodies/README +6 -0
- data/vendor/depot_tools/zsh-goodies/_gclient +14 -0
- metadata +729 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
NO_AUTOPREP=True
|
|
4
|
+
. common_demo_functions.sh
|
|
5
|
+
|
|
6
|
+
rm -rf $REMOTE
|
|
7
|
+
mkdir -p $REMOTE
|
|
8
|
+
cd $REMOTE
|
|
9
|
+
|
|
10
|
+
set_user "remote"
|
|
11
|
+
|
|
12
|
+
silent git init
|
|
13
|
+
|
|
14
|
+
WS=build/whitespace_file.txt
|
|
15
|
+
|
|
16
|
+
mkdir build
|
|
17
|
+
cat > "$WS" <<EOF
|
|
18
|
+
Copyright 2014 The Chromium Authors. All rights reserved.
|
|
19
|
+
Use of this useless file is governed by a BSD-style license that can be
|
|
20
|
+
found in the LICENSE file.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
This file is used for making non-code changes to trigger buildbot cycles. Make
|
|
24
|
+
any modification below this line.
|
|
25
|
+
|
|
26
|
+
=====================================================================
|
|
27
|
+
|
|
28
|
+
Let's make a story. Add one sentence for every commit:
|
|
29
|
+
|
|
30
|
+
CHÄPTER 1:
|
|
31
|
+
It was a dark and blinky night; the rain fell in torrents -- except at
|
|
32
|
+
occasional intervals, when it was checked by a violent gust of wind which
|
|
33
|
+
swept up the streets (for it is in London that our scene lies), rattling along
|
|
34
|
+
the housetops, and fiercely agitating the scanty flame of the lamps that
|
|
35
|
+
struggled against the elements. A hooded figure emerged.
|
|
36
|
+
|
|
37
|
+
It was a Domo-Banana.
|
|
38
|
+
|
|
39
|
+
"What took you so long?", inquired his wife.
|
|
40
|
+
|
|
41
|
+
Silence. Oblivious to his silence, she continued, "Did Mr. Usagi enjoy the
|
|
42
|
+
waffles you brought him?" "You know him, he's not one to forego a waffle,
|
|
43
|
+
no matter how burnt," he snickered.
|
|
44
|
+
|
|
45
|
+
The pause was filled with the sound of compile errors.
|
|
46
|
+
|
|
47
|
+
CHAPTER 2:
|
|
48
|
+
The jelly was as dark as night, and just as runny.
|
|
49
|
+
The Domo-Kun shuddered, remembering the way Mr. Usagi had speared his waffles
|
|
50
|
+
with his fork, watching the runny jelly spread and pool across his plate,
|
|
51
|
+
like the blood of a dying fawn. \"It reminds me of that time --\" he started, as
|
|
52
|
+
his wife cut in quickly: \"-- please. I can't bear to hear it.\". A flury of
|
|
53
|
+
images coming from the past flowed through his mind.
|
|
54
|
+
EOF
|
|
55
|
+
git add "$WS"
|
|
56
|
+
|
|
57
|
+
c "Always output seccomp error messages to stderr"
|
|
58
|
+
c "ozone: evdev: Filter devices by path"
|
|
59
|
+
c "ContentView->ContentViewCore in ContentViewRenderView"
|
|
60
|
+
c "linux_aura: Use system configuration for middle clicking the titlebar."
|
|
61
|
+
c "[fsp] Add requestUnmount() method together with the request manager."
|
|
62
|
+
c "don't use glibc-specific execinfo.h on uclibc builds"
|
|
63
|
+
c "Make ReflectorImpl use mailboxes"
|
|
64
|
+
|
|
65
|
+
git tag stage_1
|
|
66
|
+
|
|
67
|
+
c "Change the Pica load benchmark to listen for the polymer-ready event"
|
|
68
|
+
c "Remove AMD family check for the flapper crypto accelerator."
|
|
69
|
+
c "Temporarily CHECK(trial) in ChromeRenderProcessObserver::OnSetFieldTrialGroup."
|
|
70
|
+
|
|
71
|
+
echo -e '/Banana\ns/Banana/Kun\nwq' | silent ed "$WS"
|
|
72
|
+
git add "$WS"
|
|
73
|
+
set_user 'local'
|
|
74
|
+
c "Fix terrible typo."
|
|
75
|
+
|
|
76
|
+
set_user 'remote'
|
|
77
|
+
c "Revert 255617, due to it not tracking use of the link doctor page properly."
|
|
78
|
+
|
|
79
|
+
cat >> "$WS" <<EOF
|
|
80
|
+
|
|
81
|
+
"You recall what happened on Mulholland drive?" The ceiling fan rotated slowly
|
|
82
|
+
overhead, barely disturbing the thick cigarette smoke. No doubt was left about
|
|
83
|
+
when the fan was last cleaned.
|
|
84
|
+
|
|
85
|
+
There was an poignant pause.
|
|
86
|
+
EOF
|
|
87
|
+
git add "$WS"
|
|
88
|
+
set_user 'local'
|
|
89
|
+
c 'Finish chapter 2'
|
|
90
|
+
|
|
91
|
+
git tag stage_2
|
|
92
|
+
|
|
93
|
+
cat >> "$WS" <<EOF
|
|
94
|
+
|
|
95
|
+
CHAPTER 3:
|
|
96
|
+
Hilariousness! This chapter is awesome!
|
|
97
|
+
EOF
|
|
98
|
+
git add "$WS"
|
|
99
|
+
set_user 'remote'
|
|
100
|
+
c "Add best chapter2 ever!"
|
|
101
|
+
|
|
102
|
+
c "Ensure FS is exited for all not-in-same-page navigations."
|
|
103
|
+
c "Refactor data interchange format."
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Why am I seeing this message?
|
|
2
|
+
|
|
3
|
+
We're starting to collect metrics about how developers use gclient and other
|
|
4
|
+
tools in depot\_tools to better understand the performance and failure modes of
|
|
5
|
+
the tools, as well of the pain points and workflows of depot\_tools users.
|
|
6
|
+
|
|
7
|
+
We will collect metrics only if you're a Googler on the corp network: If you can
|
|
8
|
+
access https://cit-cli-metrics.appspot.com/should-upload, then we will collect
|
|
9
|
+
metrics from you.
|
|
10
|
+
|
|
11
|
+
The first ten executions of depot\_tools commands will print large warnings
|
|
12
|
+
counting down to zero. When the counter hits zero, metrics collection will
|
|
13
|
+
automatically begin, and depot\_tools will display large warning messages
|
|
14
|
+
informing you of it. These messages will continue until you explicitly opt in or
|
|
15
|
+
opt out.
|
|
16
|
+
|
|
17
|
+
You can run `gclient metrics --opt-in` or `gclient metrics --opt-out` to do so.
|
|
18
|
+
And you can opt-in or out at any time.
|
|
19
|
+
|
|
20
|
+
Please consider opting in. It will allow us to know what features are the most
|
|
21
|
+
important, what features can we deprecate, and what features should we develop
|
|
22
|
+
to better cover your use case.
|
|
23
|
+
|
|
24
|
+
## What metrics are you collecting?
|
|
25
|
+
|
|
26
|
+
First, some words about what data we are **NOT** collecting:
|
|
27
|
+
|
|
28
|
+
- We won't record any information that identifies you personally.
|
|
29
|
+
- We won't record the command line flag values.
|
|
30
|
+
- We won't record information about the current directory or environment flags.
|
|
31
|
+
- We won't record arbitrary strings. We only collect a string if it is in the
|
|
32
|
+
list available at
|
|
33
|
+
https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/appengine/depot_tools_metrics/metrics/constants.go
|
|
34
|
+
|
|
35
|
+
The metrics we're collecting are:
|
|
36
|
+
|
|
37
|
+
- The time when the command was run.
|
|
38
|
+
- The age of your depot\_tools checkout.
|
|
39
|
+
- Your version of Python (in the format major.minor.micro).
|
|
40
|
+
- Your version of Git (in the format major.minor.micro).
|
|
41
|
+
- The OS of your machine (i.e. win, linux or mac).
|
|
42
|
+
- The arch of your machine (e.g. x64, arm, etc).
|
|
43
|
+
- The command that you ran (e.g. `gclient sync`).
|
|
44
|
+
- The flag names (but not their values) that you passed to the command
|
|
45
|
+
(e.g. `--force`, `--revision`).
|
|
46
|
+
- The execution time.
|
|
47
|
+
- The exit code.
|
|
48
|
+
- The project you're working on. We only record data about projects you can
|
|
49
|
+
fetch using depot\_tools' fetch command (e.g. Chromium, WebRTC, V8, etc)
|
|
50
|
+
- The age of your project checkout.
|
|
51
|
+
- What features are you using in your DEPS and .gclient files. For example:
|
|
52
|
+
- Are you setting `use_relative_paths=True`?
|
|
53
|
+
- Are you using `recursedeps`?
|
|
54
|
+
- Information about the http requests that depot_tools makes:
|
|
55
|
+
- What host are we making the request to?
|
|
56
|
+
Only collected for well known hosts like chromium-review.googlesource.com.
|
|
57
|
+
- What path did we access on the server?
|
|
58
|
+
We map the path to an enum to make sure we're not collecting personally
|
|
59
|
+
identifiable information.
|
|
60
|
+
i.e. we report 'changes/' instead of 'changes/12345'
|
|
61
|
+
- What arguments were used on the request?
|
|
62
|
+
We collect only known argument names, but not their values.
|
|
63
|
+
- What known headers were present or absent?
|
|
64
|
+
- How long did the execution take?
|
|
65
|
+
- What was the response code?
|
|
66
|
+
- What HTTP method was used? (i.e. GET, PUT, POST, etc.)
|
|
67
|
+
- Information about the commands that depot_tools runs:
|
|
68
|
+
- What command was executed? (i.e. git or cipd)
|
|
69
|
+
- How long did the command execute for?
|
|
70
|
+
- What argument names (but not values) were passed to the program.
|
|
71
|
+
(e.g. --checkout but not the branch name).
|
|
72
|
+
- What was the exit code?
|
|
73
|
+
|
|
74
|
+
The list of all known strings we collect can be found at
|
|
75
|
+
https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/appengine/depot_tools_metrics/metrics/constants.go
|
|
76
|
+
|
|
77
|
+
The schema for the metrics being collected can be found at
|
|
78
|
+
https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/appengine/depot_tools_metrics/schema/schema.proto
|
|
79
|
+
|
|
80
|
+
## Why am I seeing this message *again*?
|
|
81
|
+
|
|
82
|
+
We might want to collect additional metrics, and if so we will ask you for
|
|
83
|
+
permission again.
|
|
84
|
+
|
|
85
|
+
Opting in or out explicitly will stop the messages from being displayed.
|
|
86
|
+
|
|
87
|
+
# How can I check if metrics are being collected?
|
|
88
|
+
|
|
89
|
+
You can run `gclient metrics` and it will report if you have opted in, out, or
|
|
90
|
+
not chosen for metrics collection.
|
|
91
|
+
|
|
92
|
+
If you have not yet explicitly opted in or out you will see a message after
|
|
93
|
+
each time we collect metrics.
|
|
94
|
+
|
|
95
|
+
# How can I stop seeing this message?
|
|
96
|
+
|
|
97
|
+
You will stop seeing it once you have explicitly opted in or out of depot\_tools
|
|
98
|
+
metrics collection.
|
|
99
|
+
|
|
100
|
+
You can run `gclient metrics --opt-in` or `gclient metrics --opt-out` to do so.
|
|
101
|
+
And you can opt-in or out at any time.
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# Copyright (c) 2018 The Chromium Authors. All rights reserved.
|
|
3
|
+
# Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
# found in the LICENSE file.
|
|
5
|
+
|
|
6
|
+
from __future__ import print_function
|
|
7
|
+
|
|
8
|
+
import contextlib
|
|
9
|
+
import functools
|
|
10
|
+
import json
|
|
11
|
+
import os
|
|
12
|
+
import sys
|
|
13
|
+
import tempfile
|
|
14
|
+
import threading
|
|
15
|
+
import time
|
|
16
|
+
import traceback
|
|
17
|
+
|
|
18
|
+
try:
|
|
19
|
+
import urllib2 as urllib
|
|
20
|
+
except ImportError: # For Py3 compatibility
|
|
21
|
+
import urllib.request as urllib
|
|
22
|
+
|
|
23
|
+
import detect_host_arch
|
|
24
|
+
import gclient_utils
|
|
25
|
+
import metrics_utils
|
|
26
|
+
import subprocess2
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
DEPOT_TOOLS = os.path.dirname(os.path.abspath(__file__))
|
|
30
|
+
CONFIG_FILE = os.path.join(DEPOT_TOOLS, 'metrics.cfg')
|
|
31
|
+
UPLOAD_SCRIPT = os.path.join(DEPOT_TOOLS, 'upload_metrics.py')
|
|
32
|
+
|
|
33
|
+
DISABLE_METRICS_COLLECTION = os.environ.get('DEPOT_TOOLS_METRICS') == '0'
|
|
34
|
+
DEFAULT_COUNTDOWN = 10
|
|
35
|
+
|
|
36
|
+
INVALID_CONFIG_WARNING = (
|
|
37
|
+
'WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will '
|
|
38
|
+
'be created.'
|
|
39
|
+
)
|
|
40
|
+
PERMISSION_DENIED_WARNING = (
|
|
41
|
+
'Could not write the metrics collection config:\n\t%s\n'
|
|
42
|
+
'Metrics collection will be disabled.'
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class _Config(object):
|
|
47
|
+
def __init__(self):
|
|
48
|
+
self._initialized = False
|
|
49
|
+
self._config = {}
|
|
50
|
+
|
|
51
|
+
def _ensure_initialized(self):
|
|
52
|
+
if self._initialized:
|
|
53
|
+
return
|
|
54
|
+
|
|
55
|
+
try:
|
|
56
|
+
config = json.loads(gclient_utils.FileRead(CONFIG_FILE))
|
|
57
|
+
except (IOError, ValueError):
|
|
58
|
+
config = {}
|
|
59
|
+
|
|
60
|
+
self._config = config.copy()
|
|
61
|
+
|
|
62
|
+
if 'is-googler' not in self._config:
|
|
63
|
+
# /should-upload is only accessible from Google IPs, so we only need to
|
|
64
|
+
# check if we can reach the page. An external developer would get access
|
|
65
|
+
# denied.
|
|
66
|
+
try:
|
|
67
|
+
req = urllib.urlopen(metrics_utils.APP_URL + '/should-upload')
|
|
68
|
+
self._config['is-googler'] = req.getcode() == 200
|
|
69
|
+
except (urllib.URLError, urllib.HTTPError):
|
|
70
|
+
self._config['is-googler'] = False
|
|
71
|
+
|
|
72
|
+
# Make sure the config variables we need are present, and initialize them to
|
|
73
|
+
# safe values otherwise.
|
|
74
|
+
self._config.setdefault('countdown', DEFAULT_COUNTDOWN)
|
|
75
|
+
self._config.setdefault('opt-in', None)
|
|
76
|
+
self._config.setdefault('version', metrics_utils.CURRENT_VERSION)
|
|
77
|
+
|
|
78
|
+
if config != self._config:
|
|
79
|
+
print(INVALID_CONFIG_WARNING, file=sys.stderr)
|
|
80
|
+
self._write_config()
|
|
81
|
+
|
|
82
|
+
self._initialized = True
|
|
83
|
+
|
|
84
|
+
def _write_config(self):
|
|
85
|
+
try:
|
|
86
|
+
gclient_utils.FileWrite(CONFIG_FILE, json.dumps(self._config))
|
|
87
|
+
except IOError as e:
|
|
88
|
+
print(PERMISSION_DENIED_WARNING % e, file=sys.stderr)
|
|
89
|
+
self._config['opt-in'] = False
|
|
90
|
+
|
|
91
|
+
@property
|
|
92
|
+
def version(self):
|
|
93
|
+
self._ensure_initialized()
|
|
94
|
+
return self._config['version']
|
|
95
|
+
|
|
96
|
+
@property
|
|
97
|
+
def is_googler(self):
|
|
98
|
+
self._ensure_initialized()
|
|
99
|
+
return self._config['is-googler']
|
|
100
|
+
|
|
101
|
+
@property
|
|
102
|
+
def opted_in(self):
|
|
103
|
+
self._ensure_initialized()
|
|
104
|
+
return self._config['opt-in']
|
|
105
|
+
|
|
106
|
+
@opted_in.setter
|
|
107
|
+
def opted_in(self, value):
|
|
108
|
+
self._ensure_initialized()
|
|
109
|
+
self._config['opt-in'] = value
|
|
110
|
+
self._config['version'] = metrics_utils.CURRENT_VERSION
|
|
111
|
+
self._write_config()
|
|
112
|
+
|
|
113
|
+
@property
|
|
114
|
+
def countdown(self):
|
|
115
|
+
self._ensure_initialized()
|
|
116
|
+
return self._config['countdown']
|
|
117
|
+
|
|
118
|
+
@property
|
|
119
|
+
def should_collect_metrics(self):
|
|
120
|
+
# Don't collect the metrics unless the user is a googler, the user has opted
|
|
121
|
+
# in, or the countdown has expired.
|
|
122
|
+
if not self.is_googler:
|
|
123
|
+
return False
|
|
124
|
+
if self.opted_in is False:
|
|
125
|
+
return False
|
|
126
|
+
if self.opted_in is None and self.countdown > 0:
|
|
127
|
+
return False
|
|
128
|
+
return True
|
|
129
|
+
|
|
130
|
+
def decrease_countdown(self):
|
|
131
|
+
self._ensure_initialized()
|
|
132
|
+
if self.countdown == 0:
|
|
133
|
+
return
|
|
134
|
+
self._config['countdown'] -= 1
|
|
135
|
+
if self.countdown == 0:
|
|
136
|
+
self._config['version'] = metrics_utils.CURRENT_VERSION
|
|
137
|
+
self._write_config()
|
|
138
|
+
|
|
139
|
+
def reset_config(self):
|
|
140
|
+
# Only reset countdown if we're already collecting metrics.
|
|
141
|
+
if self.should_collect_metrics:
|
|
142
|
+
self._ensure_initialized()
|
|
143
|
+
self._config['countdown'] = DEFAULT_COUNTDOWN
|
|
144
|
+
self._config['opt-in'] = None
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class MetricsCollector(object):
|
|
148
|
+
def __init__(self):
|
|
149
|
+
self._metrics_lock = threading.Lock()
|
|
150
|
+
self._reported_metrics = {}
|
|
151
|
+
self._config = _Config()
|
|
152
|
+
self._collecting_metrics = False
|
|
153
|
+
self._collect_custom_metrics = True
|
|
154
|
+
|
|
155
|
+
@property
|
|
156
|
+
def config(self):
|
|
157
|
+
return self._config
|
|
158
|
+
|
|
159
|
+
@property
|
|
160
|
+
def collecting_metrics(self):
|
|
161
|
+
return self._collecting_metrics
|
|
162
|
+
|
|
163
|
+
def add(self, name, value):
|
|
164
|
+
if self._collect_custom_metrics:
|
|
165
|
+
with self._metrics_lock:
|
|
166
|
+
self._reported_metrics[name] = value
|
|
167
|
+
|
|
168
|
+
def add_repeated(self, name, value):
|
|
169
|
+
if self._collect_custom_metrics:
|
|
170
|
+
with self._metrics_lock:
|
|
171
|
+
self._reported_metrics.setdefault(name, []).append(value)
|
|
172
|
+
|
|
173
|
+
@contextlib.contextmanager
|
|
174
|
+
def pause_metrics_collection(self):
|
|
175
|
+
collect_custom_metrics = self._collect_custom_metrics
|
|
176
|
+
self._collect_custom_metrics = False
|
|
177
|
+
try:
|
|
178
|
+
yield
|
|
179
|
+
finally:
|
|
180
|
+
self._collect_custom_metrics = collect_custom_metrics
|
|
181
|
+
|
|
182
|
+
def _upload_metrics_data(self):
|
|
183
|
+
"""Upload the metrics data to the AppEngine app."""
|
|
184
|
+
# We invoke a subprocess, and use stdin.write instead of communicate(),
|
|
185
|
+
# so that we are able to return immediately, leaving the upload running in
|
|
186
|
+
# the background.
|
|
187
|
+
p = subprocess2.Popen(['vpython3', UPLOAD_SCRIPT], stdin=subprocess2.PIPE)
|
|
188
|
+
p.stdin.write(json.dumps(self._reported_metrics).encode('utf-8'))
|
|
189
|
+
|
|
190
|
+
def _collect_metrics(self, func, command_name, *args, **kwargs):
|
|
191
|
+
# If we're already collecting metrics, just execute the function.
|
|
192
|
+
# e.g. git-cl split invokes git-cl upload several times to upload each
|
|
193
|
+
# split CL.
|
|
194
|
+
if self.collecting_metrics:
|
|
195
|
+
# Don't collect metrics for this function.
|
|
196
|
+
# e.g. Don't record the arguments git-cl split passes to git-cl upload.
|
|
197
|
+
with self.pause_metrics_collection():
|
|
198
|
+
return func(*args, **kwargs)
|
|
199
|
+
|
|
200
|
+
self._collecting_metrics = True
|
|
201
|
+
self.add('metrics_version', metrics_utils.CURRENT_VERSION)
|
|
202
|
+
self.add('command', command_name)
|
|
203
|
+
try:
|
|
204
|
+
start = time.time()
|
|
205
|
+
result = func(*args, **kwargs)
|
|
206
|
+
exception = None
|
|
207
|
+
# pylint: disable=bare-except
|
|
208
|
+
except:
|
|
209
|
+
exception = sys.exc_info()
|
|
210
|
+
finally:
|
|
211
|
+
self.add('execution_time', time.time() - start)
|
|
212
|
+
|
|
213
|
+
exit_code = metrics_utils.return_code_from_exception(exception)
|
|
214
|
+
self.add('exit_code', exit_code)
|
|
215
|
+
|
|
216
|
+
# Add metrics regarding environment information.
|
|
217
|
+
self.add('timestamp', int(time.time()))
|
|
218
|
+
self.add('python_version', metrics_utils.get_python_version())
|
|
219
|
+
self.add('host_os', gclient_utils.GetMacWinOrLinux())
|
|
220
|
+
self.add('host_arch', detect_host_arch.HostArch())
|
|
221
|
+
|
|
222
|
+
depot_tools_age = metrics_utils.get_repo_timestamp(DEPOT_TOOLS)
|
|
223
|
+
if depot_tools_age is not None:
|
|
224
|
+
self.add('depot_tools_age', int(depot_tools_age))
|
|
225
|
+
|
|
226
|
+
git_version = metrics_utils.get_git_version()
|
|
227
|
+
if git_version:
|
|
228
|
+
self.add('git_version', git_version)
|
|
229
|
+
|
|
230
|
+
self._upload_metrics_data()
|
|
231
|
+
if exception:
|
|
232
|
+
gclient_utils.reraise(exception[0], exception[1], exception[2])
|
|
233
|
+
return result
|
|
234
|
+
|
|
235
|
+
def collect_metrics(self, command_name):
|
|
236
|
+
"""A decorator used to collect metrics over the life of a function.
|
|
237
|
+
|
|
238
|
+
This decorator executes the function and collects metrics about the system
|
|
239
|
+
environment and the function performance.
|
|
240
|
+
"""
|
|
241
|
+
def _decorator(func):
|
|
242
|
+
# Do this first so we don't have to read, and possibly create a config
|
|
243
|
+
# file.
|
|
244
|
+
if DISABLE_METRICS_COLLECTION:
|
|
245
|
+
return func
|
|
246
|
+
if not self.config.should_collect_metrics:
|
|
247
|
+
return func
|
|
248
|
+
# Otherwise, collect the metrics.
|
|
249
|
+
# Needed to preserve the __name__ and __doc__ attributes of func.
|
|
250
|
+
@functools.wraps(func)
|
|
251
|
+
def _inner(*args, **kwargs):
|
|
252
|
+
return self._collect_metrics(func, command_name, *args, **kwargs)
|
|
253
|
+
return _inner
|
|
254
|
+
return _decorator
|
|
255
|
+
|
|
256
|
+
@contextlib.contextmanager
|
|
257
|
+
def print_notice_and_exit(self):
|
|
258
|
+
"""A context manager used to print the notice and terminate execution.
|
|
259
|
+
|
|
260
|
+
This decorator executes the function and prints the monitoring notice if
|
|
261
|
+
necessary. If an exception is raised, we will catch it, and print it before
|
|
262
|
+
printing the metrics collection notice.
|
|
263
|
+
This will call sys.exit() with an appropriate exit code to ensure the notice
|
|
264
|
+
is the last thing printed."""
|
|
265
|
+
# Needed to preserve the __name__ and __doc__ attributes of func.
|
|
266
|
+
try:
|
|
267
|
+
yield
|
|
268
|
+
exception = None
|
|
269
|
+
# pylint: disable=bare-except
|
|
270
|
+
except:
|
|
271
|
+
exception = sys.exc_info()
|
|
272
|
+
|
|
273
|
+
# Print the exception before the metrics notice, so that the notice is
|
|
274
|
+
# clearly visible even if gclient fails.
|
|
275
|
+
if exception:
|
|
276
|
+
if isinstance(exception[1], KeyboardInterrupt):
|
|
277
|
+
sys.stderr.write('Interrupted\n')
|
|
278
|
+
elif not isinstance(exception[1], SystemExit):
|
|
279
|
+
traceback.print_exception(*exception)
|
|
280
|
+
|
|
281
|
+
# Check if the version has changed
|
|
282
|
+
if (not DISABLE_METRICS_COLLECTION and self.config.is_googler
|
|
283
|
+
and self.config.opted_in is not False
|
|
284
|
+
and self.config.version != metrics_utils.CURRENT_VERSION):
|
|
285
|
+
metrics_utils.print_version_change(self.config.version)
|
|
286
|
+
self.config.reset_config()
|
|
287
|
+
|
|
288
|
+
# Print the notice
|
|
289
|
+
if (not DISABLE_METRICS_COLLECTION and self.config.is_googler
|
|
290
|
+
and self.config.opted_in is None):
|
|
291
|
+
metrics_utils.print_notice(self.config.countdown)
|
|
292
|
+
self.config.decrease_countdown()
|
|
293
|
+
|
|
294
|
+
sys.exit(metrics_utils.return_code_from_exception(exception))
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
collector = MetricsCollector()
|