libv8 6.7.288.46.1 → 7.3.492.27.0beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (408) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -0
  3. data/CHANGELOG.md +4 -0
  4. data/README.md +2 -0
  5. data/ext/libv8/builder.rb +6 -2
  6. data/lib/libv8/version.rb +1 -1
  7. data/vendor/depot_tools/.gitattributes +1 -0
  8. data/vendor/depot_tools/.gitignore +7 -0
  9. data/vendor/depot_tools/CROS_OWNERS +5 -0
  10. data/vendor/depot_tools/OWNERS +12 -1
  11. data/vendor/depot_tools/PRESUBMIT.py +16 -9
  12. data/vendor/depot_tools/README.md +9 -2
  13. data/vendor/depot_tools/autoninja +14 -6
  14. data/vendor/depot_tools/autoninja.bat +11 -1
  15. data/vendor/depot_tools/autoninja.py +40 -18
  16. data/vendor/depot_tools/bb +12 -0
  17. data/vendor/depot_tools/bb.bat +7 -0
  18. data/vendor/depot_tools/bootstrap/win/manifest.txt +1 -1
  19. data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +1 -1
  20. data/vendor/depot_tools/bootstrap/win/win_tools.py +2 -1
  21. data/vendor/depot_tools/buildbucket.py +57 -4
  22. data/vendor/depot_tools/cipd +157 -44
  23. data/vendor/depot_tools/cipd.bat +51 -14
  24. data/vendor/depot_tools/cipd.ps1 +104 -42
  25. data/vendor/depot_tools/cipd_client_version +1 -1
  26. data/vendor/depot_tools/cipd_client_version.digests +21 -0
  27. data/vendor/depot_tools/cipd_manifest.txt +19 -6
  28. data/vendor/depot_tools/cipd_manifest.versions +318 -0
  29. data/vendor/depot_tools/clang_format.py +4 -4
  30. data/vendor/depot_tools/cpplint.py +44 -199
  31. data/vendor/depot_tools/dart_format.py +2 -2
  32. data/vendor/depot_tools/detect_host_arch.py +8 -3
  33. data/vendor/depot_tools/download_from_google_storage.py +47 -39
  34. data/vendor/depot_tools/fetch.py +30 -18
  35. data/vendor/depot_tools/fetch_configs/android_internal.py +34 -0
  36. data/vendor/depot_tools/fetch_configs/chromium.py +18 -1
  37. data/vendor/depot_tools/fetch_configs/config_util.py +4 -2
  38. data/vendor/depot_tools/fetch_configs/inspector_protocol.py +40 -0
  39. data/vendor/depot_tools/fetch_configs/node-ci.py +41 -0
  40. data/vendor/depot_tools/fix_encoding.py +3 -3
  41. data/vendor/depot_tools/gclient +1 -1
  42. data/vendor/depot_tools/gclient.py +415 -198
  43. data/vendor/depot_tools/gclient_eval.py +220 -171
  44. data/vendor/depot_tools/gclient_paths.py +142 -0
  45. data/vendor/depot_tools/gclient_scm.py +200 -51
  46. data/vendor/depot_tools/gclient_utils.py +88 -191
  47. data/vendor/depot_tools/gerrit_client.py +13 -0
  48. data/vendor/depot_tools/gerrit_util.py +158 -23
  49. data/vendor/depot_tools/git-nav-upstream +1 -1
  50. data/vendor/depot_tools/git_cache.py +77 -24
  51. data/vendor/depot_tools/git_cl.py +705 -1099
  52. data/vendor/depot_tools/git_common.py +9 -6
  53. data/vendor/depot_tools/git_map_branches.py +19 -2
  54. data/vendor/depot_tools/git_nav_downstream.py +3 -4
  55. data/vendor/depot_tools/git_rebase_update.py +14 -0
  56. data/vendor/depot_tools/git_reparent_branch.py +8 -2
  57. data/vendor/depot_tools/gn.py +38 -3
  58. data/vendor/depot_tools/gsutil.py +8 -3
  59. data/vendor/depot_tools/gsutil.py.bat +15 -0
  60. data/vendor/depot_tools/gsutil.vpython +16 -0
  61. data/vendor/depot_tools/infra/config/OWNERS +0 -1
  62. data/vendor/depot_tools/infra/config/recipes.cfg +3 -2
  63. data/vendor/depot_tools/lucicfg +12 -0
  64. data/vendor/depot_tools/lucicfg.bat +7 -0
  65. data/vendor/depot_tools/man/html/git-map-branches.html +34 -2
  66. data/vendor/depot_tools/man/html/git-new-branch.html +40 -32
  67. data/vendor/depot_tools/man/man1/git-map-branches.1 +24 -5
  68. data/vendor/depot_tools/man/man1/git-new-branch.1 +35 -27
  69. data/vendor/depot_tools/man/src/git-map-branches.demo.1.sh +1 -0
  70. data/vendor/depot_tools/man/src/git-map-branches.txt +10 -0
  71. data/vendor/depot_tools/man/src/git-new-branch.demo.1.sh +9 -4
  72. data/vendor/depot_tools/man/src/git-new-branch.txt +1 -1
  73. data/vendor/depot_tools/metrics.README.md +98 -0
  74. data/vendor/depot_tools/metrics.py +296 -0
  75. data/vendor/depot_tools/metrics_utils.py +303 -0
  76. data/vendor/depot_tools/my_activity.py +91 -29
  77. data/vendor/depot_tools/ninja +1 -1
  78. data/vendor/depot_tools/ninjalog.README.md +64 -0
  79. data/vendor/depot_tools/ninjalog_uploader.py +232 -0
  80. data/vendor/depot_tools/ninjalog_uploader_wrapper.py +116 -0
  81. data/vendor/depot_tools/owners.py +30 -13
  82. data/vendor/depot_tools/owners_finder.py +5 -2
  83. data/vendor/depot_tools/presubmit_canned_checks.py +188 -29
  84. data/vendor/depot_tools/presubmit_support.py +18 -41
  85. data/vendor/depot_tools/pylintrc +23 -19
  86. data/vendor/depot_tools/recipes/OWNERS +2 -0
  87. data/vendor/depot_tools/recipes/README.recipes.md +344 -151
  88. data/vendor/depot_tools/recipes/recipe_modules/bot_update/OWNERS +2 -0
  89. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +2 -16
  90. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +141 -99
  91. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +5 -8
  92. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +5 -8
  93. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +6 -98
  94. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +4 -9
  95. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +45 -5
  96. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +4 -9
  97. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +4 -9
  98. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{tryjob.json → input_commit_with_id_without_repo.json} +6 -11
  99. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{tryjob_empty_revision.json → multiple_patch_refs.json} +8 -9
  100. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +19 -29
  101. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{trychange.json → refs.json} +4 -9
  102. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +4 -9
  103. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +51 -6
  104. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +50 -6
  105. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +51 -6
  106. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +17 -25
  107. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +17 -25
  108. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +18 -26
  109. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +18 -26
  110. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +26 -28
  111. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +45 -5
  112. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +17 -25
  113. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +13 -0
  114. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name.json +13 -152
  115. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +4 -9
  116. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +185 -202
  117. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +52 -157
  118. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +5 -14
  119. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +34 -0
  120. data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +14 -2
  121. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +4 -5
  122. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +4 -5
  123. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +7 -5
  124. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +4 -5
  125. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +4 -5
  126. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +9 -3
  127. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +9 -3
  128. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +9 -3
  129. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +4 -5
  130. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +2 -3
  131. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +2 -3
  132. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +2 -3
  133. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +2 -3
  134. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +2 -3
  135. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +2 -3
  136. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +2 -3
  137. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +2 -3
  138. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +2 -3
  139. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +2 -3
  140. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +13 -8
  141. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +18 -12
  142. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +18 -12
  143. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +18 -12
  144. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +3 -0
  145. data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +1 -0
  146. data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +58 -46
  147. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +65 -22
  148. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +20 -21
  149. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/buildbot.json +20 -21
  150. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +20 -21
  151. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +20 -21
  152. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +5 -2
  153. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +62 -14
  154. data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +24 -38
  155. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +56 -50
  156. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.py +15 -9
  157. data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +4 -1
  158. data/vendor/depot_tools/recipes/recipe_modules/git/api.py +34 -22
  159. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +5 -6
  160. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +5 -6
  161. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +5 -6
  162. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +5 -6
  163. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_luci.json +222 -0
  164. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +5 -6
  165. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +5 -6
  166. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +224 -0
  167. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +10 -6
  168. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +5 -7
  169. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +5 -6
  170. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +5 -6
  171. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +5 -7
  172. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +5 -6
  173. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +10 -5
  174. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +5 -6
  175. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +8 -9
  176. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +5 -6
  177. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +12 -8
  178. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +5 -6
  179. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +5 -6
  180. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +27 -11
  181. data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +1 -1
  182. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +12 -13
  183. data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +5 -0
  184. data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +120 -5
  185. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +45 -3
  186. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +25 -0
  187. data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +56 -4
  188. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +6 -0
  189. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.py +49 -0
  190. data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +24 -13
  191. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +13 -14
  192. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/basic.json +2 -3
  193. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_linux.json +2 -3
  194. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_mac.json +2 -3
  195. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_win.json +2 -3
  196. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_linux.json +2 -3
  197. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_mac.json +2 -3
  198. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +2 -3
  199. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +2 -3
  200. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +2 -3
  201. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +2 -3
  202. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +1 -2
  203. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +35 -0
  204. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +116 -0
  205. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +22 -0
  206. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +82 -0
  207. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +22 -0
  208. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +23 -0
  209. data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +1 -0
  210. data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +2 -7
  211. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +7 -6
  212. data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +1 -0
  213. data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +117 -8
  214. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +4 -5
  215. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/set_failure_hash_with_no_steps.json +7 -4
  216. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +98 -7
  217. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +147 -0
  218. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch.json +8 -5
  219. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch_luci.json +8 -5
  220. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +9 -6
  221. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +9 -6
  222. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +27 -2
  223. data/vendor/depot_tools/recipes/recipe_modules/tryserver/test_api.py +14 -0
  224. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/__init__.py +25 -0
  225. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/api.py +137 -0
  226. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +22 -0
  227. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +22 -0
  228. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +107 -0
  229. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +26 -0
  230. data/vendor/depot_tools/recipes/recipes.py +37 -27
  231. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +7 -10
  232. data/vendor/depot_tools/repo +34 -8
  233. data/vendor/depot_tools/roll_dep.py +52 -49
  234. data/vendor/depot_tools/scm.py +38 -23
  235. data/vendor/depot_tools/setup_color.py +4 -2
  236. data/vendor/depot_tools/split_cl.py +32 -4
  237. data/vendor/depot_tools/subprocess2.py +22 -4
  238. data/vendor/depot_tools/third_party/httplib2/README.chromium +2 -2
  239. data/vendor/depot_tools/third_party/httplib2/__init__.py +242 -158
  240. data/vendor/depot_tools/third_party/httplib2/cacerts.txt +57 -44
  241. data/vendor/depot_tools/third_party/httplib2/socks.py +15 -5
  242. data/vendor/depot_tools/third_party/logilab/README.chromium +2 -4
  243. data/vendor/depot_tools/third_party/logilab/astroid/README.chromium +2 -1
  244. data/vendor/depot_tools/third_party/logilab/astroid/__init__.py +10 -5
  245. data/vendor/depot_tools/third_party/logilab/astroid/__pkginfo__.py +5 -5
  246. data/vendor/depot_tools/third_party/logilab/astroid/arguments.py +233 -0
  247. data/vendor/depot_tools/third_party/logilab/astroid/as_string.py +82 -33
  248. data/vendor/depot_tools/third_party/logilab/astroid/bases.py +137 -153
  249. data/vendor/depot_tools/third_party/logilab/astroid/brain/{builtin_inference.py → brain_builtin_inference.py} +117 -26
  250. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_dateutil.py +15 -0
  251. data/vendor/depot_tools/third_party/logilab/astroid/brain/{py2gi.py → brain_gi.py} +48 -8
  252. data/vendor/depot_tools/third_party/logilab/astroid/brain/{py2mechanize.py → brain_mechanize.py} +0 -0
  253. data/vendor/depot_tools/third_party/logilab/astroid/brain/{pynose.py → brain_nose.py} +4 -1
  254. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_numpy.py +62 -0
  255. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_pytest.py +76 -0
  256. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_qt.py +44 -0
  257. data/vendor/depot_tools/third_party/logilab/astroid/brain/{pysix_moves.py → brain_six.py} +28 -1
  258. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_ssl.py +65 -0
  259. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_stdlib.py +473 -0
  260. data/vendor/depot_tools/third_party/logilab/astroid/builder.py +104 -81
  261. data/vendor/depot_tools/third_party/logilab/astroid/context.py +81 -0
  262. data/vendor/depot_tools/third_party/logilab/astroid/decorators.py +75 -0
  263. data/vendor/depot_tools/third_party/logilab/astroid/exceptions.py +20 -0
  264. data/vendor/depot_tools/third_party/logilab/astroid/inference.py +137 -183
  265. data/vendor/depot_tools/third_party/logilab/astroid/manager.py +45 -169
  266. data/vendor/depot_tools/third_party/logilab/astroid/mixins.py +37 -14
  267. data/vendor/depot_tools/third_party/logilab/astroid/modutils.py +112 -41
  268. data/vendor/depot_tools/third_party/logilab/astroid/node_classes.py +243 -156
  269. data/vendor/depot_tools/third_party/logilab/astroid/nodes.py +35 -22
  270. data/vendor/depot_tools/third_party/logilab/astroid/objects.py +186 -0
  271. data/vendor/depot_tools/third_party/logilab/astroid/protocols.py +157 -102
  272. data/vendor/depot_tools/third_party/logilab/astroid/raw_building.py +32 -8
  273. data/vendor/depot_tools/third_party/logilab/astroid/rebuilder.py +372 -309
  274. data/vendor/depot_tools/third_party/logilab/astroid/scoped_nodes.py +652 -420
  275. data/vendor/depot_tools/third_party/logilab/astroid/test_utils.py +4 -21
  276. data/vendor/depot_tools/third_party/logilab/astroid/transforms.py +96 -0
  277. data/vendor/depot_tools/third_party/logilab/astroid/util.py +89 -0
  278. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/LICENSE +19 -0
  279. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/README.chromium +11 -0
  280. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/__init__.py +20 -0
  281. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/cext.c +1421 -0
  282. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/compat.py +9 -0
  283. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/simple.py +246 -0
  284. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/slots.py +414 -0
  285. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/utils.py +13 -0
  286. data/vendor/depot_tools/third_party/logilab/wrapt/LICENSE +24 -0
  287. data/vendor/depot_tools/third_party/logilab/wrapt/README.chromium +11 -0
  288. data/vendor/depot_tools/third_party/logilab/wrapt/__init__.py +19 -0
  289. data/vendor/depot_tools/third_party/logilab/wrapt/_wrappers.c +2729 -0
  290. data/vendor/depot_tools/third_party/logilab/wrapt/arguments.py +96 -0
  291. data/vendor/depot_tools/third_party/logilab/wrapt/decorators.py +512 -0
  292. data/vendor/depot_tools/third_party/logilab/wrapt/importer.py +228 -0
  293. data/vendor/depot_tools/third_party/logilab/wrapt/wrappers.py +901 -0
  294. data/vendor/depot_tools/third_party/pylint/README.chromium +2 -25
  295. data/vendor/depot_tools/third_party/pylint/__pkginfo__.py +13 -3
  296. data/vendor/depot_tools/third_party/pylint/checkers/__init__.py +1 -2
  297. data/vendor/depot_tools/third_party/pylint/checkers/async.py +82 -0
  298. data/vendor/depot_tools/third_party/pylint/checkers/base.py +893 -119
  299. data/vendor/depot_tools/third_party/pylint/checkers/classes.py +342 -204
  300. data/vendor/depot_tools/third_party/pylint/checkers/design_analysis.py +51 -34
  301. data/vendor/depot_tools/third_party/pylint/checkers/exceptions.py +84 -47
  302. data/vendor/depot_tools/third_party/pylint/checkers/format.py +55 -30
  303. data/vendor/depot_tools/third_party/pylint/checkers/imports.py +314 -73
  304. data/vendor/depot_tools/third_party/pylint/checkers/logging.py +10 -8
  305. data/vendor/depot_tools/third_party/pylint/checkers/misc.py +2 -1
  306. data/vendor/depot_tools/third_party/pylint/checkers/newstyle.py +45 -48
  307. data/vendor/depot_tools/third_party/pylint/checkers/python3.py +31 -21
  308. data/vendor/depot_tools/third_party/pylint/checkers/raw_metrics.py +3 -3
  309. data/vendor/depot_tools/third_party/pylint/checkers/similar.py +4 -5
  310. data/vendor/depot_tools/third_party/pylint/checkers/spelling.py +24 -10
  311. data/vendor/depot_tools/third_party/pylint/checkers/stdlib.py +120 -56
  312. data/vendor/depot_tools/third_party/pylint/checkers/strings.py +38 -35
  313. data/vendor/depot_tools/third_party/pylint/checkers/typecheck.py +485 -138
  314. data/vendor/depot_tools/third_party/pylint/checkers/utils.py +319 -142
  315. data/vendor/depot_tools/third_party/pylint/checkers/variables.py +329 -207
  316. data/vendor/depot_tools/third_party/pylint/config.py +739 -76
  317. data/vendor/depot_tools/third_party/pylint/epylint.py +9 -5
  318. data/vendor/depot_tools/third_party/pylint/extensions/__init__.py +0 -0
  319. data/vendor/depot_tools/third_party/pylint/extensions/check_docs.py +311 -0
  320. data/vendor/depot_tools/third_party/pylint/extensions/check_elif.py +62 -0
  321. data/vendor/depot_tools/third_party/{logilab/common → pylint}/graph.py +30 -133
  322. data/vendor/depot_tools/third_party/pylint/gui.py +2 -2
  323. data/vendor/depot_tools/third_party/pylint/interfaces.py +21 -3
  324. data/vendor/depot_tools/third_party/pylint/lint.py +123 -140
  325. data/vendor/depot_tools/third_party/pylint/pyreverse/diadefslib.py +10 -13
  326. data/vendor/depot_tools/third_party/pylint/pyreverse/diagrams.py +15 -4
  327. data/vendor/depot_tools/third_party/pylint/pyreverse/inspector.py +372 -0
  328. data/vendor/depot_tools/third_party/pylint/pyreverse/main.py +30 -7
  329. data/vendor/depot_tools/third_party/pylint/pyreverse/utils.py +80 -2
  330. data/vendor/depot_tools/third_party/{logilab/common → pylint/pyreverse}/vcgutils.py +19 -37
  331. data/vendor/depot_tools/third_party/pylint/pyreverse/writer.py +3 -4
  332. data/vendor/depot_tools/third_party/pylint/reporters/__init__.py +34 -18
  333. data/vendor/depot_tools/third_party/pylint/reporters/guireporter.py +1 -1
  334. data/vendor/depot_tools/third_party/pylint/reporters/html.py +10 -3
  335. data/vendor/depot_tools/third_party/pylint/reporters/json.py +10 -4
  336. data/vendor/depot_tools/third_party/pylint/reporters/text.py +94 -3
  337. data/vendor/depot_tools/third_party/pylint/reporters/ureports/__init__.py +106 -0
  338. data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/html_writer.py +17 -57
  339. data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/nodes.py +52 -74
  340. data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/text_writer.py +14 -60
  341. data/vendor/depot_tools/third_party/pylint/testutils.py +22 -20
  342. data/vendor/depot_tools/third_party/pylint/utils.py +268 -44
  343. data/vendor/depot_tools/third_party/repo/progress.py +42 -0
  344. data/vendor/depot_tools/update_depot_tools +1 -1
  345. data/vendor/depot_tools/upload_metrics.py +25 -0
  346. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +45 -15
  347. data/vendor/depot_tools/win_toolchain/package_from_installed.py +71 -24
  348. data/vendor/depot_tools/yapf +1 -1
  349. data/vendor/depot_tools/yapf.bat +1 -1
  350. metadata +92 -77
  351. data/vendor/depot_tools/git-crsync +0 -3
  352. data/vendor/depot_tools/infra/config/cq.cfg +0 -32
  353. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/apply_gerrit_ref.json +0 -29
  354. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/apply_gerrit_ref_custom.json +0 -29
  355. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/buildbot.json +0 -105
  356. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/shallow.json +0 -195
  357. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle_deprecated.json +0 -248
  358. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8.json +0 -248
  359. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name_no_patch.json +0 -105
  360. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/apply_gerrit.py +0 -33
  361. data/vendor/depot_tools/third_party/logilab/astroid/brain/py2pytest.py +0 -31
  362. data/vendor/depot_tools/third_party/logilab/astroid/brain/py2qt4.py +0 -22
  363. data/vendor/depot_tools/third_party/logilab/astroid/brain/py2stdlib.py +0 -334
  364. data/vendor/depot_tools/third_party/logilab/astroid/inspector.py +0 -273
  365. data/vendor/depot_tools/third_party/logilab/astroid/utils.py +0 -239
  366. data/vendor/depot_tools/third_party/logilab/common/LICENSE.txt +0 -339
  367. data/vendor/depot_tools/third_party/logilab/common/README.chromium +0 -11
  368. data/vendor/depot_tools/third_party/logilab/common/__init__.py +0 -175
  369. data/vendor/depot_tools/third_party/logilab/common/__pkginfo__.py +0 -57
  370. data/vendor/depot_tools/third_party/logilab/common/cache.py +0 -114
  371. data/vendor/depot_tools/third_party/logilab/common/changelog.py +0 -238
  372. data/vendor/depot_tools/third_party/logilab/common/clcommands.py +0 -334
  373. data/vendor/depot_tools/third_party/logilab/common/cli.py +0 -211
  374. data/vendor/depot_tools/third_party/logilab/common/compat.py +0 -78
  375. data/vendor/depot_tools/third_party/logilab/common/configuration.py +0 -1105
  376. data/vendor/depot_tools/third_party/logilab/common/contexts.py +0 -5
  377. data/vendor/depot_tools/third_party/logilab/common/corbautils.py +0 -117
  378. data/vendor/depot_tools/third_party/logilab/common/daemon.py +0 -101
  379. data/vendor/depot_tools/third_party/logilab/common/date.py +0 -335
  380. data/vendor/depot_tools/third_party/logilab/common/dbf.py +0 -231
  381. data/vendor/depot_tools/third_party/logilab/common/debugger.py +0 -214
  382. data/vendor/depot_tools/third_party/logilab/common/decorators.py +0 -281
  383. data/vendor/depot_tools/third_party/logilab/common/deprecation.py +0 -189
  384. data/vendor/depot_tools/third_party/logilab/common/fileutils.py +0 -404
  385. data/vendor/depot_tools/third_party/logilab/common/interface.py +0 -71
  386. data/vendor/depot_tools/third_party/logilab/common/logging_ext.py +0 -195
  387. data/vendor/depot_tools/third_party/logilab/common/modutils.py +0 -702
  388. data/vendor/depot_tools/third_party/logilab/common/optik_ext.py +0 -392
  389. data/vendor/depot_tools/third_party/logilab/common/optparser.py +0 -92
  390. data/vendor/depot_tools/third_party/logilab/common/proc.py +0 -277
  391. data/vendor/depot_tools/third_party/logilab/common/pyro_ext.py +0 -180
  392. data/vendor/depot_tools/third_party/logilab/common/pytest.py +0 -1199
  393. data/vendor/depot_tools/third_party/logilab/common/registry.py +0 -1119
  394. data/vendor/depot_tools/third_party/logilab/common/shellutils.py +0 -462
  395. data/vendor/depot_tools/third_party/logilab/common/sphinx_ext.py +0 -87
  396. data/vendor/depot_tools/third_party/logilab/common/sphinxutils.py +0 -122
  397. data/vendor/depot_tools/third_party/logilab/common/table.py +0 -929
  398. data/vendor/depot_tools/third_party/logilab/common/tasksqueue.py +0 -101
  399. data/vendor/depot_tools/third_party/logilab/common/testlib.py +0 -1392
  400. data/vendor/depot_tools/third_party/logilab/common/textutils.py +0 -537
  401. data/vendor/depot_tools/third_party/logilab/common/tree.py +0 -369
  402. data/vendor/depot_tools/third_party/logilab/common/umessage.py +0 -194
  403. data/vendor/depot_tools/third_party/logilab/common/ureports/__init__.py +0 -172
  404. data/vendor/depot_tools/third_party/logilab/common/ureports/docbook_writer.py +0 -140
  405. data/vendor/depot_tools/third_party/logilab/common/urllib2ext.py +0 -89
  406. data/vendor/depot_tools/third_party/logilab/common/visitor.py +0 -109
  407. data/vendor/depot_tools/third_party/logilab/common/xmlrpcutils.py +0 -131
  408. data/vendor/depot_tools/third_party/logilab/common/xmlutils.py +0 -61
@@ -55,9 +55,6 @@ COMMIT_ORIGINAL_POSITION_FOOTER_KEY = 'Cr-Original-Commit-Position'
55
55
  # Regular expression to parse gclient's revinfo entries.
56
56
  REVINFO_RE = re.compile(r'^([^:]+):\s+([^@]+)@(.+)$')
57
57
 
58
- # Regular expression to match gclient's patch error message.
59
- PATCH_ERROR_RE = re.compile('Failed to apply .* @ .* to .* at .*')
60
-
61
58
  # Copied from scripts/recipes/chromium.py.
62
59
  GOT_REVISION_MAPPINGS = {
63
60
  CHROMIUM_SRC_URL: {
@@ -87,11 +84,6 @@ ATTEMPTS = 5
87
84
  GIT_CACHE_PATH = path.join(DEPOT_TOOLS_DIR, 'git_cache.py')
88
85
  GCLIENT_PATH = path.join(DEPOT_TOOLS_DIR, 'gclient.py')
89
86
 
90
- # If there is less than 100GB of disk space on the system, then we do
91
- # a shallow checkout.
92
- SHALLOW_CLONE_THRESHOLD = 100 * 1024 * 1024 * 1024
93
-
94
-
95
87
  class SubprocessFailed(Exception):
96
88
  def __init__(self, message, code, output):
97
89
  Exception.__init__(self, message)
@@ -351,22 +343,20 @@ def git_config_if_not_set(key, value):
351
343
 
352
344
 
353
345
  def gclient_sync(
354
- with_branch_heads, with_tags, shallow, revisions, break_repo_locks,
355
- disable_syntax_validation, gerrit_repo, gerrit_ref, gerrit_reset,
356
- gerrit_rebase_patch_ref, apply_patch_on_gclient):
346
+ with_branch_heads, with_tags, revisions, break_repo_locks,
347
+ disable_syntax_validation, patch_refs, gerrit_reset,
348
+ gerrit_rebase_patch_ref):
357
349
  # We just need to allocate a filename.
358
350
  fd, gclient_output_file = tempfile.mkstemp(suffix='.json')
359
351
  os.close(fd)
360
352
 
361
353
  args = ['sync', '--verbose', '--reset', '--force',
362
- '--ignore_locks', '--output-json', gclient_output_file,
363
- '--nohooks', '--noprehooks', '--delete_unversioned_trees']
354
+ '--ignore_locks', '--output-json', gclient_output_file,
355
+ '--nohooks', '--noprehooks', '--delete_unversioned_trees']
364
356
  if with_branch_heads:
365
357
  args += ['--with_branch_heads']
366
358
  if with_tags:
367
359
  args += ['--with_tags']
368
- if shallow:
369
- args += ['--shallow']
370
360
  if break_repo_locks:
371
361
  args += ['--break_repo_locks']
372
362
  if disable_syntax_validation:
@@ -376,10 +366,9 @@ def gclient_sync(
376
366
  revision = 'origin/master'
377
367
  args.extend(['--revision', '%s@%s' % (name, revision)])
378
368
 
379
- if apply_patch_on_gclient and gerrit_repo and gerrit_ref:
380
- # TODO(ehmaldonado): Merge gerrit_repo and gerrit_ref into a patch-ref flag
381
- # and add support for passing multiple patch refs.
382
- args.extend(['--patch-ref', gerrit_repo + '@' + gerrit_ref])
369
+ if patch_refs:
370
+ for patch_ref in patch_refs:
371
+ args.extend(['--patch-ref', patch_ref])
383
372
  if not gerrit_reset:
384
373
  args.append('--no-reset-patch-ref')
385
374
  if not gerrit_rebase_patch_ref:
@@ -390,7 +379,7 @@ def gclient_sync(
390
379
  except SubprocessFailed as e:
391
380
  # If gclient sync is handling patching, parse the output for a patch error
392
381
  # message.
393
- if apply_patch_on_gclient and PATCH_ERROR_RE.search(e.output):
382
+ if 'Failed to apply patch.' in e.output:
394
383
  raise PatchFailed(e.message, e.code, e.output)
395
384
  # Throw a GclientSyncFailed exception so we can catch this independently.
396
385
  raise GclientSyncFailed(e.message, e.code, e.output)
@@ -446,7 +435,7 @@ def create_manifest_old():
446
435
 
447
436
 
448
437
  # TODO(hinoka): Include patch revision.
449
- def create_manifest(gclient_output, patch_root, gerrit_ref):
438
+ def create_manifest(gclient_output, patch_root):
450
439
  """Return the JSONPB equivilent of the source manifest proto.
451
440
 
452
441
  The source manifest proto is defined here:
@@ -483,8 +472,6 @@ def create_manifest(gclient_output, patch_root, gerrit_ref):
483
472
  'revision': revision,
484
473
  }
485
474
  }
486
- if patch_root == directory:
487
- dirs[directory]['git_checkout']['patch_fetch_ref'] = gerrit_ref
488
475
 
489
476
  manifest['directories'] = dirs
490
477
  return manifest
@@ -560,7 +547,9 @@ def _get_target_branch_and_revision(solution_name, git_url, revisions):
560
547
  if len(parts) == 2:
561
548
  # Support for "branch:revision" syntax.
562
549
  return parts
563
- return 'master', configured
550
+ if COMMIT_HASH_RE.match(configured):
551
+ return 'master', configured
552
+ return configured, 'HEAD'
564
553
 
565
554
 
566
555
  def get_target_pin(solution_name, git_url, revisions):
@@ -584,7 +573,10 @@ def force_solution_revision(solution_name, git_url, revisions, cwd):
584
573
  # This will also not work if somebody passes a local refspec like
585
574
  # refs/heads/master. It needs to translate to refs/remotes/origin/master
586
575
  # first. See also https://crbug.com/740456 .
587
- treeish = branch if branch.startswith('refs/') else 'origin/%s' % branch
576
+ if branch.startswith(('refs/', 'origin/')):
577
+ treeish = branch
578
+ else:
579
+ treeish = 'origin/' + branch
588
580
 
589
581
  # Note that -- argument is necessary to ensure that git treats `treeish`
590
582
  # argument as revision or ref, and not as a file/directory which happens to
@@ -592,13 +584,15 @@ def force_solution_revision(solution_name, git_url, revisions, cwd):
592
584
  git('checkout', '--force', treeish, '--', cwd=cwd)
593
585
 
594
586
 
595
- def _has_in_git_cache(revision_sha1, git_cache_dir, url):
587
+ def _has_in_git_cache(revision_sha1, refs, git_cache_dir, url):
596
588
  """Returns whether given revision_sha1 is contained in cache of a given repo.
597
589
  """
598
590
  try:
599
591
  mirror_dir = git(
600
592
  'cache', 'exists', '--quiet', '--cache-dir', git_cache_dir, url).strip()
601
593
  git('cat-file', '-e', revision_sha1, cwd=mirror_dir)
594
+ for ref in refs:
595
+ git('cat-file', '-e', ref, cwd=mirror_dir)
602
596
  return True
603
597
  except SubprocessFailed:
604
598
  return False
@@ -637,14 +631,12 @@ def _maybe_break_locks(checkout_path, tries=3):
637
631
 
638
632
 
639
633
 
640
- def git_checkouts(solutions, revisions, shallow, refs, git_cache_dir,
641
- cleanup_dir):
634
+ def git_checkouts(solutions, revisions, refs, git_cache_dir, cleanup_dir):
642
635
  build_dir = os.getcwd()
643
636
  first_solution = True
644
637
  for sln in solutions:
645
638
  sln_dir = path.join(build_dir, sln['name'])
646
- _git_checkout(sln, sln_dir, revisions, shallow, refs, git_cache_dir,
647
- cleanup_dir)
639
+ _git_checkout(sln, sln_dir, revisions, refs, git_cache_dir, cleanup_dir)
648
640
  if first_solution:
649
641
  git_ref = git('log', '--format=%H', '--max-count=1',
650
642
  cwd=path.join(build_dir, sln['name'])
@@ -653,17 +645,11 @@ def git_checkouts(solutions, revisions, shallow, refs, git_cache_dir,
653
645
  return git_ref
654
646
 
655
647
 
656
- def _git_checkout(sln, sln_dir, revisions, shallow, refs, git_cache_dir,
657
- cleanup_dir):
648
+ def _git_checkout(sln, sln_dir, revisions, refs, git_cache_dir, cleanup_dir):
658
649
  name = sln['name']
659
650
  url = sln['url']
660
- if url == CHROMIUM_SRC_URL or url + '.git' == CHROMIUM_SRC_URL:
661
- # Experiments show there's little to be gained from
662
- # a shallow clone of src.
663
- shallow = False
664
- s = ['--shallow'] if shallow else []
665
651
  populate_cmd = (['cache', 'populate', '--ignore_locks', '-v',
666
- '--cache-dir', git_cache_dir] + s + [url])
652
+ '--cache-dir', git_cache_dir, url, '--reset-fetch-config'])
667
653
  for ref in refs:
668
654
  populate_cmd.extend(['--ref', ref])
669
655
 
@@ -680,7 +666,7 @@ def _git_checkout(sln, sln_dir, revisions, shallow, refs, git_cache_dir,
680
666
  if not pin:
681
667
  # Refresh only once.
682
668
  git(*populate_cmd, env=env)
683
- elif _has_in_git_cache(pin, git_cache_dir, url):
669
+ elif _has_in_git_cache(pin, refs, git_cache_dir, url):
684
670
  # No need to fetch at all, because we already have needed revision.
685
671
  pass
686
672
  else:
@@ -694,7 +680,7 @@ def _git_checkout(sln, sln_dir, revisions, shallow, refs, git_cache_dir,
694
680
  # maintainers of *.googlesource.com (workaround git server replication
695
681
  # lag).
696
682
  git(*populate_cmd, env=env)
697
- if _has_in_git_cache(pin, git_cache_dir, url):
683
+ if _has_in_git_cache(pin, refs, git_cache_dir, url):
698
684
  break
699
685
  overrun = time.time() - soft_deadline
700
686
  # Only kick in deadline after second attempt to ensure we retry at least
@@ -731,6 +717,7 @@ def _git_checkout(sln, sln_dir, revisions, shallow, refs, git_cache_dir,
731
717
  _git_disable_gc(sln_dir)
732
718
  git('remote', 'set-url', 'origin', mirror_dir, cwd=sln_dir)
733
719
  git('fetch', 'origin', cwd=sln_dir)
720
+ git('remote', 'set-url', '--push', 'origin', url, cwd=sln_dir)
734
721
  for ref in refs:
735
722
  refspec = '%s:%s' % (ref, ref.lstrip('+'))
736
723
  git('fetch', 'origin', refspec, cwd=sln_dir)
@@ -770,58 +757,6 @@ def _download(url):
770
757
  raise
771
758
 
772
759
 
773
- def apply_gerrit_ref(gerrit_repo, gerrit_ref, root, gerrit_reset,
774
- gerrit_rebase_patch_ref):
775
- gerrit_repo = gerrit_repo or 'origin'
776
- assert gerrit_ref
777
- base_rev = git('rev-parse', 'HEAD', cwd=root).strip()
778
-
779
- print '===Applying gerrit ref==='
780
- print 'Repo is %r @ %r, ref is %r, root is %r' % (
781
- gerrit_repo, base_rev, gerrit_ref, root)
782
- # TODO(tandrii): move the fix below to common gerrit codepath.
783
- # Speculative fix: prior bot_update run with Rietveld patch may leave git
784
- # index with unmerged paths. bot_update calls 'checkout --force xyz' thus
785
- # ignoring such paths, but potentially never cleaning them up. The following
786
- # command will do so. See http://crbug.com/692067.
787
- git('reset', '--hard', cwd=root)
788
- try:
789
- git('fetch', gerrit_repo, gerrit_ref, cwd=root)
790
- git('checkout', 'FETCH_HEAD', cwd=root)
791
-
792
- if gerrit_rebase_patch_ref:
793
- print '===Rebasing==='
794
- # git rebase requires a branch to operate on.
795
- temp_branch_name = 'tmp/' + uuid.uuid4().hex
796
- try:
797
- ok = False
798
- git('checkout', '-b', temp_branch_name, cwd=root)
799
- try:
800
- git('-c', 'user.name=chrome-bot',
801
- '-c', 'user.email=chrome-bot@chromium.org',
802
- 'rebase', base_rev, cwd=root)
803
- except SubprocessFailed:
804
- # Abort the rebase since there were failures.
805
- git('rebase', '--abort', cwd=root)
806
- raise
807
-
808
- # Get off of the temporary branch since it can't be deleted otherwise.
809
- cur_rev = git('rev-parse', 'HEAD', cwd=root).strip()
810
- git('checkout', cur_rev, cwd=root)
811
- git('branch', '-D', temp_branch_name, cwd=root)
812
- ok = True
813
- finally:
814
- if not ok:
815
- # Get off of the temporary branch since it can't be deleted otherwise.
816
- git('checkout', base_rev, cwd=root)
817
- git('branch', '-D', temp_branch_name, cwd=root)
818
-
819
- if gerrit_reset:
820
- git('reset', '--soft', base_rev, cwd=root)
821
- except SubprocessFailed as e:
822
- raise PatchFailed(e.message, e.code, e.output)
823
-
824
-
825
760
  def get_commit_position(git_path, revision='HEAD'):
826
761
  """Dumps the 'git' log for a specific revision and parses out the commit
827
762
  position.
@@ -881,33 +816,15 @@ def emit_json(out_file, did_run, gclient_output=None, **kwargs):
881
816
 
882
817
 
883
818
  def ensure_checkout(solutions, revisions, first_sln, target_os, target_os_only,
884
- target_cpu, patch_root, gerrit_repo, gerrit_ref,
885
- gerrit_rebase_patch_ref, shallow, refs, git_cache_dir,
886
- cleanup_dir, gerrit_reset, disable_syntax_validation,
887
- apply_patch_on_gclient):
819
+ target_cpu, patch_root, patch_refs,
820
+ gerrit_rebase_patch_ref, refs, git_cache_dir,
821
+ cleanup_dir, gerrit_reset, disable_syntax_validation):
888
822
  # Get a checkout of each solution, without DEPS or hooks.
889
823
  # Calling git directly because there is no way to run Gclient without
890
824
  # invoking DEPS.
891
825
  print 'Fetching Git checkout'
892
826
 
893
- git_checkouts(solutions, revisions, shallow, refs, git_cache_dir, cleanup_dir)
894
-
895
- applied_gerrit_patch = False
896
- if not apply_patch_on_gclient:
897
- print '===Processing patch solutions==='
898
- patch_root = patch_root or ''
899
- print 'Patch root is %r' % patch_root
900
- for solution in solutions:
901
- print 'Processing solution %r' % solution['name']
902
- if (patch_root == solution['name'] or
903
- solution['name'].startswith(patch_root + '/')):
904
- relative_root = solution['name'][len(patch_root) + 1:]
905
- target = '/'.join([relative_root, 'DEPS']).lstrip('/')
906
- print ' relative root is %r, target is %r' % (relative_root, target)
907
- if gerrit_ref:
908
- apply_gerrit_ref(gerrit_repo, gerrit_ref, patch_root, gerrit_reset,
909
- gerrit_rebase_patch_ref)
910
- applied_gerrit_patch = True
827
+ git_checkouts(solutions, revisions, refs, git_cache_dir, cleanup_dir)
911
828
 
912
829
  # Ensure our build/ directory is set up with the correct .gclient file.
913
830
  gclient_configure(solutions, target_os, target_os_only, target_cpu,
@@ -935,29 +852,18 @@ def ensure_checkout(solutions, revisions, first_sln, target_os, target_os_only,
935
852
  gclient_output = gclient_sync(
936
853
  BRANCH_HEADS_REFSPEC in refs,
937
854
  TAGS_REFSPEC in refs,
938
- shallow,
939
855
  gc_revisions,
940
856
  break_repo_locks,
941
857
  disable_syntax_validation,
942
- gerrit_repo,
943
- gerrit_ref,
858
+ patch_refs,
944
859
  gerrit_reset,
945
- gerrit_rebase_patch_ref,
946
- apply_patch_on_gclient)
860
+ gerrit_rebase_patch_ref)
947
861
 
948
862
  # Now that gclient_sync has finished, we should revert any .DEPS.git so that
949
863
  # presubmit doesn't complain about it being modified.
950
864
  if git('ls-files', '.DEPS.git', cwd=first_sln).strip():
951
865
  git('checkout', 'HEAD', '--', '.DEPS.git', cwd=first_sln)
952
866
 
953
- # Apply the rest of the patch here (sans DEPS)
954
- if gerrit_ref and not applied_gerrit_patch and not apply_patch_on_gclient:
955
- # If gerrit_ref was for solution's main repository, it has already been
956
- # applied above. This chunk is executed only for patches to DEPS-ed in
957
- # git repositories.
958
- apply_gerrit_ref(gerrit_repo, gerrit_ref, patch_root, gerrit_reset,
959
- gerrit_rebase_patch_ref)
960
-
961
867
  # Reset the deps_file point in the solutions so that hooks get run properly.
962
868
  for sln in solutions:
963
869
  sln['deps_file'] = sln.get('deps_file', 'DEPS').replace('.DEPS.git', 'DEPS')
@@ -980,11 +886,11 @@ def parse_revisions(revisions, root):
980
886
  # TODO(hinoka): Delete this when webkit switches to recipes.
981
887
  expanded_revisions.extend(revision.split(','))
982
888
  for revision in expanded_revisions:
983
- split_revision = revision.split('@')
889
+ split_revision = revision.split('@', 1)
984
890
  if len(split_revision) == 1:
985
891
  # This is just a plain revision, set it as the revision for root.
986
892
  results[root] = split_revision[0]
987
- elif len(split_revision) == 2:
893
+ else:
988
894
  # This is an alt_root@revision argument.
989
895
  current_root, current_rev = split_revision
990
896
 
@@ -1002,9 +908,7 @@ def parse_revisions(revisions, root):
1002
908
  normalized_root = current_root.strip('/')
1003
909
 
1004
910
  results[normalized_root] = current_rev
1005
- else:
1006
- print ('WARNING: %r is not recognized as a valid revision specification,'
1007
- 'skipping' % revision)
911
+
1008
912
  return results
1009
913
 
1010
914
 
@@ -1014,9 +918,8 @@ def parse_args():
1014
918
  parse.add_option('--root', dest='patch_root',
1015
919
  help='DEPRECATED: Use --patch_root.')
1016
920
  parse.add_option('--patch_root', help='Directory to patch on top of.')
1017
- parse.add_option('--gerrit_repo',
1018
- help='Gerrit repository to pull the ref from.')
1019
- parse.add_option('--gerrit_ref', help='Gerrit ref to apply.')
921
+ parse.add_option('--patch_ref', dest='patch_refs', action='append', default=[],
922
+ help='Git repository & ref to apply, as REPO@REF.')
1020
923
  parse.add_option('--gerrit_no_rebase_patch_ref', action='store_true',
1021
924
  help='Bypass rebase of Gerrit patch ref after checkout.')
1022
925
  parse.add_option('--gerrit_no_reset', action='store_true',
@@ -1038,9 +941,6 @@ def parse_args():
1038
941
  help='Delete checkout first, always')
1039
942
  parse.add_option('--output_json',
1040
943
  help='Output JSON information into a specified file')
1041
- parse.add_option('--maybe_shallow', action='store_true',
1042
- help='Enables turning on shallow mode if total disk '
1043
- 'space is low.')
1044
944
  parse.add_option('--refs', action='append',
1045
945
  help='Also fetch this refspec for the main solution(s). '
1046
946
  'Eg. +refs/branch-heads/*')
@@ -1057,10 +957,6 @@ def parse_args():
1057
957
  parse.add_option(
1058
958
  '--disable-syntax-validation', action='store_true',
1059
959
  help='Disable validation of .gclient and DEPS syntax.')
1060
- parse.add_option('--no-apply-patch-on-gclient',
1061
- dest='apply_patch_on_gclient', action='store_false',
1062
- default=True,
1063
- help='Patch the gerrit ref in gclient instead of here.')
1064
960
 
1065
961
  options, args = parse.parse_args()
1066
962
 
@@ -1116,7 +1012,6 @@ def prepare(options, git_slns, active):
1116
1012
  # Make sure we tell recipes that we didn't run if the script exits here.
1117
1013
  emit_json(options.output_json, did_run=active)
1118
1014
 
1119
- # Do a shallow checkout if the disk is less than 100GB.
1120
1015
  total_disk_space, free_disk_space = get_total_disk_space()
1121
1016
  total_disk_space_gb = int(total_disk_space / (1024 * 1024 * 1024))
1122
1017
  used_disk_space_gb = int((total_disk_space - free_disk_space)
@@ -1125,9 +1020,6 @@ def prepare(options, git_slns, active):
1125
1020
  step_text = '[%dGB/%dGB used (%d%%)]' % (used_disk_space_gb,
1126
1021
  total_disk_space_gb,
1127
1022
  percent_used)
1128
- shallow = (total_disk_space < SHALLOW_CLONE_THRESHOLD
1129
- and options.maybe_shallow)
1130
-
1131
1023
  # The first solution is where the primary DEPS file resides.
1132
1024
  first_sln = dir_names[0]
1133
1025
 
@@ -1135,15 +1027,21 @@ def prepare(options, git_slns, active):
1135
1027
  print 'Revisions: %s' % options.revision
1136
1028
  revisions = parse_revisions(options.revision, first_sln)
1137
1029
  print 'Fetching Git checkout at %s@%s' % (first_sln, revisions[first_sln])
1138
- return revisions, step_text, shallow
1030
+ return revisions, step_text
1139
1031
 
1140
1032
 
1141
- def checkout(options, git_slns, specs, revisions, step_text, shallow):
1033
+ def checkout(options, git_slns, specs, revisions, step_text):
1142
1034
  print 'Using Python version: %s' % (sys.version,)
1143
1035
  print 'Checking git version...'
1144
1036
  ver = git('version').strip()
1145
1037
  print 'Using %s' % ver
1146
1038
 
1039
+ try:
1040
+ protocol = git('config', '--get', 'protocol.version')
1041
+ print 'Using git protocol version %s' % protocol
1042
+ except SubprocessFailed as e:
1043
+ print 'git protocol version is not specified.'
1044
+
1147
1045
  first_sln = git_slns[0]['name']
1148
1046
  dir_names = [sln.get('name') for sln in git_slns if 'name' in sln]
1149
1047
  try:
@@ -1165,18 +1063,15 @@ def checkout(options, git_slns, specs, revisions, step_text, shallow):
1165
1063
 
1166
1064
  # Then, pass in information about how to patch.
1167
1065
  patch_root=options.patch_root,
1168
- gerrit_repo=options.gerrit_repo,
1169
- gerrit_ref=options.gerrit_ref,
1066
+ patch_refs=options.patch_refs,
1170
1067
  gerrit_rebase_patch_ref=not options.gerrit_no_rebase_patch_ref,
1171
1068
 
1172
- # Finally, extra configurations such as shallowness of the clone.
1173
- shallow=shallow,
1069
+ # Finally, extra configurations cleanup dir location.
1174
1070
  refs=options.refs,
1175
1071
  git_cache_dir=options.git_cache_dir,
1176
1072
  cleanup_dir=options.cleanup_dir,
1177
1073
  gerrit_reset=not options.gerrit_no_reset,
1178
- disable_syntax_validation=options.disable_syntax_validation,
1179
- apply_patch_on_gclient=options.apply_patch_on_gclient)
1074
+ disable_syntax_validation=options.disable_syntax_validation)
1180
1075
  gclient_output = ensure_checkout(**checkout_parameters)
1181
1076
  except GclientSyncFailed:
1182
1077
  print 'We failed gclient sync, lets delete the checkout and retry.'
@@ -1225,7 +1120,7 @@ def checkout(options, git_slns, specs, revisions, step_text, shallow):
1225
1120
  properties=got_revisions,
1226
1121
  manifest=create_manifest_old(),
1227
1122
  source_manifest=create_manifest(
1228
- gclient_output, options.patch_root, options.gerrit_ref))
1123
+ gclient_output, options.patch_root))
1229
1124
 
1230
1125
 
1231
1126
  def print_debug_info():
@@ -1270,8 +1165,8 @@ def main():
1270
1165
 
1271
1166
  try:
1272
1167
  # Dun dun dun, the main part of bot_update.
1273
- revisions, step_text, shallow = prepare(options, git_slns, active)
1274
- checkout(options, git_slns, specs, revisions, step_text, shallow)
1168
+ revisions, step_text = prepare(options, git_slns, active)
1169
+ checkout(options, git_slns, specs, revisions, step_text)
1275
1170
 
1276
1171
  except PatchFailed as e:
1277
1172
  # Return a specific non-zero exit code for patch failure (because it is
@@ -8,15 +8,6 @@ from recipe_engine import recipe_test_api
8
8
 
9
9
 
10
10
  class BotUpdateTestApi(recipe_test_api.RecipeTestApi):
11
- def properties(self, apply_patch_on_gclient):
12
- ret = self.test(None)
13
- ret.properties = {
14
- '$depot_tools/bot_update': {
15
- 'apply_patch_on_gclient': apply_patch_on_gclient,
16
- }
17
- }
18
- return ret
19
-
20
11
  def output_json(self, root, first_sln, revision_mapping, fail_patch=False,
21
12
  fixed_revisions=None):
22
13
  """Deterministically synthesize json.output test data for gclient's
@@ -45,11 +36,11 @@ class BotUpdateTestApi(recipe_test_api.RecipeTestApi):
45
36
  })
46
37
  output.update({
47
38
  'manifest': {
48
- project_name: {
49
- 'repository': 'https://fake.org/%s.git' % project_name,
50
- 'revision': self.gen_revision(project_name),
51
- }
52
- for project_name in set(revision_mapping.values())}})
39
+ project_name: {
40
+ 'repository': 'https://fake.org/%s.git' % project_name,
41
+ 'revision': self.gen_revision(project_name),
42
+ }
43
+ for project_name in set(revision_mapping.values())}})
53
44
 
54
45
  output.update({
55
46
  'source_manifest': {