libv8 7.3.492.27.1 → 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.
Files changed (718) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +11 -14
  4. data/CHANGELOG.md +10 -0
  5. data/README.md +10 -11
  6. data/Rakefile +30 -36
  7. data/ext/libv8/builder.rb +1 -1
  8. data/lib/libv8/version.rb +1 -1
  9. data/libv8.gemspec +1 -3
  10. data/vendor/depot_tools/{cipd.ps1 → .cipd_impl.ps1} +0 -0
  11. data/vendor/depot_tools/.gitattributes +1 -1
  12. data/vendor/depot_tools/.gitignore +7 -2
  13. data/vendor/depot_tools/.style.yapf +3 -1
  14. data/vendor/depot_tools/.vpython +55 -0
  15. data/vendor/depot_tools/.vpython3 +23 -0
  16. data/vendor/depot_tools/CROS_OWNERS +3 -1
  17. data/vendor/depot_tools/GOMA_OWNERS +9 -0
  18. data/vendor/depot_tools/LUCI_OWNERS +5 -0
  19. data/vendor/depot_tools/OWNERS +21 -6
  20. data/vendor/depot_tools/PRESUBMIT.py +35 -18
  21. data/vendor/depot_tools/README.git-cl.md +0 -14
  22. data/vendor/depot_tools/README.md +1 -1
  23. data/vendor/depot_tools/WATCHLISTS +2 -2
  24. data/vendor/depot_tools/auth.py +60 -772
  25. data/vendor/depot_tools/autoninja +12 -6
  26. data/vendor/depot_tools/autoninja.bat +14 -6
  27. data/vendor/depot_tools/autoninja.py +64 -27
  28. data/vendor/depot_tools/bb +1 -1
  29. data/vendor/depot_tools/bootstrap/{win/README.md → README.md} +28 -14
  30. data/vendor/depot_tools/bootstrap/{win/win_tools.py → bootstrap.py} +60 -43
  31. data/vendor/depot_tools/bootstrap/{win/git-bash.template.sh → git-bash.template.sh} +1 -1
  32. data/vendor/depot_tools/bootstrap/{win/git.template.bat → git.template.bat} +0 -0
  33. data/vendor/depot_tools/bootstrap/manifest.txt +27 -0
  34. data/vendor/depot_tools/bootstrap/manifest_bleeding_edge.txt +27 -0
  35. data/vendor/depot_tools/bootstrap/{win/profile.d.python.sh → profile.d.python.sh} +0 -0
  36. data/vendor/depot_tools/bootstrap/{win/python27.bleeding_edge.bat → python27.bat} +0 -0
  37. data/vendor/depot_tools/bootstrap/{win/python27.new.bat → python3.bat} +3 -3
  38. data/vendor/depot_tools/bootstrap/{win/win_tools.bat → win_tools.bat} +21 -16
  39. data/vendor/depot_tools/bootstrap_python3 +35 -0
  40. data/vendor/depot_tools/cbuildbot +1 -1
  41. data/vendor/depot_tools/chrome_set_ver +1 -1
  42. data/vendor/depot_tools/cipd +43 -39
  43. data/vendor/depot_tools/cipd.bat +2 -2
  44. data/vendor/depot_tools/cipd_client_version +1 -1
  45. data/vendor/depot_tools/cipd_client_version.digests +15 -14
  46. data/vendor/depot_tools/cipd_manifest.txt +31 -8
  47. data/vendor/depot_tools/cipd_manifest.versions +278 -158
  48. data/vendor/depot_tools/cit.py +9 -7
  49. data/vendor/depot_tools/clang_format.py +4 -1
  50. data/vendor/depot_tools/clang_format_merge_driver.py +10 -8
  51. data/vendor/depot_tools/compile_single_file.py +7 -2
  52. data/vendor/depot_tools/cpplint.py +51 -45
  53. data/vendor/depot_tools/cros +87 -0
  54. data/vendor/depot_tools/cros_sdk +1 -1
  55. data/vendor/depot_tools/crosjobs +13 -0
  56. data/vendor/depot_tools/detect_host_arch.py +0 -1
  57. data/vendor/depot_tools/dirmd +12 -0
  58. data/vendor/depot_tools/dirmd.bat +7 -0
  59. data/vendor/depot_tools/download_from_google_storage.py +47 -27
  60. data/vendor/depot_tools/ensure_bootstrap +14 -0
  61. data/vendor/depot_tools/fetch +14 -1
  62. data/vendor/depot_tools/fetch.bat +14 -1
  63. data/vendor/depot_tools/fetch.py +5 -7
  64. data/vendor/depot_tools/fetch_configs/chromium.py +6 -4
  65. data/vendor/depot_tools/fetch_configs/devtools-frontend.py +44 -0
  66. data/vendor/depot_tools/fetch_configs/ios_internal.py +10 -19
  67. data/vendor/depot_tools/fix_encoding.py +19 -5
  68. data/vendor/depot_tools/gclient +28 -12
  69. data/vendor/depot_tools/gclient-new-workdir.py +2 -0
  70. data/vendor/depot_tools/gclient.bat +18 -1
  71. data/vendor/depot_tools/gclient.py +160 -119
  72. data/vendor/depot_tools/gclient_eval.py +119 -107
  73. data/vendor/depot_tools/gclient_paths.py +67 -57
  74. data/vendor/depot_tools/gclient_scm.py +181 -159
  75. data/vendor/depot_tools/gclient_utils.py +177 -124
  76. data/vendor/depot_tools/gerrit_client.py +21 -13
  77. data/vendor/depot_tools/gerrit_util.py +188 -228
  78. data/vendor/depot_tools/git-cache +1 -1
  79. data/vendor/depot_tools/git-cl +1 -1
  80. data/vendor/depot_tools/git-drover +1 -1
  81. data/vendor/depot_tools/git-find-releases +1 -1
  82. data/vendor/depot_tools/git-footers +1 -1
  83. data/vendor/depot_tools/git-freeze +1 -1
  84. data/vendor/depot_tools/git-hyper-blame +1 -1
  85. data/vendor/depot_tools/git-map +1 -1
  86. data/vendor/depot_tools/git-map-branches +1 -1
  87. data/vendor/depot_tools/git-mark-merge-base +1 -1
  88. data/vendor/depot_tools/git-nav-downstream +1 -1
  89. data/vendor/depot_tools/git-new-branch +1 -1
  90. data/vendor/depot_tools/git-number +1 -1
  91. data/vendor/depot_tools/git-rebase-update +1 -1
  92. data/vendor/depot_tools/git-rename-branch +1 -1
  93. data/vendor/depot_tools/git-reparent-branch +1 -1
  94. data/vendor/depot_tools/git-retry +1 -1
  95. data/vendor/depot_tools/git-squash-branch +1 -1
  96. data/vendor/depot_tools/git-thaw +1 -1
  97. data/vendor/depot_tools/git-upstream-diff +1 -1
  98. data/vendor/depot_tools/git_cache.py +255 -360
  99. data/vendor/depot_tools/git_cl.py +1562 -2059
  100. data/vendor/depot_tools/git_cl_completion.sh +16 -2
  101. data/vendor/depot_tools/git_common.py +77 -32
  102. data/vendor/depot_tools/git_drover.py +17 -8
  103. data/vendor/depot_tools/git_find_releases.py +11 -9
  104. data/vendor/depot_tools/git_footers.py +13 -9
  105. data/vendor/depot_tools/git_freezer.py +3 -1
  106. data/vendor/depot_tools/git_hyper_blame.py +25 -32
  107. data/vendor/depot_tools/git_map.py +115 -93
  108. data/vendor/depot_tools/git_map_branches.py +11 -10
  109. data/vendor/depot_tools/git_mark_merge_base.py +8 -6
  110. data/vendor/depot_tools/git_nav_downstream.py +9 -6
  111. data/vendor/depot_tools/git_new_branch.py +39 -33
  112. data/vendor/depot_tools/git_number.py +28 -17
  113. data/vendor/depot_tools/git_rebase_update.py +50 -49
  114. data/vendor/depot_tools/git_rename_branch.py +2 -2
  115. data/vendor/depot_tools/git_reparent_branch.py +8 -6
  116. data/vendor/depot_tools/git_upstream_diff.py +4 -2
  117. data/vendor/depot_tools/gn.py +6 -4
  118. data/vendor/depot_tools/goma_auth +12 -0
  119. data/vendor/depot_tools/goma_auth.bat +8 -0
  120. data/vendor/depot_tools/goma_ctl +12 -0
  121. data/vendor/depot_tools/goma_ctl.bat +8 -0
  122. data/vendor/depot_tools/gsutil.py +5 -2
  123. data/vendor/depot_tools/gsutil.py.bat +8 -0
  124. data/vendor/depot_tools/gsutil.vpython +3 -1
  125. data/vendor/depot_tools/infra/config/OWNERS +2 -2
  126. data/vendor/depot_tools/infra/config/recipes.cfg +3 -2
  127. data/vendor/depot_tools/led +1 -1
  128. data/vendor/depot_tools/lockfile.py +116 -0
  129. data/vendor/depot_tools/luci-auth +1 -1
  130. data/vendor/depot_tools/lucicfg +1 -1
  131. data/vendor/depot_tools/mac_toolchain +1 -1
  132. data/vendor/depot_tools/man/html/depot_tools.html +1 -1
  133. data/vendor/depot_tools/man/html/depot_tools_tutorial.html +31 -25
  134. data/vendor/depot_tools/man/html/git-cl.html +1 -1
  135. data/vendor/depot_tools/man/html/git-drover.html +18 -18
  136. data/vendor/depot_tools/man/html/git-footers.html +1 -1
  137. data/vendor/depot_tools/man/html/git-freeze.html +3 -3
  138. data/vendor/depot_tools/man/html/git-hyper-blame.html +1 -1
  139. data/vendor/depot_tools/man/html/git-map-branches.html +2 -2
  140. data/vendor/depot_tools/man/html/git-map.html +1 -1
  141. data/vendor/depot_tools/man/html/git-mark-merge-base.html +1 -1
  142. data/vendor/depot_tools/man/html/git-nav-downstream.html +3 -3
  143. data/vendor/depot_tools/man/html/git-nav-upstream.html +12 -6
  144. data/vendor/depot_tools/man/html/git-new-branch.html +1 -1
  145. data/vendor/depot_tools/man/html/git-rebase-update.html +20 -1
  146. data/vendor/depot_tools/man/html/git-rename-branch.html +1 -1
  147. data/vendor/depot_tools/man/html/git-reparent-branch.html +1 -1
  148. data/vendor/depot_tools/man/html/git-retry.html +1 -1
  149. data/vendor/depot_tools/man/html/git-squash-branch.html +1 -1
  150. data/vendor/depot_tools/man/html/git-thaw.html +1 -1
  151. data/vendor/depot_tools/man/html/git-upstream-diff.html +10 -6
  152. data/vendor/depot_tools/man/man1/git-cl.1 +4 -4
  153. data/vendor/depot_tools/man/man1/git-drover.1 +21 -21
  154. data/vendor/depot_tools/man/man1/git-footers.1 +4 -4
  155. data/vendor/depot_tools/man/man1/git-freeze.1 +6 -6
  156. data/vendor/depot_tools/man/man1/git-hyper-blame.1 +4 -4
  157. data/vendor/depot_tools/man/man1/git-map-branches.1 +4 -4
  158. data/vendor/depot_tools/man/man1/git-map.1 +4 -4
  159. data/vendor/depot_tools/man/man1/git-mark-merge-base.1 +4 -4
  160. data/vendor/depot_tools/man/man1/git-nav-downstream.1 +6 -6
  161. data/vendor/depot_tools/man/man1/git-nav-upstream.1 +15 -9
  162. data/vendor/depot_tools/man/man1/git-new-branch.1 +3 -3
  163. data/vendor/depot_tools/man/man1/git-rebase-update.1 +14 -4
  164. data/vendor/depot_tools/man/man1/git-rename-branch.1 +4 -4
  165. data/vendor/depot_tools/man/man1/git-reparent-branch.1 +4 -4
  166. data/vendor/depot_tools/man/man1/git-retry.1 +4 -4
  167. data/vendor/depot_tools/man/man1/git-squash-branch.1 +4 -4
  168. data/vendor/depot_tools/man/man1/git-thaw.1 +4 -4
  169. data/vendor/depot_tools/man/man1/git-upstream-diff.1 +7 -13
  170. data/vendor/depot_tools/man/man7/depot_tools.7 +4 -4
  171. data/vendor/depot_tools/man/man7/depot_tools_tutorial.7 +31 -25
  172. data/vendor/depot_tools/man/src/common_demo_functions.sh +2 -2
  173. data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +3 -3
  174. data/vendor/depot_tools/man/src/filter_demo_output.py +4 -2
  175. data/vendor/depot_tools/man/src/git-new-branch.txt +2 -1
  176. data/vendor/depot_tools/man/src/git-rebase-update.txt +8 -1
  177. data/vendor/depot_tools/metrics.README.md +8 -5
  178. data/vendor/depot_tools/metrics.py +7 -6
  179. data/vendor/depot_tools/metrics_utils.py +4 -14
  180. data/vendor/depot_tools/my_activity.py +85 -251
  181. data/vendor/depot_tools/ninja +1 -0
  182. data/vendor/depot_tools/ninja-mac +0 -0
  183. data/vendor/depot_tools/ninjalog_uploader.py +146 -145
  184. data/vendor/depot_tools/ninjalog_uploader_wrapper.py +69 -60
  185. data/vendor/depot_tools/owners.py +156 -43
  186. data/vendor/depot_tools/owners_finder.py +28 -14
  187. data/vendor/depot_tools/post_build_ninja_summary.py +76 -48
  188. data/vendor/depot_tools/presubmit_canned_checks.py +293 -106
  189. data/vendor/depot_tools/presubmit_support.py +527 -333
  190. data/vendor/depot_tools/prpc +1 -1
  191. data/vendor/depot_tools/pylint +2 -12
  192. data/vendor/depot_tools/pylint-1.5 +78 -0
  193. data/vendor/depot_tools/pylint-1.6 +78 -0
  194. data/vendor/depot_tools/pylint-1.7 +78 -0
  195. data/vendor/depot_tools/pylint-1.8 +78 -0
  196. data/vendor/depot_tools/pylint-1.9 +78 -0
  197. data/vendor/depot_tools/{depot-tools-auth.bat → pylint.bat} +2 -2
  198. data/vendor/depot_tools/pylint_main.py +45 -0
  199. data/vendor/depot_tools/pylintrc +14 -1
  200. data/vendor/depot_tools/python-bin/python3 +7 -0
  201. data/vendor/depot_tools/python_runner.sh +13 -8
  202. data/vendor/depot_tools/rdb +12 -0
  203. data/vendor/depot_tools/rdb.bat +7 -0
  204. data/vendor/depot_tools/recipes/OWNERS +0 -1
  205. data/vendor/depot_tools/recipes/README.recipes.md +218 -151
  206. data/vendor/depot_tools/recipes/recipe_modules/OWNERS +1 -1
  207. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +17 -16
  208. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +127 -78
  209. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +19 -4
  210. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +18 -3
  211. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +19 -4
  212. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +29 -8
  213. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +28 -10
  214. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +29 -8
  215. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +29 -8
  216. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/input_commit_with_id_without_repo.json +29 -8
  217. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/multiple_patch_refs.json +29 -8
  218. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +35 -10
  219. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{with_manifest_name.json → no_cp_checkout_HEAD.json} +25 -15
  220. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_branch_head.json +65 -0
  221. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_specific_commit.json +65 -0
  222. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_master.json +65 -0
  223. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/refs.json +29 -8
  224. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +29 -8
  225. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/resolve_chromium_fixed_version.json +117 -0
  226. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +17 -11
  227. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +41 -10
  228. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +24 -11
  229. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +35 -10
  230. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +35 -10
  231. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +38 -11
  232. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +36 -11
  233. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +35 -10
  234. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +35 -10
  235. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +35 -10
  236. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +0 -5
  237. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +29 -8
  238. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +95 -22
  239. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +187 -114
  240. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +2 -2
  241. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py +42 -0
  242. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +1 -0
  243. data/vendor/depot_tools/recipes/recipe_modules/cipd/__init__.py +0 -1
  244. data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +2 -2
  245. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +0 -1
  246. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +0 -1
  247. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +2 -4
  248. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +0 -1
  249. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +0 -1
  250. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +26 -6
  251. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +23 -5
  252. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +23 -5
  253. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +0 -1
  254. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +0 -1
  255. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +0 -1
  256. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +0 -1
  257. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +0 -1
  258. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +0 -1
  259. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +0 -1
  260. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +0 -1
  261. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +0 -1
  262. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +0 -1
  263. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +0 -1
  264. data/vendor/depot_tools/recipes/recipe_modules/cipd/test_api.py +1 -1
  265. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +4 -1
  266. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +4 -2
  267. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +3 -1
  268. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +4 -2
  269. data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +2 -1
  270. data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +82 -13
  271. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +23 -11
  272. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +3 -4
  273. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +3 -6
  274. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +3 -4
  275. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +7 -7
  276. data/vendor/depot_tools/recipes/recipe_modules/gclient/resources/diff_deps.py +16 -0
  277. data/vendor/depot_tools/recipes/recipe_modules/gclient/test_api.py +4 -0
  278. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/basic.json +55 -0
  279. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/dont have revision yet.json +84 -0
  280. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/no change, exception.json +83 -0
  281. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/windows.json +55 -0
  282. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.py +88 -0
  283. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +9 -21
  284. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/sync_failure.py +24 -0
  285. data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +2 -1
  286. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +7 -12
  287. data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +0 -2
  288. data/vendor/depot_tools/recipes/recipe_modules/git/api.py +9 -17
  289. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +2 -8
  290. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +2 -8
  291. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +2 -8
  292. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +2 -8
  293. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +2 -8
  294. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +2 -8
  295. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +2 -8
  296. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +3 -13
  297. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +2 -8
  298. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +4 -12
  299. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +2 -10
  300. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +1 -7
  301. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +1 -7
  302. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +0 -8
  303. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +3 -10
  304. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +3 -11
  305. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +2 -8
  306. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +3 -13
  307. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +2 -8
  308. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +2 -8
  309. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +0 -5
  310. data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +1 -1
  311. data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +7 -13
  312. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +21 -16
  313. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.py +1 -2
  314. data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +1 -1
  315. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +0 -1
  316. data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +2 -2
  317. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +0 -1
  318. data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +23 -8
  319. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +52 -1
  320. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.py +15 -0
  321. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +1 -0
  322. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +32 -8
  323. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/ancient_version.json +83 -0
  324. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/automatic_version.json +83 -0
  325. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/explicit_version.json +83 -0
  326. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +0 -1
  327. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +5 -4
  328. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +0 -1
  329. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +21 -2
  330. data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +20 -0
  331. data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +235 -3
  332. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +13 -5
  333. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.py +5 -1
  334. data/vendor/depot_tools/recipes/recipe_modules/presubmit/properties.proto +14 -0
  335. data/vendor/depot_tools/recipes/recipe_modules/presubmit/test_api.py +19 -0
  336. data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/execute.py +247 -0
  337. data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/prepare.py +49 -0
  338. data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +33 -45
  339. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +0 -1
  340. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +64 -21
  341. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +64 -21
  342. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +1 -22
  343. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +1 -22
  344. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +5 -32
  345. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py +29 -0
  346. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.expected/basic.json +5 -0
  347. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py +22 -0
  348. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py +32 -0
  349. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +0 -1
  350. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +0 -1
  351. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +2 -1
  352. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +1 -6
  353. data/vendor/depot_tools/recipes/recipes.py +49 -28
  354. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +11 -6
  355. data/vendor/depot_tools/repo +698 -540
  356. data/vendor/depot_tools/roll-dep +14 -1
  357. data/vendor/depot_tools/roll-dep.bat +10 -1
  358. data/vendor/depot_tools/roll_dep.py +15 -10
  359. data/vendor/depot_tools/scm.py +95 -75
  360. data/vendor/depot_tools/setup_color.py +36 -2
  361. data/vendor/depot_tools/split_cl.py +44 -32
  362. data/vendor/depot_tools/subcommand.py +6 -6
  363. data/vendor/depot_tools/subprocess2.py +38 -322
  364. data/vendor/depot_tools/third_party/colorama/LICENSE.txt +0 -1
  365. data/vendor/depot_tools/third_party/colorama/README.chromium +4 -5
  366. data/vendor/depot_tools/third_party/colorama/README.rst +346 -0
  367. data/vendor/depot_tools/third_party/colorama/__init__.py +3 -4
  368. data/vendor/depot_tools/third_party/colorama/ansi.py +82 -30
  369. data/vendor/depot_tools/third_party/colorama/ansitowin32.py +105 -37
  370. data/vendor/depot_tools/third_party/colorama/initialise.py +39 -15
  371. data/vendor/depot_tools/third_party/colorama/win32.py +46 -28
  372. data/vendor/depot_tools/third_party/colorama/winterm.py +80 -31
  373. data/vendor/depot_tools/update_depot_tools +18 -8
  374. data/vendor/depot_tools/update_depot_tools.bat +19 -15
  375. data/vendor/depot_tools/upload_metrics.py +7 -6
  376. data/vendor/depot_tools/upload_to_google_storage.py +23 -16
  377. data/vendor/depot_tools/vpython +4 -4
  378. data/vendor/depot_tools/vpython.bat +1 -1
  379. data/vendor/depot_tools/vpython3 +55 -0
  380. data/vendor/depot_tools/vpython3.bat +12 -0
  381. data/vendor/depot_tools/watchlists.py +14 -11
  382. data/vendor/depot_tools/weekly +4 -2
  383. data/vendor/depot_tools/win32imports.py +61 -0
  384. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +49 -41
  385. data/vendor/depot_tools/win_toolchain/package_from_installed.py +142 -149
  386. data/vendor/depot_tools/wtf +5 -3
  387. data/vendor/depot_tools/yapf +5 -1
  388. metadata +68 -343
  389. data/vendor/depot_tools/README.testing +0 -23
  390. data/vendor/depot_tools/annotated_gclient.py +0 -89
  391. data/vendor/depot_tools/appengine_mapper.py +0 -23
  392. data/vendor/depot_tools/bootstrap/win/manifest.txt +0 -20
  393. data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +0 -20
  394. data/vendor/depot_tools/bootstrap/win/pylint.new.bat +0 -7
  395. data/vendor/depot_tools/buildbucket.py +0 -186
  396. data/vendor/depot_tools/checkout.py +0 -431
  397. data/vendor/depot_tools/cros +0 -1
  398. data/vendor/depot_tools/dart_format.py +0 -58
  399. data/vendor/depot_tools/depot-tools-auth +0 -8
  400. data/vendor/depot_tools/depot-tools-auth.py +0 -102
  401. data/vendor/depot_tools/my_reviews.py +0 -396
  402. data/vendor/depot_tools/patch.py +0 -548
  403. data/vendor/depot_tools/pylint.py +0 -30
  404. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/buildbot.json +0 -239
  405. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_luci.json +0 -222
  406. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/__init__.py +0 -4
  407. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/api.py +0 -29
  408. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/basic.json +0 -15
  409. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_linux.json +0 -15
  410. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_mac.json +0 -15
  411. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_win.json +0 -15
  412. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_linux.json +0 -15
  413. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_mac.json +0 -15
  414. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +0 -15
  415. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +0 -15
  416. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +0 -15
  417. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +0 -15
  418. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.py +0 -33
  419. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +0 -66
  420. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/set_failure_hash_with_no_steps.json +0 -11
  421. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch.json +0 -45
  422. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch_luci.json +0 -45
  423. data/vendor/depot_tools/rietveld.py +0 -779
  424. data/vendor/depot_tools/roll-dep-svn +0 -8
  425. data/vendor/depot_tools/roll-dep-svn.bat +0 -12
  426. data/vendor/depot_tools/roll_dep_svn.py +0 -430
  427. data/vendor/depot_tools/support/chromite_wrapper +0 -96
  428. data/vendor/depot_tools/third_party/boto/LICENSE +0 -18
  429. data/vendor/depot_tools/third_party/boto/README.chromium +0 -43
  430. data/vendor/depot_tools/third_party/boto/README.rst +0 -163
  431. data/vendor/depot_tools/third_party/boto/__init__.py +0 -793
  432. data/vendor/depot_tools/third_party/boto/auth.py +0 -682
  433. data/vendor/depot_tools/third_party/boto/auth_handler.py +0 -58
  434. data/vendor/depot_tools/third_party/boto/cacerts/__init__.py +0 -22
  435. data/vendor/depot_tools/third_party/boto/cacerts/cacerts.txt +0 -2183
  436. data/vendor/depot_tools/third_party/boto/compat.py +0 -28
  437. data/vendor/depot_tools/third_party/boto/connection.py +0 -1081
  438. data/vendor/depot_tools/third_party/boto/contrib/__init__.py +0 -22
  439. data/vendor/depot_tools/third_party/boto/contrib/ymlmessage.py +0 -52
  440. data/vendor/depot_tools/third_party/boto/core/README +0 -58
  441. data/vendor/depot_tools/third_party/boto/core/__init__.py +0 -23
  442. data/vendor/depot_tools/third_party/boto/core/auth.py +0 -78
  443. data/vendor/depot_tools/third_party/boto/core/credentials.py +0 -154
  444. data/vendor/depot_tools/third_party/boto/core/dictresponse.py +0 -178
  445. data/vendor/depot_tools/third_party/boto/core/service.py +0 -67
  446. data/vendor/depot_tools/third_party/boto/datapipeline/__init__.py +0 -0
  447. data/vendor/depot_tools/third_party/boto/datapipeline/exceptions.py +0 -42
  448. data/vendor/depot_tools/third_party/boto/datapipeline/layer1.py +0 -546
  449. data/vendor/depot_tools/third_party/boto/ecs/__init__.py +0 -90
  450. data/vendor/depot_tools/third_party/boto/ecs/item.py +0 -153
  451. data/vendor/depot_tools/third_party/boto/exception.py +0 -476
  452. data/vendor/depot_tools/third_party/boto/file/README +0 -49
  453. data/vendor/depot_tools/third_party/boto/file/__init__.py +0 -28
  454. data/vendor/depot_tools/third_party/boto/file/bucket.py +0 -112
  455. data/vendor/depot_tools/third_party/boto/file/connection.py +0 -33
  456. data/vendor/depot_tools/third_party/boto/file/key.py +0 -199
  457. data/vendor/depot_tools/third_party/boto/file/simpleresultset.py +0 -30
  458. data/vendor/depot_tools/third_party/boto/fps/__init__.py +0 -21
  459. data/vendor/depot_tools/third_party/boto/fps/connection.py +0 -369
  460. data/vendor/depot_tools/third_party/boto/fps/exception.py +0 -344
  461. data/vendor/depot_tools/third_party/boto/fps/response.py +0 -175
  462. data/vendor/depot_tools/third_party/boto/gs/__init__.py +0 -22
  463. data/vendor/depot_tools/third_party/boto/gs/acl.py +0 -304
  464. data/vendor/depot_tools/third_party/boto/gs/bucket.py +0 -870
  465. data/vendor/depot_tools/third_party/boto/gs/bucketlistresultset.py +0 -64
  466. data/vendor/depot_tools/third_party/boto/gs/connection.py +0 -103
  467. data/vendor/depot_tools/third_party/boto/gs/cors.py +0 -169
  468. data/vendor/depot_tools/third_party/boto/gs/key.py +0 -704
  469. data/vendor/depot_tools/third_party/boto/gs/resumable_upload_handler.py +0 -659
  470. data/vendor/depot_tools/third_party/boto/gs/user.py +0 -54
  471. data/vendor/depot_tools/third_party/boto/handler.py +0 -44
  472. data/vendor/depot_tools/third_party/boto/https_connection.py +0 -124
  473. data/vendor/depot_tools/third_party/boto/jsonresponse.py +0 -163
  474. data/vendor/depot_tools/third_party/boto/manage/__init__.py +0 -23
  475. data/vendor/depot_tools/third_party/boto/manage/cmdshell.py +0 -241
  476. data/vendor/depot_tools/third_party/boto/manage/propget.py +0 -64
  477. data/vendor/depot_tools/third_party/boto/manage/server.py +0 -556
  478. data/vendor/depot_tools/third_party/boto/manage/task.py +0 -175
  479. data/vendor/depot_tools/third_party/boto/manage/test_manage.py +0 -34
  480. data/vendor/depot_tools/third_party/boto/manage/volume.py +0 -420
  481. data/vendor/depot_tools/third_party/boto/mashups/__init__.py +0 -23
  482. data/vendor/depot_tools/third_party/boto/mashups/interactive.py +0 -97
  483. data/vendor/depot_tools/third_party/boto/mashups/iobject.py +0 -115
  484. data/vendor/depot_tools/third_party/boto/mashups/order.py +0 -211
  485. data/vendor/depot_tools/third_party/boto/mashups/server.py +0 -395
  486. data/vendor/depot_tools/third_party/boto/plugin.py +0 -90
  487. data/vendor/depot_tools/third_party/boto/provider.py +0 -337
  488. data/vendor/depot_tools/third_party/boto/pyami/__init__.py +0 -22
  489. data/vendor/depot_tools/third_party/boto/pyami/bootstrap.py +0 -134
  490. data/vendor/depot_tools/third_party/boto/pyami/config.py +0 -229
  491. data/vendor/depot_tools/third_party/boto/pyami/copybot.cfg +0 -60
  492. data/vendor/depot_tools/third_party/boto/pyami/copybot.py +0 -97
  493. data/vendor/depot_tools/third_party/boto/pyami/helloworld.py +0 -28
  494. data/vendor/depot_tools/third_party/boto/pyami/launch_ami.py +0 -178
  495. data/vendor/depot_tools/third_party/boto/pyami/scriptbase.py +0 -44
  496. data/vendor/depot_tools/third_party/boto/pyami/startup.py +0 -60
  497. data/vendor/depot_tools/third_party/boto/regioninfo.py +0 -63
  498. data/vendor/depot_tools/third_party/boto/resultset.py +0 -169
  499. data/vendor/depot_tools/third_party/boto/roboto/__init__.py +0 -1
  500. data/vendor/depot_tools/third_party/boto/roboto/awsqueryrequest.py +0 -504
  501. data/vendor/depot_tools/third_party/boto/roboto/awsqueryservice.py +0 -121
  502. data/vendor/depot_tools/third_party/boto/roboto/param.py +0 -147
  503. data/vendor/depot_tools/third_party/boto/s3/__init__.py +0 -84
  504. data/vendor/depot_tools/third_party/boto/s3/acl.py +0 -164
  505. data/vendor/depot_tools/third_party/boto/s3/bucket.py +0 -1634
  506. data/vendor/depot_tools/third_party/boto/s3/bucketlistresultset.py +0 -139
  507. data/vendor/depot_tools/third_party/boto/s3/bucketlogging.py +0 -83
  508. data/vendor/depot_tools/third_party/boto/s3/connection.py +0 -540
  509. data/vendor/depot_tools/third_party/boto/s3/cors.py +0 -210
  510. data/vendor/depot_tools/third_party/boto/s3/deletemarker.py +0 -55
  511. data/vendor/depot_tools/third_party/boto/s3/key.py +0 -1712
  512. data/vendor/depot_tools/third_party/boto/s3/keyfile.py +0 -134
  513. data/vendor/depot_tools/third_party/boto/s3/lifecycle.py +0 -231
  514. data/vendor/depot_tools/third_party/boto/s3/multidelete.py +0 -138
  515. data/vendor/depot_tools/third_party/boto/s3/multipart.py +0 -315
  516. data/vendor/depot_tools/third_party/boto/s3/prefix.py +0 -42
  517. data/vendor/depot_tools/third_party/boto/s3/resumable_download_handler.py +0 -339
  518. data/vendor/depot_tools/third_party/boto/s3/tagging.py +0 -71
  519. data/vendor/depot_tools/third_party/boto/s3/user.py +0 -49
  520. data/vendor/depot_tools/third_party/boto/s3/website.py +0 -237
  521. data/vendor/depot_tools/third_party/boto/services/__init__.py +0 -23
  522. data/vendor/depot_tools/third_party/boto/services/bs.py +0 -179
  523. data/vendor/depot_tools/third_party/boto/services/message.py +0 -58
  524. data/vendor/depot_tools/third_party/boto/services/result.py +0 -136
  525. data/vendor/depot_tools/third_party/boto/services/service.py +0 -161
  526. data/vendor/depot_tools/third_party/boto/services/servicedef.py +0 -91
  527. data/vendor/depot_tools/third_party/boto/services/sonofmmm.cfg +0 -43
  528. data/vendor/depot_tools/third_party/boto/services/sonofmmm.py +0 -81
  529. data/vendor/depot_tools/third_party/boto/services/submit.py +0 -88
  530. data/vendor/depot_tools/third_party/boto/ses/__init__.py +0 -54
  531. data/vendor/depot_tools/third_party/boto/ses/connection.py +0 -521
  532. data/vendor/depot_tools/third_party/boto/ses/exceptions.py +0 -77
  533. data/vendor/depot_tools/third_party/boto/storage_uri.py +0 -835
  534. data/vendor/depot_tools/third_party/boto/sts/__init__.py +0 -55
  535. data/vendor/depot_tools/third_party/boto/sts/connection.py +0 -207
  536. data/vendor/depot_tools/third_party/boto/sts/credentials.py +0 -215
  537. data/vendor/depot_tools/third_party/boto/utils.py +0 -927
  538. data/vendor/depot_tools/third_party/colorama/README.txt +0 -304
  539. data/vendor/depot_tools/third_party/fancy_urllib/README +0 -22
  540. data/vendor/depot_tools/third_party/fancy_urllib/__init__.py +0 -460
  541. data/vendor/depot_tools/third_party/logilab/README.chromium +0 -6
  542. data/vendor/depot_tools/third_party/logilab/__init__.py +0 -0
  543. data/vendor/depot_tools/third_party/logilab/astroid/LICENSE.txt +0 -340
  544. data/vendor/depot_tools/third_party/logilab/astroid/README.chromium +0 -11
  545. data/vendor/depot_tools/third_party/logilab/astroid/__init__.py +0 -136
  546. data/vendor/depot_tools/third_party/logilab/astroid/__pkginfo__.py +0 -42
  547. data/vendor/depot_tools/third_party/logilab/astroid/arguments.py +0 -233
  548. data/vendor/depot_tools/third_party/logilab/astroid/as_string.py +0 -548
  549. data/vendor/depot_tools/third_party/logilab/astroid/astpeephole.py +0 -86
  550. data/vendor/depot_tools/third_party/logilab/astroid/bases.py +0 -636
  551. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_builtin_inference.py +0 -336
  552. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_dateutil.py +0 -15
  553. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_gi.py +0 -195
  554. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_mechanize.py +0 -18
  555. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_nose.py +0 -82
  556. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_numpy.py +0 -62
  557. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_pytest.py +0 -76
  558. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_qt.py +0 -44
  559. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_six.py +0 -288
  560. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_ssl.py +0 -65
  561. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_stdlib.py +0 -473
  562. data/vendor/depot_tools/third_party/logilab/astroid/builder.py +0 -263
  563. data/vendor/depot_tools/third_party/logilab/astroid/context.py +0 -81
  564. data/vendor/depot_tools/third_party/logilab/astroid/decorators.py +0 -75
  565. data/vendor/depot_tools/third_party/logilab/astroid/exceptions.py +0 -71
  566. data/vendor/depot_tools/third_party/logilab/astroid/inference.py +0 -359
  567. data/vendor/depot_tools/third_party/logilab/astroid/manager.py +0 -267
  568. data/vendor/depot_tools/third_party/logilab/astroid/mixins.py +0 -147
  569. data/vendor/depot_tools/third_party/logilab/astroid/modutils.py +0 -741
  570. data/vendor/depot_tools/third_party/logilab/astroid/node_classes.py +0 -1053
  571. data/vendor/depot_tools/third_party/logilab/astroid/nodes.py +0 -87
  572. data/vendor/depot_tools/third_party/logilab/astroid/objects.py +0 -186
  573. data/vendor/depot_tools/third_party/logilab/astroid/protocols.py +0 -470
  574. data/vendor/depot_tools/third_party/logilab/astroid/raw_building.py +0 -390
  575. data/vendor/depot_tools/third_party/logilab/astroid/rebuilder.py +0 -989
  576. data/vendor/depot_tools/third_party/logilab/astroid/scoped_nodes.py +0 -1716
  577. data/vendor/depot_tools/third_party/logilab/astroid/test_utils.py +0 -201
  578. data/vendor/depot_tools/third_party/logilab/astroid/transforms.py +0 -96
  579. data/vendor/depot_tools/third_party/logilab/astroid/util.py +0 -89
  580. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/LICENSE +0 -19
  581. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/README.chromium +0 -11
  582. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/__init__.py +0 -20
  583. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/cext.c +0 -1421
  584. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/compat.py +0 -9
  585. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/simple.py +0 -246
  586. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/slots.py +0 -414
  587. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/utils.py +0 -13
  588. data/vendor/depot_tools/third_party/logilab/wrapt/LICENSE +0 -24
  589. data/vendor/depot_tools/third_party/logilab/wrapt/README.chromium +0 -11
  590. data/vendor/depot_tools/third_party/logilab/wrapt/__init__.py +0 -19
  591. data/vendor/depot_tools/third_party/logilab/wrapt/_wrappers.c +0 -2729
  592. data/vendor/depot_tools/third_party/logilab/wrapt/arguments.py +0 -96
  593. data/vendor/depot_tools/third_party/logilab/wrapt/decorators.py +0 -512
  594. data/vendor/depot_tools/third_party/logilab/wrapt/importer.py +0 -228
  595. data/vendor/depot_tools/third_party/logilab/wrapt/wrappers.py +0 -901
  596. data/vendor/depot_tools/third_party/mock/LICENSE.txt +0 -26
  597. data/vendor/depot_tools/third_party/mock/README.chromium +0 -24
  598. data/vendor/depot_tools/third_party/mock/__init__.py +0 -2366
  599. data/vendor/depot_tools/third_party/oauth2client/LICENSE +0 -202
  600. data/vendor/depot_tools/third_party/oauth2client/MODIFICATIONS.diff +0 -66
  601. data/vendor/depot_tools/third_party/oauth2client/README.chromium +0 -15
  602. data/vendor/depot_tools/third_party/oauth2client/__init__.py +0 -5
  603. data/vendor/depot_tools/third_party/oauth2client/anyjson.py +0 -32
  604. data/vendor/depot_tools/third_party/oauth2client/appengine.py +0 -963
  605. data/vendor/depot_tools/third_party/oauth2client/client.py +0 -1363
  606. data/vendor/depot_tools/third_party/oauth2client/clientsecrets.py +0 -153
  607. data/vendor/depot_tools/third_party/oauth2client/crypt.py +0 -377
  608. data/vendor/depot_tools/third_party/oauth2client/django_orm.py +0 -134
  609. data/vendor/depot_tools/third_party/oauth2client/file.py +0 -124
  610. data/vendor/depot_tools/third_party/oauth2client/gce.py +0 -90
  611. data/vendor/depot_tools/third_party/oauth2client/keyring_storage.py +0 -109
  612. data/vendor/depot_tools/third_party/oauth2client/locked_file.py +0 -373
  613. data/vendor/depot_tools/third_party/oauth2client/multistore_file.py +0 -465
  614. data/vendor/depot_tools/third_party/oauth2client/old_run.py +0 -160
  615. data/vendor/depot_tools/third_party/oauth2client/tools.py +0 -243
  616. data/vendor/depot_tools/third_party/oauth2client/util.py +0 -196
  617. data/vendor/depot_tools/third_party/oauth2client/xsrfutil.py +0 -113
  618. data/vendor/depot_tools/third_party/protobuf26/README.chromium +0 -23
  619. data/vendor/depot_tools/third_party/protobuf26/__init__.py +0 -0
  620. data/vendor/depot_tools/third_party/protobuf26/compiler/__init__.py +0 -0
  621. data/vendor/depot_tools/third_party/protobuf26/compiler/plugin_pb2.py +0 -184
  622. data/vendor/depot_tools/third_party/protobuf26/descriptor.py +0 -849
  623. data/vendor/depot_tools/third_party/protobuf26/descriptor_database.py +0 -137
  624. data/vendor/depot_tools/third_party/protobuf26/descriptor_pb2.py +0 -1522
  625. data/vendor/depot_tools/third_party/protobuf26/descriptor_pool.py +0 -643
  626. data/vendor/depot_tools/third_party/protobuf26/internal/__init__.py +0 -0
  627. data/vendor/depot_tools/third_party/protobuf26/internal/api_implementation.py +0 -89
  628. data/vendor/depot_tools/third_party/protobuf26/internal/containers.py +0 -269
  629. data/vendor/depot_tools/third_party/protobuf26/internal/cpp_message.py +0 -663
  630. data/vendor/depot_tools/third_party/protobuf26/internal/decoder.py +0 -831
  631. data/vendor/depot_tools/third_party/protobuf26/internal/encoder.py +0 -788
  632. data/vendor/depot_tools/third_party/protobuf26/internal/enum_type_wrapper.py +0 -89
  633. data/vendor/depot_tools/third_party/protobuf26/internal/message_listener.py +0 -78
  634. data/vendor/depot_tools/third_party/protobuf26/internal/python_message.py +0 -1247
  635. data/vendor/depot_tools/third_party/protobuf26/internal/type_checkers.py +0 -328
  636. data/vendor/depot_tools/third_party/protobuf26/internal/wire_format.py +0 -268
  637. data/vendor/depot_tools/third_party/protobuf26/message.py +0 -284
  638. data/vendor/depot_tools/third_party/protobuf26/message_factory.py +0 -155
  639. data/vendor/depot_tools/third_party/protobuf26/reflection.py +0 -205
  640. data/vendor/depot_tools/third_party/protobuf26/service.py +0 -226
  641. data/vendor/depot_tools/third_party/protobuf26/service_reflection.py +0 -284
  642. data/vendor/depot_tools/third_party/protobuf26/symbol_database.py +0 -185
  643. data/vendor/depot_tools/third_party/protobuf26/text_encoding.py +0 -110
  644. data/vendor/depot_tools/third_party/protobuf26/text_format.py +0 -873
  645. data/vendor/depot_tools/third_party/pylint.py +0 -37
  646. data/vendor/depot_tools/third_party/pylint/LICENSE.txt +0 -340
  647. data/vendor/depot_tools/third_party/pylint/README.chromium +0 -30
  648. data/vendor/depot_tools/third_party/pylint/__init__.py +0 -46
  649. data/vendor/depot_tools/third_party/pylint/__main__.py +0 -3
  650. data/vendor/depot_tools/third_party/pylint/__pkginfo__.py +0 -80
  651. data/vendor/depot_tools/third_party/pylint/checkers/__init__.py +0 -123
  652. data/vendor/depot_tools/third_party/pylint/checkers/async.py +0 -82
  653. data/vendor/depot_tools/third_party/pylint/checkers/base.py +0 -2010
  654. data/vendor/depot_tools/third_party/pylint/checkers/classes.py +0 -1120
  655. data/vendor/depot_tools/third_party/pylint/checkers/design_analysis.py +0 -348
  656. data/vendor/depot_tools/third_party/pylint/checkers/exceptions.py +0 -369
  657. data/vendor/depot_tools/third_party/pylint/checkers/format.py +0 -993
  658. data/vendor/depot_tools/third_party/pylint/checkers/imports.py +0 -654
  659. data/vendor/depot_tools/third_party/pylint/checkers/logging.py +0 -258
  660. data/vendor/depot_tools/third_party/pylint/checkers/misc.py +0 -105
  661. data/vendor/depot_tools/third_party/pylint/checkers/newstyle.py +0 -169
  662. data/vendor/depot_tools/third_party/pylint/checkers/python3.py +0 -591
  663. data/vendor/depot_tools/third_party/pylint/checkers/raw_metrics.py +0 -129
  664. data/vendor/depot_tools/third_party/pylint/checkers/similar.py +0 -371
  665. data/vendor/depot_tools/third_party/pylint/checkers/spelling.py +0 -264
  666. data/vendor/depot_tools/third_party/pylint/checkers/stdlib.py +0 -280
  667. data/vendor/depot_tools/third_party/pylint/checkers/strings.py +0 -618
  668. data/vendor/depot_tools/third_party/pylint/checkers/typecheck.py +0 -974
  669. data/vendor/depot_tools/third_party/pylint/checkers/utils.py +0 -741
  670. data/vendor/depot_tools/third_party/pylint/checkers/variables.py +0 -1191
  671. data/vendor/depot_tools/third_party/pylint/config.py +0 -820
  672. data/vendor/depot_tools/third_party/pylint/epylint.py +0 -181
  673. data/vendor/depot_tools/third_party/pylint/extensions/__init__.py +0 -0
  674. data/vendor/depot_tools/third_party/pylint/extensions/check_docs.py +0 -311
  675. data/vendor/depot_tools/third_party/pylint/extensions/check_elif.py +0 -62
  676. data/vendor/depot_tools/third_party/pylint/graph.py +0 -179
  677. data/vendor/depot_tools/third_party/pylint/gui.py +0 -531
  678. data/vendor/depot_tools/third_party/pylint/interfaces.py +0 -102
  679. data/vendor/depot_tools/third_party/pylint/lint.py +0 -1381
  680. data/vendor/depot_tools/third_party/pylint/pyreverse/__init__.py +0 -5
  681. data/vendor/depot_tools/third_party/pylint/pyreverse/diadefslib.py +0 -230
  682. data/vendor/depot_tools/third_party/pylint/pyreverse/diagrams.py +0 -258
  683. data/vendor/depot_tools/third_party/pylint/pyreverse/inspector.py +0 -372
  684. data/vendor/depot_tools/third_party/pylint/pyreverse/main.py +0 -147
  685. data/vendor/depot_tools/third_party/pylint/pyreverse/utils.py +0 -210
  686. data/vendor/depot_tools/third_party/pylint/pyreverse/vcgutils.py +0 -198
  687. data/vendor/depot_tools/third_party/pylint/pyreverse/writer.py +0 -198
  688. data/vendor/depot_tools/third_party/pylint/reporters/__init__.py +0 -149
  689. data/vendor/depot_tools/third_party/pylint/reporters/guireporter.py +0 -27
  690. data/vendor/depot_tools/third_party/pylint/reporters/html.py +0 -108
  691. data/vendor/depot_tools/third_party/pylint/reporters/json.py +0 -64
  692. data/vendor/depot_tools/third_party/pylint/reporters/text.py +0 -237
  693. data/vendor/depot_tools/third_party/pylint/reporters/ureports/__init__.py +0 -106
  694. data/vendor/depot_tools/third_party/pylint/reporters/ureports/html_writer.py +0 -93
  695. data/vendor/depot_tools/third_party/pylint/reporters/ureports/nodes.py +0 -181
  696. data/vendor/depot_tools/third_party/pylint/reporters/ureports/text_writer.py +0 -99
  697. data/vendor/depot_tools/third_party/pylint/testutils.py +0 -414
  698. data/vendor/depot_tools/third_party/pylint/utils.py +0 -1148
  699. data/vendor/depot_tools/third_party/pymox/COPYING +0 -202
  700. data/vendor/depot_tools/third_party/pymox/MANIFEST.in +0 -5
  701. data/vendor/depot_tools/third_party/pymox/README +0 -56
  702. data/vendor/depot_tools/third_party/pymox/__init__.py +0 -0
  703. data/vendor/depot_tools/third_party/pymox/mox.py +0 -1643
  704. data/vendor/depot_tools/third_party/pymox/mox_test.py +0 -1708
  705. data/vendor/depot_tools/third_party/pymox/mox_test_helper.py +0 -76
  706. data/vendor/depot_tools/third_party/pymox/setup.py +0 -14
  707. data/vendor/depot_tools/third_party/pymox/stubout.py +0 -142
  708. data/vendor/depot_tools/third_party/pymox/stubout_test.py +0 -47
  709. data/vendor/depot_tools/third_party/pymox/stubout_testee.py +0 -2
  710. data/vendor/depot_tools/third_party/simplejson/LICENSE.txt +0 -19
  711. data/vendor/depot_tools/third_party/simplejson/PKG-INFO +0 -29
  712. data/vendor/depot_tools/third_party/simplejson/__init__.py +0 -437
  713. data/vendor/depot_tools/third_party/simplejson/decoder.py +0 -421
  714. data/vendor/depot_tools/third_party/simplejson/encoder.py +0 -501
  715. data/vendor/depot_tools/third_party/simplejson/ordered_dict.py +0 -119
  716. data/vendor/depot_tools/third_party/simplejson/scanner.py +0 -77
  717. data/vendor/depot_tools/third_party/simplejson/tool.py +0 -39
  718. data/vendor/depot_tools/third_party/upload.py +0 -2565
@@ -1,23 +0,0 @@
1
- Most of the tests require a local Rietveld server.
2
-
3
- To set this up:
4
- Method 1: Let the presubmit script do the work for you.
5
- $ git cl presubmit
6
-
7
- Method 2: Manual.
8
- 1) Check out a copy of Rietveld:
9
- $ svn checkout http://rietveld.googlecode.com/svn/trunk/ rietveld
10
- (Use git-svn if you must, but man is it slow.)
11
- 2) Get the Google App Engine SDK:
12
- http://code.google.com/appengine/downloads.html
13
- 3) To run Rietveld you will need Django 1.0, which is not included
14
- with the App Engine SDK. Go to http://www.djangoproject.com/download ,
15
- download a Django from the 1.0 series (it's in the sidebar on the right),
16
- untar it, then
17
- $ export PYTHONPATH=`pwd`/Django-1.0.4
18
- 4) Run Rietveld:
19
- $ /path/to/appengine/sdk/dev_appserver.py /path/to/rietveld
20
- (If using one of the App Engine launchers, be sure to use port 8080
21
- for this project.)
22
-
23
- And then, finally, run the tests.
@@ -1,89 +0,0 @@
1
- #!/usr/bin/env python
2
- # Copyright 2013 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
- """Wraps gclient calls with annotated output.
7
-
8
- Note that you will have to use -- to stop option parsing for gclient flags.
9
-
10
- To run `gclient sync --gclientfile=.gclient` and annotate got_v8_revision:
11
- `annotated_gclient.py --revision-mapping='{"src/v8": "got_v8_revision"}' --
12
- sync --gclientfile=.gclient`
13
- """
14
-
15
- import contextlib
16
- import json
17
- import optparse
18
- import os
19
- import subprocess
20
- import sys
21
- import tempfile
22
-
23
-
24
- @contextlib.contextmanager
25
- def temp_filename(suffix='', prefix='tmp'):
26
- output_fd, output_file = tempfile.mkstemp(suffix=suffix, prefix=prefix)
27
- os.close(output_fd)
28
-
29
- yield output_file
30
-
31
- try:
32
- os.remove(output_file)
33
- except OSError as e:
34
- print 'Error cleaning up temp file %s: %s' % (output_file, e)
35
-
36
-
37
- def parse_got_revision(filename, revision_mapping):
38
- result = {}
39
- with open(filename) as f:
40
- data = json.load(f)
41
-
42
- for path, info in data['solutions'].iteritems():
43
- # gclient json paths always end with a slash
44
- path = path.rstrip('/')
45
- if path in revision_mapping:
46
- propname = revision_mapping[path]
47
- result[propname] = info['revision']
48
-
49
- return result
50
-
51
-
52
- def emit_buildprops(got_revisions):
53
- for prop, revision in got_revisions.iteritems():
54
- print '@@@SET_BUILD_PROPERTY@%s@%s@@@' % (prop, json.dumps(revision))
55
-
56
-
57
- def main():
58
- parser = optparse.OptionParser(
59
- description=('Runs gclient and annotates the output with any '
60
- 'got_revisions.'))
61
- parser.add_option('--revision-mapping', default='{}',
62
- help='json dict of directory-to-property mappings.')
63
- parser.add_option('--suffix', default='gclient',
64
- help='tempfile suffix')
65
- opts, args = parser.parse_args()
66
-
67
- revision_mapping = json.loads(opts.revision_mapping)
68
-
69
- if not args:
70
- parser.error('Must provide arguments to gclient.')
71
-
72
- if any(a.startswith('--output-json') for a in args):
73
- parser.error('Can\'t call annotated_gclient with --output-json.')
74
-
75
- with temp_filename(opts.suffix) as f:
76
- cmd = ['gclient']
77
- cmd.extend(args)
78
- cmd.extend(['--output-json', f])
79
- p = subprocess.Popen(cmd)
80
- p.wait()
81
-
82
- if p.returncode == 0:
83
- revisions = parse_got_revision(f, revision_mapping)
84
- emit_buildprops(revisions)
85
- return p.returncode
86
-
87
-
88
- if __name__ == '__main__':
89
- sys.exit(main())
@@ -1,23 +0,0 @@
1
- # Copyright (c) 2016 The Chromium Authors. All rights reserved.
2
- # Use of this source code is governed by a BSD-style license that can be
3
- # found in the LICENSE file.
4
-
5
- """Ensures that all depot_tools talks directly to appengine to avoid SNI."""
6
-
7
- import urlparse
8
-
9
-
10
- mapping = {
11
- 'codereview.chromium.org': 'chromiumcodereview.appspot.com',
12
- 'crashpad.chromium.org': 'crashpad-home.appspot.com',
13
- 'bugs.chromium.org': 'monorail-prod.appspot.com',
14
- 'bugs-staging.chromium.org': 'monorail-staging.appspot.com',
15
- }
16
-
17
-
18
- def MapUrl(url):
19
- parts = list(urlparse.urlsplit(url))
20
- new_netloc = mapping.get(parts[1])
21
- if new_netloc:
22
- parts[1] = new_netloc
23
- return urlparse.urlunsplit(parts)
@@ -1,20 +0,0 @@
1
- # CIPD manifest for Windows tools.
2
- #
3
- # We must install anything that we want included on PATH to a different
4
- # subdirectory than Git, as Git's msys bash strips its root directory
5
- # from PATH, hence the subdirs.
6
- #
7
- # If any paths or package layouts change, updates will be required in
8
- # "win_tools.bat" and "win_tools.py" templates.
9
- #
10
- # "win_tools.bat" has a hard requirement that the Python package contains the
11
- # string "cpython" and ends with the CIPD tag "version:VERSION". It uses this
12
- # to extract VERSION.
13
-
14
- $VerifiedPlatform windows-386 windows-amd64
15
-
16
- @Subdir python
17
- infra/python/cpython/windows-386 version:2.7.6
18
-
19
- @Subdir git
20
- infra/git/windows-${arch} version:2.21.0.chromium16
@@ -1,20 +0,0 @@
1
- # CIPD manifest for Windows tools.
2
- #
3
- # We must install anything that we want included on PATH to a different
4
- # subdirectory than Git, as Git's msys bash strips its root directory
5
- # from PATH, hence the subdirs.
6
- #
7
- # If any paths or package layouts change, updates will be required in
8
- # "win_tools.bat" and "win_tools.py" templates.
9
- #
10
- # "win_tools.bat" has a hard requirement that the Python package contains the
11
- # string "cpython" and ends with the CIPD tag "version:VERSION". It uses this
12
- # to extract VERSION.
13
-
14
- $VerifiedPlatform windows-386 windows-amd64
15
-
16
- @Subdir python
17
- infra/python/cpython/${platform} version:2.7.13.chromium7
18
-
19
- @Subdir git
20
- infra/git/windows-${arch} version:2.21.0.chromium16
@@ -1,7 +0,0 @@
1
- @echo off
2
- :: Copyright (c) 2013 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
- setlocal
7
- call python "%~dp0pylint.py" %*
@@ -1,186 +0,0 @@
1
- #!/usr/bin/env python
2
- # Copyright (c) 2015 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
- """Tool for interacting with Buildbucket.
7
-
8
- Usage:
9
- $ depot-tools-auth login https://cr-buildbucket.appspot.com
10
- $ buildbucket.py \
11
- put \
12
- --bucket master.tryserver.chromium.linux \
13
- --builder my-builder \
14
-
15
- Puts a build into buildbucket for my-builder on tryserver.chromium.linux.
16
- """
17
-
18
- import argparse
19
- import json
20
- import urlparse
21
- import os
22
- import sys
23
- import time
24
-
25
- from third_party import httplib2
26
-
27
- import auth
28
-
29
-
30
- BUILDBUCKET_URL = 'https://cr-buildbucket.appspot.com'
31
- BUILDBUCKET_API_URL = urlparse.urljoin(
32
- BUILDBUCKET_URL,
33
- '_ah/api/buildbucket/v1/builds',
34
- )
35
-
36
-
37
- def add_common_arguments(parser):
38
- parser.add_argument(
39
- '--response-json',
40
- help=(
41
- 'A path to which the response JSON will be written. '
42
- 'If no valid JSON is received, nothing will be written.'
43
- )
44
- )
45
-
46
-
47
- def main(argv):
48
- parser = argparse.ArgumentParser()
49
- parser.add_argument(
50
- '-v',
51
- '--verbose',
52
- action='store_true',
53
- )
54
- subparsers = parser.add_subparsers(dest='command')
55
-
56
- get_parser = subparsers.add_parser('get')
57
- add_common_arguments(get_parser)
58
- get_parser.add_argument(
59
- '--id',
60
- help='The ID of the build to get the status of.',
61
- required=True,
62
- )
63
-
64
- put_parser = subparsers.add_parser('put')
65
- add_common_arguments(put_parser)
66
- put_parser.add_argument(
67
- '-b',
68
- '--bucket',
69
- help=(
70
- 'The bucket to schedule the build on. Typically the master name, e.g.'
71
- ' master.tryserver.chromium.linux.'
72
- ),
73
- required=True,
74
- )
75
- put_parser.add_argument(
76
- '-c',
77
- '--changes',
78
- help='A flie to load a JSON list of changes dicts from.',
79
- )
80
- put_parser.add_argument(
81
- '-n',
82
- '--builder-name',
83
- help='The builder to schedule the build on.',
84
- required=True,
85
- )
86
- put_parser.add_argument(
87
- '-p',
88
- '--properties',
89
- help=(
90
- 'A file to load a JSON dict of properties from. Use "-" to pipe JSON '
91
- 'from another command.'
92
- ),
93
- )
94
-
95
- retry_parser = subparsers.add_parser('retry')
96
- add_common_arguments(retry_parser)
97
- retry_parser.add_argument(
98
- '--id',
99
- help='The ID of the build to retry.',
100
- required=True,
101
- )
102
-
103
- args = parser.parse_args()
104
-
105
- body = None
106
-
107
- if args.command == 'get':
108
- method = 'GET'
109
- url = '%s/%s' % (BUILDBUCKET_API_URL, args.id)
110
- elif args.command == 'put':
111
- changes = []
112
- if args.changes:
113
- try:
114
- with open(args.changes) as fp:
115
- changes.extend(json.load(fp))
116
- except (TypeError, ValueError):
117
- sys.stderr.write('%s contained invalid JSON list.\n' % args.changes)
118
- raise
119
-
120
- properties = {}
121
- if args.properties:
122
- try:
123
- # Allow using pipes to stream properties from another command, e.g.
124
- # echo '{"foo": "bar", "baz": 42}' | buildbucket.py -p -
125
- if args.properties == '-':
126
- properties.update(json.load(sys.stdin))
127
- else:
128
- with open(args.properties) as fp:
129
- properties.update(json.load(fp))
130
- except (TypeError, ValueError):
131
- sys.stderr.write('%s contained invalid JSON dict.\n' % args.properties)
132
- raise
133
-
134
- body = json.dumps({
135
- 'bucket': args.bucket,
136
- 'parameters_json': json.dumps({
137
- 'builder_name': args.builder_name,
138
- 'changes': changes,
139
- 'properties': properties,
140
- }),
141
- })
142
- method = 'PUT'
143
- url = BUILDBUCKET_API_URL
144
- elif args.command == 'retry':
145
- method = 'PUT'
146
- url = '%s/%s/retry' % (BUILDBUCKET_API_URL, args.id)
147
-
148
- authenticator = auth.get_authenticator_for_host(
149
- BUILDBUCKET_URL,
150
- auth.make_auth_config(use_oauth2=True),
151
- )
152
- http = authenticator.authorize(httplib2.Http())
153
- http.force_exception_to_status_code = True
154
-
155
- if args.verbose:
156
- print 'Request URL:', url
157
- print 'Request method:', method
158
- print 'Request body:', body
159
-
160
- response, content = http.request(
161
- url,
162
- method,
163
- body=body,
164
- headers={'Content-Type': 'application/json'},
165
- )
166
-
167
- if args.verbose:
168
- print 'Response:', response
169
- print 'Content:', content
170
-
171
- try:
172
- content_json = json.loads(content)
173
- if args.response_json:
174
- with open(args.response_json, 'w') as response_json_file:
175
- response_json_file.write(content)
176
- build_url = content_json['build']['url']
177
- except (ValueError, TypeError, KeyError):
178
- pass
179
- else:
180
- print 'Build: %s' % build_url
181
-
182
- return response.status != 200
183
-
184
-
185
- if __name__ == '__main__':
186
- sys.exit(main(sys.argv))
@@ -1,431 +0,0 @@
1
- # coding=utf8
2
- # Copyright (c) 2012 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
- """Manages a project checkout.
6
-
7
- Includes support only for git.
8
- """
9
-
10
- import fnmatch
11
- import logging
12
- import os
13
- import re
14
- import shutil
15
- import subprocess
16
- import sys
17
- import tempfile
18
-
19
- # The configparser module was renamed in Python 3.
20
- try:
21
- import configparser
22
- except ImportError:
23
- import ConfigParser as configparser
24
-
25
- import patch
26
- import scm
27
- import subprocess2
28
-
29
-
30
- if sys.platform in ('cygwin', 'win32'):
31
- # Disable timeouts on Windows since we can't have shells with timeouts.
32
- GLOBAL_TIMEOUT = None
33
- FETCH_TIMEOUT = None
34
- else:
35
- # Default timeout of 15 minutes.
36
- GLOBAL_TIMEOUT = 15*60
37
- # Use a larger timeout for checkout since it can be a genuinely slower
38
- # operation.
39
- FETCH_TIMEOUT = 30*60
40
-
41
-
42
- def get_code_review_setting(path, key,
43
- codereview_settings_file='codereview.settings'):
44
- """Parses codereview.settings and return the value for the key if present.
45
-
46
- Don't cache the values in case the file is changed."""
47
- # TODO(maruel): Do not duplicate code.
48
- settings = {}
49
- try:
50
- settings_file = open(os.path.join(path, codereview_settings_file), 'r')
51
- try:
52
- for line in settings_file.readlines():
53
- if not line or line.startswith('#'):
54
- continue
55
- if not ':' in line:
56
- # Invalid file.
57
- return None
58
- k, v = line.split(':', 1)
59
- settings[k.strip()] = v.strip()
60
- finally:
61
- settings_file.close()
62
- except IOError:
63
- return None
64
- return settings.get(key, None)
65
-
66
-
67
- def align_stdout(stdout):
68
- """Returns the aligned output of multiple stdouts."""
69
- output = ''
70
- for item in stdout:
71
- item = item.strip()
72
- if not item:
73
- continue
74
- output += ''.join(' %s\n' % line for line in item.splitlines())
75
- return output
76
-
77
-
78
- class PatchApplicationFailed(Exception):
79
- """Patch failed to be applied."""
80
- def __init__(self, errors, verbose):
81
- super(PatchApplicationFailed, self).__init__(errors, verbose)
82
- self.errors = errors
83
- self.verbose = verbose
84
-
85
- def __str__(self):
86
- out = []
87
- for e in self.errors:
88
- p, status = e
89
- if p and p.filename:
90
- out.append('Failed to apply patch for %s:' % p.filename)
91
- if status:
92
- out.append(status)
93
- if p and self.verbose:
94
- out.append('Patch: %s' % p.dump())
95
- return '\n'.join(out)
96
-
97
-
98
- class CheckoutBase(object):
99
- # Set to None to have verbose output.
100
- VOID = subprocess2.VOID
101
-
102
- def __init__(self, root_dir, project_name, post_processors):
103
- """
104
- Args:
105
- post_processor: list of lambda(checkout, patches) to call on each of the
106
- modified files.
107
- """
108
- super(CheckoutBase, self).__init__()
109
- self.root_dir = root_dir
110
- self.project_name = project_name
111
- if self.project_name is None:
112
- self.project_path = self.root_dir
113
- else:
114
- self.project_path = os.path.join(self.root_dir, self.project_name)
115
- # Only used for logging purposes.
116
- self._last_seen_revision = None
117
- self.post_processors = post_processors
118
- assert self.root_dir
119
- assert self.project_path
120
- assert os.path.isabs(self.project_path)
121
-
122
- def get_settings(self, key):
123
- return get_code_review_setting(self.project_path, key)
124
-
125
- def prepare(self, revision):
126
- """Checks out a clean copy of the tree and removes any local modification.
127
-
128
- This function shouldn't throw unless the remote repository is inaccessible,
129
- there is no free disk space or hard issues like that.
130
-
131
- Args:
132
- revision: The revision it should sync to, SCM specific.
133
- """
134
- raise NotImplementedError()
135
-
136
- def apply_patch(self, patches, post_processors=None, verbose=False):
137
- """Applies a patch and returns the list of modified files.
138
-
139
- This function should throw patch.UnsupportedPatchFormat or
140
- PatchApplicationFailed when relevant.
141
-
142
- Args:
143
- patches: patch.PatchSet object.
144
- """
145
- raise NotImplementedError()
146
-
147
- def commit(self, commit_message, user):
148
- """Commits the patch upstream, while impersonating 'user'."""
149
- raise NotImplementedError()
150
-
151
- def revisions(self, rev1, rev2):
152
- """Returns the count of revisions from rev1 to rev2, e.g. len(]rev1, rev2]).
153
-
154
- If rev2 is None, it means 'HEAD'.
155
-
156
- Returns None if there is no link between the two.
157
- """
158
- raise NotImplementedError()
159
-
160
-
161
- class GitCheckout(CheckoutBase):
162
- """Manages a git checkout."""
163
- def __init__(self, root_dir, project_name, remote_branch, git_url,
164
- commit_user, post_processors=None):
165
- super(GitCheckout, self).__init__(root_dir, project_name, post_processors)
166
- self.git_url = git_url
167
- self.commit_user = commit_user
168
- self.remote_branch = remote_branch
169
- # The working branch where patches will be applied. It will track the
170
- # remote branch.
171
- self.working_branch = 'working_branch'
172
- # There is no reason to not hardcode origin.
173
- self.remote = 'origin'
174
- # There is no reason to not hardcode master.
175
- self.master_branch = 'master'
176
-
177
- def prepare(self, revision):
178
- """Resets the git repository in a clean state.
179
-
180
- Checks it out if not present and deletes the working branch.
181
- """
182
- assert self.remote_branch
183
- assert self.git_url
184
-
185
- if not os.path.isdir(self.project_path):
186
- # Clone the repo if the directory is not present.
187
- logging.info(
188
- 'Checking out %s in %s', self.project_name, self.project_path)
189
- self._check_call_git(
190
- ['clone', self.git_url, '-b', self.remote_branch, self.project_path],
191
- cwd=None, timeout=FETCH_TIMEOUT)
192
- else:
193
- # Throw away all uncommitted changes in the existing checkout.
194
- self._check_call_git(['checkout', self.remote_branch])
195
- self._check_call_git(
196
- ['reset', '--hard', '--quiet',
197
- '%s/%s' % (self.remote, self.remote_branch)])
198
-
199
- if revision:
200
- try:
201
- # Look if the commit hash already exist. If so, we can skip a
202
- # 'git fetch' call.
203
- revision = self._check_output_git(['rev-parse', revision]).rstrip()
204
- except subprocess.CalledProcessError:
205
- self._check_call_git(
206
- ['fetch', self.remote, self.remote_branch, '--quiet'])
207
- revision = self._check_output_git(['rev-parse', revision]).rstrip()
208
- self._check_call_git(['checkout', '--force', '--quiet', revision])
209
- else:
210
- branches, active = self._branches()
211
- if active != self.master_branch:
212
- self._check_call_git(
213
- ['checkout', '--force', '--quiet', self.master_branch])
214
- self._sync_remote_branch()
215
-
216
- if self.working_branch in branches:
217
- self._call_git(['branch', '-D', self.working_branch])
218
- return self._get_head_commit_hash()
219
-
220
- def _sync_remote_branch(self):
221
- """Syncs the remote branch."""
222
- # We do a 'git pull origin master:refs/remotes/origin/master' instead of
223
- # 'git pull origin master' because from the manpage for git-pull:
224
- # A parameter <ref> without a colon is equivalent to <ref>: when
225
- # pulling/fetching, so it merges <ref> into the current branch without
226
- # storing the remote branch anywhere locally.
227
- remote_tracked_path = 'refs/remotes/%s/%s' % (
228
- self.remote, self.remote_branch)
229
- self._check_call_git(
230
- ['pull', self.remote,
231
- '%s:%s' % (self.remote_branch, remote_tracked_path),
232
- '--quiet'])
233
-
234
- def _get_head_commit_hash(self):
235
- """Gets the current revision (in unicode) from the local branch."""
236
- return unicode(self._check_output_git(['rev-parse', 'HEAD']).strip())
237
-
238
- def apply_patch(self, patches, post_processors=None, verbose=False):
239
- """Applies a patch on 'working_branch' and switches to it.
240
-
241
- The changes remain staged on the current branch.
242
- """
243
- post_processors = post_processors or self.post_processors or []
244
- # It this throws, the checkout is corrupted. Maybe worth deleting it and
245
- # trying again?
246
- if self.remote_branch:
247
- self._check_call_git(
248
- ['checkout', '-b', self.working_branch, '-t', self.remote_branch,
249
- '--quiet'])
250
-
251
- errors = []
252
- for index, p in enumerate(patches):
253
- stdout = []
254
- try:
255
- filepath = os.path.join(self.project_path, p.filename)
256
- if p.is_delete:
257
- if (not os.path.exists(filepath) and
258
- any(p1.source_filename == p.filename for p1 in patches[0:index])):
259
- # The file was already deleted if a prior patch with file rename
260
- # was already processed because 'git apply' did it for us.
261
- pass
262
- else:
263
- stdout.append(self._check_output_git(['rm', p.filename]))
264
- assert(not os.path.exists(filepath))
265
- stdout.append('Deleted.')
266
- else:
267
- dirname = os.path.dirname(p.filename)
268
- full_dir = os.path.join(self.project_path, dirname)
269
- if dirname and not os.path.isdir(full_dir):
270
- os.makedirs(full_dir)
271
- stdout.append('Created missing directory %s.' % dirname)
272
- if p.is_binary:
273
- content = p.get()
274
- with open(filepath, 'wb') as f:
275
- f.write(content)
276
- stdout.append('Added binary file %d bytes' % len(content))
277
- cmd = ['add', p.filename]
278
- if verbose:
279
- cmd.append('--verbose')
280
- stdout.append(self._check_output_git(cmd))
281
- else:
282
- # No need to do anything special with p.is_new or if not
283
- # p.diff_hunks. git apply manages all that already.
284
- cmd = ['apply', '--index', '-3', '-p%s' % p.patchlevel]
285
- if verbose:
286
- cmd.append('--verbose')
287
- stdout.append(self._check_output_git(cmd, stdin=p.get(True)))
288
- for post in post_processors:
289
- post(self, p)
290
- if verbose:
291
- print p.filename
292
- print align_stdout(stdout)
293
- except OSError, e:
294
- errors.append((p, '%s%s' % (align_stdout(stdout), e)))
295
- except subprocess.CalledProcessError, e:
296
- errors.append((p,
297
- 'While running %s;\n%s%s' % (
298
- ' '.join(e.cmd),
299
- align_stdout(stdout),
300
- align_stdout([getattr(e, 'stdout', '')]))))
301
- if errors:
302
- raise PatchApplicationFailed(errors, verbose)
303
- found_files = self._check_output_git(
304
- ['-c', 'core.quotePath=false', 'diff', '--ignore-submodules',
305
- '--name-only', '--staged']).splitlines(False)
306
- if sorted(patches.filenames) != sorted(found_files):
307
- extra_files = sorted(set(found_files) - set(patches.filenames))
308
- unpatched_files = sorted(set(patches.filenames) - set(found_files))
309
- if extra_files:
310
- print 'Found extra files: %r' % (extra_files,)
311
- if unpatched_files:
312
- print 'Found unpatched files: %r' % (unpatched_files,)
313
-
314
-
315
- def commit(self, commit_message, user):
316
- """Commits, updates the commit message and pushes."""
317
- # TODO(hinoka): CQ no longer uses this, I think its deprecated.
318
- # Delete this.
319
- assert self.commit_user
320
- assert isinstance(commit_message, unicode)
321
- current_branch = self._check_output_git(
322
- ['rev-parse', '--abbrev-ref', 'HEAD']).strip()
323
- assert current_branch == self.working_branch
324
-
325
- commit_cmd = ['commit', '-m', commit_message]
326
- if user and user != self.commit_user:
327
- # We do not have the first or last name of the user, grab the username
328
- # from the email and call it the original author's name.
329
- # TODO(rmistry): Do not need the below if user is already in
330
- # "Name <email>" format.
331
- name = user.split('@')[0]
332
- commit_cmd.extend(['--author', '%s <%s>' % (name, user)])
333
- self._check_call_git(commit_cmd)
334
-
335
- # Push to the remote repository.
336
- self._check_call_git(
337
- ['push', 'origin', '%s:%s' % (self.working_branch, self.remote_branch),
338
- '--quiet'])
339
- # Get the revision after the push.
340
- revision = self._get_head_commit_hash()
341
- # Switch back to the remote_branch and sync it.
342
- self._check_call_git(['checkout', self.remote_branch])
343
- self._sync_remote_branch()
344
- # Delete the working branch since we are done with it.
345
- self._check_call_git(['branch', '-D', self.working_branch])
346
-
347
- return revision
348
-
349
- def _check_call_git(self, args, **kwargs):
350
- kwargs.setdefault('cwd', self.project_path)
351
- kwargs.setdefault('stdout', self.VOID)
352
- kwargs.setdefault('timeout', GLOBAL_TIMEOUT)
353
- return subprocess2.check_call_out(['git'] + args, **kwargs)
354
-
355
- def _call_git(self, args, **kwargs):
356
- """Like check_call but doesn't throw on failure."""
357
- kwargs.setdefault('cwd', self.project_path)
358
- kwargs.setdefault('stdout', self.VOID)
359
- kwargs.setdefault('timeout', GLOBAL_TIMEOUT)
360
- return subprocess2.call(['git'] + args, **kwargs)
361
-
362
- def _check_output_git(self, args, **kwargs):
363
- kwargs.setdefault('cwd', self.project_path)
364
- kwargs.setdefault('timeout', GLOBAL_TIMEOUT)
365
- return subprocess2.check_output(
366
- ['git'] + args, stderr=subprocess2.STDOUT, **kwargs)
367
-
368
- def _branches(self):
369
- """Returns the list of branches and the active one."""
370
- out = self._check_output_git(['branch']).splitlines(False)
371
- branches = [l[2:] for l in out]
372
- active = None
373
- for l in out:
374
- if l.startswith('*'):
375
- active = l[2:]
376
- break
377
- return branches, active
378
-
379
- def revisions(self, rev1, rev2):
380
- """Returns the number of actual commits between both hash."""
381
- self._fetch_remote()
382
-
383
- rev2 = rev2 or '%s/%s' % (self.remote, self.remote_branch)
384
- # Revision range is ]rev1, rev2] and ordering matters.
385
- try:
386
- out = self._check_output_git(
387
- ['log', '--format="%H"' , '%s..%s' % (rev1, rev2)])
388
- except subprocess.CalledProcessError:
389
- return None
390
- return len(out.splitlines())
391
-
392
- def _fetch_remote(self):
393
- """Fetches the remote without rebasing."""
394
- # git fetch is always verbose even with -q, so redirect its output.
395
- self._check_output_git(['fetch', self.remote, self.remote_branch],
396
- timeout=FETCH_TIMEOUT)
397
-
398
-
399
- class ReadOnlyCheckout(object):
400
- """Converts a checkout into a read-only one."""
401
- def __init__(self, checkout, post_processors=None):
402
- super(ReadOnlyCheckout, self).__init__()
403
- self.checkout = checkout
404
- self.post_processors = (post_processors or []) + (
405
- self.checkout.post_processors or [])
406
-
407
- def prepare(self, revision):
408
- return self.checkout.prepare(revision)
409
-
410
- def get_settings(self, key):
411
- return self.checkout.get_settings(key)
412
-
413
- def apply_patch(self, patches, post_processors=None, verbose=False):
414
- return self.checkout.apply_patch(
415
- patches, post_processors or self.post_processors, verbose)
416
-
417
- def commit(self, message, user): # pylint: disable=no-self-use
418
- logging.info('Would have committed for %s with message: %s' % (
419
- user, message))
420
- return 'FAKE'
421
-
422
- def revisions(self, rev1, rev2):
423
- return self.checkout.revisions(rev1, rev2)
424
-
425
- @property
426
- def project_name(self):
427
- return self.checkout.project_name
428
-
429
- @property
430
- def project_path(self):
431
- return self.checkout.project_path