libv8 5.7.492.65.1 → 5.9.211.38.0beta0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (297) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +8 -2
  4. data/CHANGELOG.md +4 -0
  5. data/README.md +4 -3
  6. data/Rakefile +27 -10
  7. data/ext/libv8/builder.rb +4 -0
  8. data/lib/libv8/version.rb +1 -1
  9. data/libv8.gemspec +1 -1
  10. data/patches/0001-Build-a-standalone-static-library.patch +5 -5
  11. data/patches/0002-Don-t-compile-unnecessary-stuff.patch +20 -24
  12. data/patches/0003-Use-the-fPIC-flag-for-the-static-library.patch +5 -5
  13. data/patches/0004-Do-not-embed-debug-symbols-in-macOS-libraries.patch +5 -5
  14. data/patches/0005-Fix-GCC-7-build-errors.patch +147 -0
  15. data/scaleway.png +0 -0
  16. data/vendor/depot_tools/.gitattributes +52 -0
  17. data/vendor/depot_tools/.gitignore +10 -0
  18. data/vendor/depot_tools/README.md +7 -3
  19. data/vendor/depot_tools/apply_issue.bat +4 -3
  20. data/vendor/depot_tools/apply_issue.py +0 -10
  21. data/vendor/depot_tools/autoninja +12 -0
  22. data/vendor/depot_tools/autoninja.bat +9 -0
  23. data/vendor/depot_tools/autoninja.py +70 -0
  24. data/vendor/depot_tools/bootstrap/win/README.md +108 -26
  25. data/vendor/depot_tools/bootstrap/win/git-bash.template.sh +3 -3
  26. data/vendor/depot_tools/bootstrap/win/git.template.bat +2 -2
  27. data/vendor/depot_tools/bootstrap/win/manifest.txt +18 -0
  28. data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +18 -0
  29. data/vendor/depot_tools/bootstrap/win/python27.new.bat +49 -0
  30. data/vendor/depot_tools/bootstrap/win/win_tools.bat +55 -59
  31. data/vendor/depot_tools/bootstrap/win/win_tools.py +335 -0
  32. data/vendor/depot_tools/cipd +16 -2
  33. data/vendor/depot_tools/cipd.bat +20 -2
  34. data/vendor/depot_tools/cipd.ps1 +36 -22
  35. data/vendor/depot_tools/cipd_bin_setup.bat +6 -0
  36. data/vendor/depot_tools/cipd_bin_setup.sh +10 -0
  37. data/vendor/depot_tools/cipd_client_version +1 -1
  38. data/vendor/depot_tools/cipd_manifest.txt +9 -0
  39. data/vendor/depot_tools/cit.bat +12 -11
  40. data/vendor/depot_tools/clang-format.bat +4 -3
  41. data/vendor/depot_tools/clang_format_merge_driver.bat +12 -11
  42. data/vendor/depot_tools/commit_queue.bat +4 -3
  43. data/vendor/depot_tools/cpplint.bat +9 -3
  44. data/vendor/depot_tools/cpplint.py +3 -3
  45. data/vendor/depot_tools/depot-tools-auth.bat +4 -3
  46. data/vendor/depot_tools/download_from_google_storage.bat +5 -3
  47. data/vendor/depot_tools/download_from_google_storage.py +6 -1
  48. data/vendor/depot_tools/fetch.bat +5 -4
  49. data/vendor/depot_tools/fetch.py +4 -5
  50. data/vendor/depot_tools/gclient-new-workdir.py +82 -46
  51. data/vendor/depot_tools/gclient.bat +5 -4
  52. data/vendor/depot_tools/gclient.py +713 -319
  53. data/vendor/depot_tools/gclient_eval.py +284 -0
  54. data/vendor/depot_tools/gclient_utils.py +70 -4
  55. data/vendor/depot_tools/gerrit_client.py +26 -1
  56. data/vendor/depot_tools/gerrit_util.py +120 -127
  57. data/vendor/depot_tools/git-crrev-parse +1 -0
  58. data/vendor/depot_tools/git-gs +1 -1
  59. data/vendor/depot_tools/git_cl.py +731 -415
  60. data/vendor/depot_tools/git_common.py +23 -3
  61. data/vendor/depot_tools/git_drover.py +10 -1
  62. data/vendor/depot_tools/git_footers.py +62 -22
  63. data/vendor/depot_tools/git_hyper_blame.py +3 -2
  64. data/vendor/depot_tools/git_map.py +30 -3
  65. data/vendor/depot_tools/git_map_branches.py +18 -4
  66. data/vendor/depot_tools/git_number.py +8 -2
  67. data/vendor/depot_tools/git_retry.py +21 -0
  68. data/vendor/depot_tools/gn.bat +4 -3
  69. data/vendor/depot_tools/infra/config/cq.cfg +1 -5
  70. data/vendor/depot_tools/infra/config/recipes.cfg +18 -16
  71. data/vendor/depot_tools/led +12 -0
  72. data/vendor/depot_tools/led.bat +7 -0
  73. data/vendor/depot_tools/man/html/git-cl.html +9 -1
  74. data/vendor/depot_tools/man/html/git-drover.html +22 -18
  75. data/vendor/depot_tools/man/man1/git-cl.1 +8 -3
  76. data/vendor/depot_tools/man/man1/git-drover.1 +22 -20
  77. data/vendor/depot_tools/man/src/git-cl.txt +3 -0
  78. data/vendor/depot_tools/man/src/git-drover.txt +8 -0
  79. data/vendor/depot_tools/my_activity.py +8 -5
  80. data/vendor/depot_tools/owners.py +103 -11
  81. data/vendor/depot_tools/owners_finder.py +14 -2
  82. data/vendor/depot_tools/presubmit_canned_checks.py +25 -67
  83. data/vendor/depot_tools/presubmit_support.py +87 -35
  84. data/vendor/depot_tools/recipes/OWNERS +2 -0
  85. data/vendor/depot_tools/recipes/README.recipes.md +842 -0
  86. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +5 -3
  87. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +181 -60
  88. data/vendor/depot_tools/recipes/recipe_modules/bot_update/{example.expected → examples/full.expected}/apply_gerrit_ref.json +4 -2
  89. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +82 -0
  90. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +149 -0
  91. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/buildbot.json +82 -0
  92. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +149 -0
  93. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +122 -0
  94. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +149 -0
  95. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +149 -0
  96. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_shallow.json +149 -0
  97. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +148 -0
  98. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange.json +150 -0
  99. data/vendor/depot_tools/recipes/recipe_modules/bot_update/{example.expected → examples/full.expected}/trychange_oauth2.json +0 -0
  100. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange_oauth2_buildbot.json +152 -0
  101. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange_oauth2_json.json +150 -0
  102. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange_oauth2_json_win.json +150 -0
  103. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob.json +156 -0
  104. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +91 -0
  105. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +118 -0
  106. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +118 -0
  107. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +202 -0
  108. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle_deprecated.json +158 -0
  109. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +196 -0
  110. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8.json +202 -0
  111. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +202 -0
  112. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +162 -0
  113. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +162 -0
  114. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +149 -0
  115. data/vendor/depot_tools/recipes/recipe_modules/bot_update/{example.py → examples/full.py} +46 -8
  116. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +139 -133
  117. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +25 -13
  118. data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +40 -9
  119. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/basic.json +0 -0
  120. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/basic_pkg.json +1 -1
  121. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/describe-failed.json +0 -0
  122. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/describe-many-instances.json +0 -0
  123. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/mac64.json +0 -0
  124. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/pkg_bad_file.json +1 -1
  125. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/pkg_bad_mode.json +0 -0
  126. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/pkg_bad_verfile.json +0 -0
  127. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/win64.json +0 -0
  128. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.py → examples/full.py} +1 -0
  129. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +7 -0
  130. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +7 -0
  131. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +14 -0
  132. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +14 -0
  133. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +14 -0
  134. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +14 -0
  135. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +14 -0
  136. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +14 -0
  137. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +14 -0
  138. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +14 -0
  139. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.py +59 -0
  140. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +5 -0
  141. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/{example.expected → examples/full.expected}/basic.json +7 -0
  142. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/{example.expected → examples/full.expected}/win.json +7 -0
  143. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/{example.py → examples/full.py} +2 -0
  144. data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +1 -4
  145. data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +28 -14
  146. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +10 -235
  147. data/vendor/depot_tools/recipes/recipe_modules/gclient/{example.expected → examples/full.expected}/basic.json +9 -9
  148. data/vendor/depot_tools/recipes/recipe_modules/gclient/{example.expected → examples/full.expected}/buildbot.json +9 -9
  149. data/vendor/depot_tools/recipes/recipe_modules/gclient/{example.expected → examples/full.expected}/revision.json +9 -9
  150. data/vendor/depot_tools/recipes/recipe_modules/gclient/{example.expected → examples/full.expected}/tryserver.json +9 -9
  151. data/vendor/depot_tools/recipes/recipe_modules/gclient/{example.py → examples/full.py} +5 -21
  152. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +45 -0
  153. data/vendor/depot_tools/recipes/recipe_modules/gerrit/__init__.py +1 -0
  154. data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +97 -2
  155. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +283 -0
  156. data/vendor/depot_tools/recipes/recipe_modules/gerrit/{example.py → examples/full.py} +31 -2
  157. data/vendor/depot_tools/recipes/recipe_modules/gerrit/test_api.py +30 -1
  158. data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +1 -4
  159. data/vendor/depot_tools/recipes/recipe_modules/git/api.py +7 -35
  160. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic.json +3 -3
  161. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic_branch.json +3 -3
  162. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic_file_name.json +3 -3
  163. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic_hash.json +3 -3
  164. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic_ref.json +3 -3
  165. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic_submodule_update_force.json +3 -3
  166. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/can_fail_build.json +1 -1
  167. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/cannot_fail_build.json +3 -3
  168. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/cat-file_test.json +3 -3
  169. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/count-objects_delta.json +3 -3
  170. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/count-objects_failed.json +3 -3
  171. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/count-objects_with_bad_output.json +3 -3
  172. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/count-objects_with_bad_output_fails_build.json +1 -1
  173. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/curl_trace_file.json +3 -3
  174. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/git-cache-checkout.json +6 -6
  175. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +223 -0
  176. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/rebase_failed.json +3 -3
  177. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/remote_not_origin.json +3 -3
  178. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/set_got_revision.json +3 -3
  179. data/vendor/depot_tools/recipes/recipe_modules/git/{example.py → examples/full.py} +2 -1
  180. data/vendor/depot_tools/recipes/recipe_modules/git/resources/git_setup.py +12 -21
  181. data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +1 -4
  182. data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +13 -11
  183. data/vendor/depot_tools/recipes/recipe_modules/git_cl/{example.expected → examples/full.expected}/basic.json +0 -0
  184. data/vendor/depot_tools/recipes/recipe_modules/git_cl/{example.py → examples/full.py} +4 -2
  185. data/vendor/depot_tools/recipes/recipe_modules/gitiles/OWNERS +3 -0
  186. data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +7 -0
  187. data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +135 -0
  188. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +537 -0
  189. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +61 -0
  190. data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +192 -0
  191. data/vendor/depot_tools/recipes/recipe_modules/gitiles/test_api.py +95 -0
  192. data/vendor/depot_tools/recipes/recipe_modules/gsutil/{example.expected → examples/full.expected}/basic.json +0 -0
  193. data/vendor/depot_tools/recipes/recipe_modules/gsutil/{example.py → examples/full.py} +0 -0
  194. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/__init__.py +0 -3
  195. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/basic.json +3 -2
  196. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/paths_buildbot_linux.json +3 -2
  197. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/paths_buildbot_mac.json +3 -2
  198. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/paths_buildbot_win.json +3 -2
  199. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/paths_generic_linux.json +3 -2
  200. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/paths_generic_mac.json +3 -2
  201. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +16 -0
  202. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +16 -0
  203. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +16 -0
  204. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +16 -0
  205. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.py → examples/full.py} +2 -1
  206. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +12 -3
  207. data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +1 -0
  208. data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +2 -2
  209. data/vendor/depot_tools/recipes/recipe_modules/presubmit/{example.expected → examples/full.expected}/basic.json +1 -1
  210. data/vendor/depot_tools/recipes/recipe_modules/presubmit/{example.py → examples/full.py} +0 -0
  211. data/vendor/depot_tools/recipes/recipe_modules/rietveld/__init__.py +0 -4
  212. data/vendor/depot_tools/recipes/recipe_modules/rietveld/{example.expected → examples/full.expected}/basic.json +0 -0
  213. data/vendor/depot_tools/recipes/recipe_modules/rietveld/{example.expected → examples/full.expected}/buildbot.json +0 -0
  214. data/vendor/depot_tools/recipes/recipe_modules/rietveld/examples/full.expected/no_auth.json +27 -0
  215. data/vendor/depot_tools/recipes/recipe_modules/rietveld/{example.py → examples/full.py} +9 -1
  216. data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +3 -5
  217. data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +21 -96
  218. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/basic_tags.json +0 -0
  219. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/set_failure_hash_with_no_steps.json +0 -0
  220. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +56 -0
  221. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected/with_gerrit_patch_deprecated.json → examples/full.expected/with_git_patch.json} +2 -2
  222. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected/with_gerrit_patch.json → examples/full.expected/with_git_patch_luci.json} +2 -2
  223. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/with_rietveld_patch.json +0 -20
  224. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/with_rietveld_patch_new.json +0 -20
  225. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/with_wrong_patch.json +1 -13
  226. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/with_wrong_patch_new.json +1 -13
  227. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.py → examples/full.py} +3 -17
  228. data/vendor/depot_tools/recipes/recipes.py +141 -96
  229. data/vendor/depot_tools/rietveld.py +8 -1
  230. data/vendor/depot_tools/roll-dep-svn.bat +12 -10
  231. data/vendor/depot_tools/roll-dep.bat +5 -3
  232. data/vendor/depot_tools/scm.py +8 -1
  233. data/vendor/depot_tools/setup_color.py +0 -0
  234. data/vendor/depot_tools/split_cl.py +193 -0
  235. data/vendor/depot_tools/third_party/schema/.editorconfig +15 -0
  236. data/vendor/depot_tools/third_party/schema/.gitignore +174 -0
  237. data/vendor/depot_tools/third_party/schema/.travis.yml +37 -0
  238. data/vendor/depot_tools/third_party/schema/LICENSE-MIT +19 -0
  239. data/vendor/depot_tools/third_party/schema/MANIFEST.in +1 -0
  240. data/vendor/depot_tools/third_party/schema/README.chromium +12 -0
  241. data/vendor/depot_tools/third_party/schema/README.rst +382 -0
  242. data/vendor/depot_tools/third_party/schema/__init__.py +1 -0
  243. data/vendor/depot_tools/third_party/schema/schema.py +338 -0
  244. data/vendor/depot_tools/third_party/schema/setup.cfg +5 -0
  245. data/vendor/depot_tools/third_party/schema/setup.py +30 -0
  246. data/vendor/depot_tools/third_party/schema/test_schema.py +556 -0
  247. data/vendor/depot_tools/third_party/schema/tox.ini +33 -0
  248. data/vendor/depot_tools/third_party/upload.py +4 -0
  249. data/vendor/depot_tools/update_depot_tools +4 -16
  250. data/vendor/depot_tools/update_depot_tools.bat +4 -17
  251. data/vendor/depot_tools/update_depot_tools_toggle.py +38 -0
  252. data/vendor/depot_tools/vpython +12 -0
  253. data/vendor/depot_tools/vpython.bat +7 -0
  254. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +17 -5
  255. data/vendor/depot_tools/win_toolchain/package_from_installed.py +63 -33
  256. metadata +161 -113
  257. data/vendor/depot_tools/bootstrap/gclient.bat +0 -22
  258. data/vendor/depot_tools/bootstrap/win/get_file.js +0 -119
  259. data/vendor/depot_tools/bootstrap/win/git_bootstrap.py +0 -193
  260. data/vendor/depot_tools/bootstrap/win/git_version.txt +0 -1
  261. data/vendor/depot_tools/bootstrap/win/git_version_bleeding_edge.txt +0 -1
  262. data/vendor/depot_tools/bootstrap/win/python276.new.bat +0 -8
  263. data/vendor/depot_tools/bootstrap/win/svn.new.bat +0 -4
  264. data/vendor/depot_tools/bootstrap/win/svnversion.new.bat +0 -4
  265. data/vendor/depot_tools/bootstrap/win/unzip.js +0 -91
  266. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/basic.json +0 -53
  267. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/basic_output_manifest.json +0 -60
  268. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/basic_with_branch_heads.json +0 -54
  269. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/buildbot.json +0 -53
  270. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/clobber.json +0 -54
  271. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/gerrit_no_rebase_patch_ref.json +0 -54
  272. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/gerrit_no_reset.json +0 -54
  273. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/no_shallow.json +0 -54
  274. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/reset_root_solution_revision.json +0 -53
  275. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/trychange.json +0 -55
  276. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/trychange_oauth2_buildbot.json +0 -57
  277. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/trychange_oauth2_json.json +0 -55
  278. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/trychange_oauth2_json_win.json +0 -55
  279. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob.json +0 -59
  280. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_fail.json +0 -62
  281. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_fail_patch.json +0 -83
  282. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_fail_patch_download.json +0 -84
  283. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_gerrit_angle.json +0 -60
  284. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_gerrit_angle_deprecated.json +0 -60
  285. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_v8.json +0 -62
  286. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_v8_head_by_default.json +0 -62
  287. data/vendor/depot_tools/recipes/recipe_modules/gclient/bundle_extra_paths.txt +0 -4
  288. data/vendor/depot_tools/recipes/recipe_modules/gerrit/example.expected/basic.json +0 -66
  289. data/vendor/depot_tools/recipes/recipe_modules/git/bundle_extra_paths.txt +0 -28
  290. data/vendor/depot_tools/recipes/recipe_modules/git/example.expected/platform_win.json +0 -237
  291. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/example.expected/paths_generic_win.json +0 -15
  292. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/example.expected/paths_kitchen_linux.json +0 -15
  293. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/example.expected/paths_kitchen_mac.json +0 -15
  294. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/example.expected/paths_kitchen_win.json +0 -15
  295. data/vendor/depot_tools/recipes/recipe_modules/presubmit/bundle_extra_paths.txt +0 -30
  296. data/vendor/depot_tools/recipes/recipe_modules/tryserver/example.expected/with_git_patch.json +0 -109
  297. data/vendor/depot_tools/recipes/recipe_modules/tryserver/example.expected/with_git_patch_luci.json +0 -8
@@ -6,12 +6,12 @@
6
6
  "--cached",
7
7
  "--name-only"
8
8
  ],
9
- "cwd": "[START_DIR]",
9
+ "cwd": "[START_DIR]/v8",
10
10
  "infra_step": true,
11
11
  "name": "git diff to analyze patch",
12
12
  "stdout": "/path/to/tmp/",
13
13
  "~followup_annotations": [
14
- "@@@STEP_LOG_LINE@files@foo.cc@@@",
14
+ "@@@STEP_LOG_LINE@files@v8/foo.cc@@@",
15
15
  "@@@STEP_LOG_END@files@@@",
16
16
  "@@@SET_BUILD_PROPERTY@failure_type@\"INVALID_TEST_RESULTS\"@@@",
17
17
  "@@@SET_BUILD_PROPERTY@subproject_tag@\"v8\"@@@"
@@ -6,12 +6,12 @@
6
6
  "--cached",
7
7
  "--name-only"
8
8
  ],
9
- "cwd": "[START_DIR]",
9
+ "cwd": "[START_DIR]/v8",
10
10
  "infra_step": true,
11
11
  "name": "git diff to analyze patch",
12
12
  "stdout": "/path/to/tmp/",
13
13
  "~followup_annotations": [
14
- "@@@STEP_LOG_LINE@files@foo.cc@@@",
14
+ "@@@STEP_LOG_LINE@files@v8/foo.cc@@@",
15
15
  "@@@STEP_LOG_END@files@@@",
16
16
  "@@@SET_BUILD_PROPERTY@failure_type@\"INVALID_TEST_RESULTS\"@@@",
17
17
  "@@@SET_BUILD_PROPERTY@subproject_tag@\"v8\"@@@"
@@ -1,24 +1,4 @@
1
1
  [
2
- {
3
- "cmd": [
4
- "python",
5
- "-u",
6
- "RECIPE_PACKAGE_REPO[depot_tools]/apply_issue.py",
7
- "-r",
8
- "[START_DIR]",
9
- "-i",
10
- "12853011",
11
- "-p",
12
- "1",
13
- "-s",
14
- "https://codereview.chromium.org",
15
- "--no-auth"
16
- ],
17
- "name": "apply_issue",
18
- "~followup_annotations": [
19
- "@@@STEP_LINK@Applied issue 12853011@https://codereview.chromium.org/12853011@@@"
20
- ]
21
- },
22
2
  {
23
3
  "cmd": [
24
4
  "RECIPE_PACKAGE_REPO[depot_tools]/git_cl.py",
@@ -1,24 +1,4 @@
1
1
  [
2
- {
3
- "cmd": [
4
- "python",
5
- "-u",
6
- "RECIPE_PACKAGE_REPO[depot_tools]/apply_issue.py",
7
- "-r",
8
- "[START_DIR]",
9
- "-i",
10
- "12853011",
11
- "-p",
12
- "1",
13
- "-s",
14
- "https://codereview.chromium.org",
15
- "--no-auth"
16
- ],
17
- "name": "apply_issue",
18
- "~followup_annotations": [
19
- "@@@STEP_LINK@Applied issue 12853011@https://codereview.chromium.org/12853011@@@"
20
- ]
21
- },
22
2
  {
23
3
  "cmd": [
24
4
  "RECIPE_PACKAGE_REPO[depot_tools]/git_cl.py",
@@ -1,19 +1,7 @@
1
1
  [
2
2
  {
3
3
  "cmd": [
4
- "python",
5
- "-u",
6
- "RECIPE_PACKAGE_REPO[depot_tools]\\bootstrap\\win\\git_bootstrap.py",
7
- "--verbose"
8
- ],
9
- "cwd": "RECIPE_PACKAGE_REPO[depot_tools]",
10
- "infra_step": true,
11
- "name": "ensure git tooling on windows",
12
- "timeout": 300
13
- },
14
- {
15
- "cmd": [
16
- "RECIPE_PACKAGE_REPO[depot_tools]\\git.bat",
4
+ "git",
17
5
  "diff",
18
6
  "--cached",
19
7
  "--name-only"
@@ -1,19 +1,7 @@
1
1
  [
2
2
  {
3
3
  "cmd": [
4
- "python",
5
- "-u",
6
- "RECIPE_PACKAGE_REPO[depot_tools]\\bootstrap\\win\\git_bootstrap.py",
7
- "--verbose"
8
- ],
9
- "cwd": "RECIPE_PACKAGE_REPO[depot_tools]",
10
- "infra_step": true,
11
- "name": "ensure git tooling on windows",
12
- "timeout": 300
13
- },
14
- {
15
- "cmd": [
16
- "RECIPE_PACKAGE_REPO[depot_tools]\\git.bat",
4
+ "git",
17
5
  "diff",
18
6
  "--cached",
19
7
  "--name-only"
@@ -28,8 +28,7 @@ def RunSteps(api):
28
28
  'Foo', api.properties['patch_text']))])
29
29
  return
30
30
 
31
- api.tryserver.maybe_apply_issue()
32
- if api.tryserver.can_apply_issue:
31
+ if api.tryserver.can_apply_issue or api.tryserver.is_gerrit_issue:
33
32
  api.tryserver.get_footers()
34
33
  api.tryserver.get_files_affected_by_patch(
35
34
  api.properties.get('test_patch_root'))
@@ -42,6 +41,8 @@ def RunSteps(api):
42
41
  api.tryserver.set_test_failure_tryjob_result()
43
42
  api.tryserver.set_invalid_test_results_tryjob_result()
44
43
 
44
+ api.tryserver.normalize_footer_name('Cr-Commit-Position')
45
+
45
46
  with api.tryserver.set_failure_hash():
46
47
  api.python.failing_step('fail', 'foo')
47
48
 
@@ -74,21 +75,6 @@ def GenTests(api):
74
75
  api.properties.tryserver(test_patch_root='sub/project') +
75
76
  description_step)
76
77
 
77
- yield api.test('with_gerrit_patch_deprecated') + api.properties.tryserver(
78
- patch_project='infra/infra',
79
- gerrit='https://chromium-review.googlesource.com',
80
- patch_storage='gerrit',
81
- repository='https://chromium.googlesource.com/infra/infra',
82
- rietveld=None,
83
- **{
84
- 'event.change.id': 'infra%2Finfra~master~Ideadbeaf',
85
- 'event.change.number': 338811,
86
- 'event.change.url':
87
- 'https://chromium-review.googlesource.com/#/c/338811',
88
- 'event.patchSet.ref': 'refs/changes/11/338811/3',
89
- }
90
- )
91
-
92
78
  yield (api.test('with_gerrit_patch') +
93
79
  api.properties.tryserver(gerrit_project='infra/infra'))
94
80
 
@@ -1,51 +1,57 @@
1
1
  #!/usr/bin/env python
2
2
 
3
- # Copyright 2016 The LUCI Authors. All rights reserved.
3
+ # Copyright 2017 The LUCI Authors. All rights reserved.
4
4
  # Use of this source code is governed under the Apache License, Version 2.0
5
5
  # that can be found in the LICENSE file.
6
6
 
7
7
  """Bootstrap script to clone and forward to the recipe engine tool.
8
8
 
9
- ***********************************************************************
10
- ** DO NOT MODIFY EXCEPT IN THE PER-REPO CONFIGURATION SECTION BELOW. **
11
- ***********************************************************************
9
+ *******************
10
+ ** DO NOT MODIFY **
11
+ *******************
12
12
 
13
13
  This is a copy of https://github.com/luci/recipes-py/blob/master/doc/recipes.py.
14
- To fix bugs, fix in the github repo then copy it back to here and fix the
15
- PER-REPO CONFIGURATION section to look like this one.
14
+ To fix bugs, fix in the github repo then run the autoroller.
16
15
  """
17
16
 
18
- import os
19
-
20
- # IMPORTANT: Do not alter the header or footer line for the
21
- # "PER-REPO CONFIGURATION" section below, or the autoroller will not be able
22
- # to automatically update this file! All lines between the header and footer
23
- # lines will be retained verbatim by the autoroller.
24
-
25
- #### PER-REPO CONFIGURATION (editable) ####
26
- # The root of the repository relative to the directory of this file.
27
- REPO_ROOT = os.path.join(os.pardir)
28
- # The path of the recipes.cfg file relative to the root of the repository.
29
- RECIPES_CFG = os.path.join('infra', 'config', 'recipes.cfg')
30
- #### END PER-REPO CONFIGURATION ####
31
-
32
- BOOTSTRAP_VERSION = 1
33
-
34
17
  import argparse
35
18
  import json
36
19
  import logging
20
+ import os
37
21
  import random
38
22
  import subprocess
39
23
  import sys
40
24
  import time
41
25
  import urlparse
42
26
 
27
+ from collections import namedtuple
28
+
43
29
  from cStringIO import StringIO
44
30
 
31
+ # The dependency entry for the recipe_engine in the client repo's recipes.cfg
32
+ #
33
+ # url (str) - the url to the engine repo we want to use.
34
+ # revision (str) - the git revision for the engine to get.
35
+ # path_override (str) - the subdirectory in the engine repo we should use to
36
+ # find it's recipes.py entrypoint. This is here for completeness, but will
37
+ # essentially always be empty. It would be used if the recipes-py repo was
38
+ # merged as a subdirectory of some other repo and you depended on that
39
+ # subdirectory.
40
+ # branch (str) - the branch to fetch for the engine as an absolute ref (e.g.
41
+ # refs/heads/master)
42
+ # repo_type ("GIT"|"GITILES") - An ignored enum which will be removed soon.
43
+ EngineDep = namedtuple('EngineDep',
44
+ 'url revision path_override branch repo_type')
45
+
46
+
47
+ class MalformedRecipesCfg(Exception):
48
+ def __init__(self, msg, path):
49
+ super(MalformedRecipesCfg, self).__init__('malformed recipes.cfg: %s: %r'
50
+ % (msg, path))
51
+
45
52
 
46
53
  def parse(repo_root, recipes_cfg_path):
47
- """Parse is transitional code which parses a recipes.cfg file as either jsonpb
48
- or as textpb.
54
+ """Parse is a lightweight a recipes.cfg file parser.
49
55
 
50
56
  Args:
51
57
  repo_root (str) - native path to the root of the repo we're trying to run
@@ -53,13 +59,8 @@ def parse(repo_root, recipes_cfg_path):
53
59
  recipes_cfg_path (str) - native path to the recipes.cfg file to process.
54
60
 
55
61
  Returns (as tuple):
56
- engine_url (str) - the url to the engine repo we want to use.
57
- engine_revision (str) - the git revision for the engine to get.
58
- engine_subpath (str) - the subdirectory in the engine repo we should use to
59
- find it's recipes.py entrypoint. This is here for completeness, but will
60
- essentially always be empty. It would be used if the recipes-py repo was
61
- merged as a subdirectory of some other repo and you depended on that
62
- subdirectory.
62
+ engine_dep (EngineDep|None): The recipe_engine dependency, or None, if the
63
+ current repo IS the recipe_engine.
63
64
  recipes_path (str) - native path to where the recipes live inside of the
64
65
  current repo (i.e. the folder containing `recipes/` and/or
65
66
  `recipe_modules`)
@@ -67,18 +68,46 @@ def parse(repo_root, recipes_cfg_path):
67
68
  with open(recipes_cfg_path, 'rU') as fh:
68
69
  pb = json.load(fh)
69
70
 
70
- engine = next(
71
- (d for d in pb['deps'] if d['project_id'] == 'recipe_engine'), None)
72
- if engine is None:
73
- raise ValueError('could not find recipe_engine dep in %r'
74
- % recipes_cfg_path)
75
- engine_url = engine['url']
76
- engine_revision = engine.get('revision', '')
77
- engine_subpath = engine.get('path_override', '')
78
- recipes_path = pb.get('recipes_path', '')
71
+ try:
72
+ if pb['api_version'] != 2:
73
+ raise MalformedRecipesCfg('unknown version %d' % pb['api_version'],
74
+ recipes_cfg_path)
79
75
 
80
- recipes_path = os.path.join(repo_root, recipes_path.replace('/', os.path.sep))
81
- return engine_url, engine_revision, engine_subpath, recipes_path
76
+ # If we're running ./doc/recipes.py from the recipe_engine repo itself, then
77
+ # return None to signal that there's no EngineDep.
78
+ if pb['project_id'] == 'recipe_engine':
79
+ return None, pb.get('recipes_path', '')
80
+
81
+ engine = pb['deps']['recipe_engine']
82
+
83
+ if 'url' not in engine:
84
+ raise MalformedRecipesCfg(
85
+ 'Required field "url" in dependency "recipe_engine" not found',
86
+ recipes_cfg_path)
87
+
88
+ engine.setdefault('revision', '')
89
+ engine.setdefault('path_override', '')
90
+ engine.setdefault('branch', 'refs/heads/master')
91
+ recipes_path = pb.get('recipes_path', '')
92
+
93
+ # TODO(iannucci): only support absolute refs
94
+ if not engine['branch'].startswith('refs/'):
95
+ engine['branch'] = 'refs/heads/' + engine['branch']
96
+
97
+ engine.setdefault('repo_type', 'GIT')
98
+ if engine['repo_type'] not in ('GIT', 'GITILES'):
99
+ raise MalformedRecipesCfg(
100
+ 'Unsupported "repo_type" value in dependency "recipe_engine"',
101
+ recipes_cfg_path)
102
+
103
+ recipes_path = os.path.join(
104
+ repo_root, recipes_path.replace('/', os.path.sep))
105
+ return EngineDep(**engine), recipes_path
106
+ except KeyError as ex:
107
+ raise MalformedRecipesCfg(ex.message, recipes_cfg_path)
108
+
109
+
110
+ GIT = 'git.bat' if sys.platform.startswith(('win', 'cygwin')) else 'git'
82
111
 
83
112
 
84
113
  def _subprocess_call(argv, **kwargs):
@@ -86,86 +115,102 @@ def _subprocess_call(argv, **kwargs):
86
115
  return subprocess.call(argv, **kwargs)
87
116
 
88
117
 
89
- def _subprocess_check_call(argv, **kwargs):
118
+ def _git_check_call(argv, **kwargs):
119
+ argv = [GIT]+argv
90
120
  logging.info('Running %r', argv)
91
121
  subprocess.check_call(argv, **kwargs)
92
122
 
93
123
 
94
- def find_engine_override(argv):
95
- """Since the bootstrap process attempts to defer all logic to the recipes-py
96
- repo, we need to be aware if the user is overriding the recipe_engine
97
- dependency. This looks for and returns the overridden recipe_engine path, if
98
- any, or None if the user didn't override it."""
124
+ def _git_output(argv, **kwargs):
125
+ argv = [GIT]+argv
126
+ logging.info('Running %r', argv)
127
+ return subprocess.check_output(argv, **kwargs)
128
+
129
+
130
+ def parse_args(argv):
131
+ """This extracts a subset of the arguments that this bootstrap script cares
132
+ about. Currently this consists of:
133
+ * an override for the recipe engine in the form of `-O recipe_engin=/path`
134
+ * the --package option.
135
+ """
99
136
  PREFIX = 'recipe_engine='
100
137
 
101
- p = argparse.ArgumentParser()
138
+ p = argparse.ArgumentParser(add_help=False)
102
139
  p.add_argument('-O', '--project-override', action='append')
140
+ p.add_argument('--package', type=os.path.abspath)
103
141
  args, _ = p.parse_known_args(argv)
104
142
  for override in args.project_override or ():
105
143
  if override.startswith(PREFIX):
106
- return override[len(PREFIX):]
107
- return None
144
+ return override[len(PREFIX):], args.package
145
+ return None, args.package
108
146
 
109
147
 
110
- def main():
111
- if '--verbose' in sys.argv:
112
- logging.getLogger().setLevel(logging.INFO)
148
+ def checkout_engine(engine_path, repo_root, recipes_cfg_path):
149
+ dep, recipes_path = parse(repo_root, recipes_cfg_path)
150
+ if dep is None:
151
+ # we're running from the engine repo already!
152
+ return os.path.join(repo_root, recipes_path)
113
153
 
114
- if REPO_ROOT is None or RECIPES_CFG is None:
115
- logging.error(
116
- 'In order to use this script, please copy it to your repo and '
117
- 'replace the REPO_ROOT and RECIPES_CFG values with approprite paths.')
118
- sys.exit(1)
154
+ url = dep.url
119
155
 
120
- if sys.platform.startswith(('win', 'cygwin')):
121
- git = 'git.bat'
122
- else:
123
- git = 'git'
156
+ if not engine_path and url.startswith('file://'):
157
+ engine_path = urlparse.urlparse(url).path
124
158
 
125
- # Find the repository and config file to operate on.
126
- repo_root = os.path.abspath(
127
- os.path.join(os.path.dirname(__file__), REPO_ROOT))
128
- recipes_cfg_path = os.path.join(repo_root, RECIPES_CFG)
159
+ if not engine_path:
160
+ revision = dep.revision
161
+ subpath = dep.path_override
162
+ branch = dep.branch
129
163
 
130
- engine_url, engine_revision, engine_subpath, recipes_path = parse(
131
- repo_root, recipes_cfg_path)
164
+ # Ensure that we have the recipe engine cloned.
165
+ engine = os.path.join(recipes_path, '.recipe_deps', 'recipe_engine')
166
+ engine_path = os.path.join(engine, subpath)
132
167
 
133
- engine_path = find_engine_override(sys.argv[1:])
134
- if not engine_path and engine_url.startswith('file://'):
135
- engine_path = urlparse.urlparse(engine_url).path
168
+ with open(os.devnull, 'w') as NUL:
169
+ # Note: this logic mirrors the logic in recipe_engine/fetch.py
170
+ _git_check_call(['init', engine], stdout=NUL)
136
171
 
137
- if not engine_path:
138
- deps_path = os.path.join(recipes_path, '.recipe_deps')
139
- # Ensure that we have the recipe engine cloned.
140
- engine_root_path = os.path.join(deps_path, 'recipe_engine')
141
- engine_path = os.path.join(engine_root_path, engine_subpath)
142
- def ensure_engine():
143
- if not os.path.exists(deps_path):
144
- os.makedirs(deps_path)
145
- if not os.path.exists(engine_root_path):
146
- _subprocess_check_call([git, 'clone', engine_url, engine_root_path])
147
-
148
- needs_fetch = _subprocess_call(
149
- [git, 'rev-parse', '--verify', '%s^{commit}' % engine_revision],
150
- cwd=engine_root_path, stdout=open(os.devnull, 'w'))
151
- if needs_fetch:
152
- _subprocess_check_call([git, 'fetch'], cwd=engine_root_path)
153
- _subprocess_check_call(
154
- [git, 'checkout', '--quiet', engine_revision], cwd=engine_root_path)
172
+ try:
173
+ _git_check_call(['rev-parse', '--verify', '%s^{commit}' % revision],
174
+ cwd=engine, stdout=NUL, stderr=NUL)
175
+ except subprocess.CalledProcessError:
176
+ _git_check_call(['fetch', url, branch], cwd=engine, stdout=NUL,
177
+ stderr=NUL)
155
178
 
156
179
  try:
157
- ensure_engine()
180
+ _git_check_call(['diff', '--quiet', revision], cwd=engine)
158
181
  except subprocess.CalledProcessError:
159
- logging.exception('ensure_engine failed')
182
+ _git_check_call(['reset', '-q', '--hard', revision], cwd=engine)
160
183
 
161
- # Retry errors.
162
- time.sleep(random.uniform(2,5))
163
- ensure_engine()
184
+ return engine_path
185
+
186
+
187
+ def main():
188
+ if '--verbose' in sys.argv:
189
+ logging.getLogger().setLevel(logging.INFO)
190
+
191
+ args = sys.argv[1:]
192
+ engine_override, recipes_cfg_path = parse_args(args)
193
+
194
+ if recipes_cfg_path:
195
+ # calculate repo_root from recipes_cfg_path
196
+ repo_root = os.path.dirname(
197
+ os.path.dirname(
198
+ os.path.dirname(recipes_cfg_path)))
199
+ else:
200
+ # find repo_root with git and calculate recipes_cfg_path
201
+ repo_root = (_git_output(
202
+ ['rev-parse', '--show-toplevel'],
203
+ cwd=os.path.abspath(os.path.dirname(__file__))).strip())
204
+ repo_root = os.path.abspath(repo_root)
205
+ recipes_cfg_path = os.path.join(repo_root, 'infra', 'config', 'recipes.cfg')
206
+ args = ['--package', recipes_cfg_path] + args
207
+
208
+ engine_path = checkout_engine(engine_override, repo_root, recipes_cfg_path)
164
209
 
165
- args = ['--package', recipes_cfg_path] + sys.argv[1:]
166
210
  return _subprocess_call([
167
211
  sys.executable, '-u',
168
212
  os.path.join(engine_path, 'recipes.py')] + args)
169
213
 
214
+
170
215
  if __name__ == '__main__':
171
216
  sys.exit(main())