libv8 4.5.95.5 → 5.0.71.48.0beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (332) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +45 -19
  3. data/CHANGELOG.md +14 -0
  4. data/README.md +30 -15
  5. data/Rakefile +7 -6
  6. data/ext/libv8/arch.rb +5 -4
  7. data/ext/libv8/builder.rb +25 -19
  8. data/ext/libv8/compiler.rb +6 -33
  9. data/ext/libv8/location.rb +7 -8
  10. data/lib/libv8/version.rb +1 -1
  11. data/libv8.gemspec +1 -1
  12. data/patches/build-standalone-static-library.patch +14 -0
  13. data/patches/disable-building-tests.patch +48 -10
  14. data/patches/fPIC-for-static.patch +3 -3
  15. data/release/x86-linux/Vagrantfile +8 -4
  16. data/release/x86_64-freebsd10/Vagrantfile +86 -0
  17. data/release/x86_64-linux/Vagrantfile +8 -4
  18. data/spec/compiler_spec.rb +5 -29
  19. data/spec/support/compiler_helpers.rb +2 -4
  20. data/vendor/depot_tools/.gitignore +15 -3
  21. data/vendor/depot_tools/OWNERS +2 -2
  22. data/vendor/depot_tools/PRESUBMIT.py +4 -2
  23. data/vendor/depot_tools/WATCHLISTS +6 -0
  24. data/vendor/depot_tools/apply_issue.py +70 -38
  25. data/vendor/depot_tools/bootstrap/win/README.md +66 -0
  26. data/vendor/depot_tools/bootstrap/win/git-bash.template.sh +12 -0
  27. data/vendor/depot_tools/bootstrap/win/git.template.bat +5 -0
  28. data/vendor/depot_tools/bootstrap/win/profile.d.python.sh +20 -0
  29. data/vendor/depot_tools/bootstrap/win/win_tools.bat +96 -45
  30. data/vendor/depot_tools/breakpad.py +6 -141
  31. data/vendor/depot_tools/buildbucket.py +45 -31
  32. data/vendor/depot_tools/cbuildbot +1 -0
  33. data/vendor/depot_tools/checkout.py +2 -1
  34. data/vendor/depot_tools/chrome_set_ver +1 -0
  35. data/vendor/depot_tools/cit +8 -0
  36. data/vendor/depot_tools/cit.bat +11 -0
  37. data/vendor/depot_tools/cit.py +120 -0
  38. data/vendor/depot_tools/codereview.settings +0 -2
  39. data/vendor/depot_tools/commit_queue +1 -5
  40. data/vendor/depot_tools/commit_queue.bat +1 -4
  41. data/vendor/depot_tools/commit_queue.py +78 -29
  42. data/vendor/depot_tools/cpplint.py +22 -14
  43. data/vendor/depot_tools/cros +1 -0
  44. data/vendor/depot_tools/cros_sdk +1 -0
  45. data/vendor/depot_tools/depot-tools-auth.py +3 -3
  46. data/vendor/depot_tools/download_from_google_storage.py +101 -21
  47. data/vendor/depot_tools/drover.py +2 -3
  48. data/vendor/depot_tools/fetch.py +31 -27
  49. data/vendor/depot_tools/{recipes → fetch_configs}/android.py +4 -4
  50. data/vendor/depot_tools/fetch_configs/breakpad.py +45 -0
  51. data/vendor/depot_tools/{recipes → fetch_configs}/chromium.py +3 -3
  52. data/vendor/depot_tools/{recipes/recipe_util.py → fetch_configs/config_util.py} +3 -3
  53. data/vendor/depot_tools/fetch_configs/crashpad.py +41 -0
  54. data/vendor/depot_tools/{recipes → fetch_configs}/dart.py +3 -3
  55. data/vendor/depot_tools/{recipes/pdfium.py → fetch_configs/dartino.py} +14 -13
  56. data/vendor/depot_tools/{recipes → fetch_configs}/dartium.py +3 -3
  57. data/vendor/depot_tools/{recipes → fetch_configs}/depot_tools.py +3 -3
  58. data/vendor/depot_tools/fetch_configs/gyp.py +42 -0
  59. data/vendor/depot_tools/{recipes → fetch_configs}/infra.py +3 -3
  60. data/vendor/depot_tools/{recipes → fetch_configs}/infra_internal.py +3 -3
  61. data/vendor/depot_tools/{recipes → fetch_configs}/ios.py +4 -4
  62. data/vendor/depot_tools/{recipes → fetch_configs}/mojo.py +3 -3
  63. data/vendor/depot_tools/{recipes → fetch_configs}/nacl.py +3 -3
  64. data/vendor/depot_tools/{recipes → fetch_configs}/naclports.py +3 -3
  65. data/vendor/depot_tools/fetch_configs/pdfium.py +40 -0
  66. data/vendor/depot_tools/{recipes → fetch_configs}/skia.py +3 -3
  67. data/vendor/depot_tools/{recipes → fetch_configs}/skia_buildbot.py +3 -3
  68. data/vendor/depot_tools/fetch_configs/syzygy.py +41 -0
  69. data/vendor/depot_tools/{recipes → fetch_configs}/v8.py +3 -3
  70. data/vendor/depot_tools/{recipes → fetch_configs}/webrtc.py +3 -3
  71. data/vendor/depot_tools/{recipes → fetch_configs}/webrtc_android.py +4 -4
  72. data/vendor/depot_tools/{recipes → fetch_configs}/webrtc_ios.py +4 -4
  73. data/vendor/depot_tools/fix_encoding.py +6 -6
  74. data/vendor/depot_tools/gcl.py +11 -21
  75. data/vendor/depot_tools/gclient +10 -0
  76. data/vendor/depot_tools/gclient-new-workdir.py +7 -38
  77. data/vendor/depot_tools/gclient.bat +2 -2
  78. data/vendor/depot_tools/gclient.py +85 -65
  79. data/vendor/depot_tools/gclient_scm.py +83 -10
  80. data/vendor/depot_tools/gclient_utils.py +5 -1
  81. data/vendor/depot_tools/gerrit_util.py +243 -26
  82. data/vendor/depot_tools/git-auto-svn +1 -1
  83. data/vendor/depot_tools/git-cache +1 -1
  84. data/vendor/depot_tools/git-cherry-pick-upload +1 -1
  85. data/vendor/depot_tools/git-cl +1 -1
  86. data/vendor/depot_tools/git-drover +6 -0
  87. data/vendor/depot_tools/git-find-releases +6 -0
  88. data/vendor/depot_tools/git-footers +1 -1
  89. data/vendor/depot_tools/git-freeze +1 -1
  90. data/vendor/depot_tools/git-gs +1 -1
  91. data/vendor/depot_tools/git-hyper-blame +6 -0
  92. data/vendor/depot_tools/git-map +1 -1
  93. data/vendor/depot_tools/git-map-branches +1 -1
  94. data/vendor/depot_tools/git-mark-merge-base +1 -1
  95. data/vendor/depot_tools/git-nav-downstream +1 -1
  96. data/vendor/depot_tools/git-new-branch +1 -1
  97. data/vendor/depot_tools/git-number +1 -1
  98. data/vendor/depot_tools/git-rebase-update +1 -1
  99. data/vendor/depot_tools/git-rename-branch +1 -1
  100. data/vendor/depot_tools/git-reparent-branch +1 -1
  101. data/vendor/depot_tools/git-retry +1 -1
  102. data/vendor/depot_tools/git-squash-branch +1 -1
  103. data/vendor/depot_tools/git-thaw +1 -1
  104. data/vendor/depot_tools/git-try +1 -1
  105. data/vendor/depot_tools/git-upstream-diff +1 -1
  106. data/vendor/depot_tools/git_auto_svn.py +24 -6
  107. data/vendor/depot_tools/git_cache.py +74 -27
  108. data/vendor/depot_tools/git_cl.py +2118 -747
  109. data/vendor/depot_tools/git_common.py +100 -6
  110. data/vendor/depot_tools/git_dates.py +62 -0
  111. data/vendor/depot_tools/git_drover.py +424 -0
  112. data/vendor/depot_tools/git_find_releases.py +65 -0
  113. data/vendor/depot_tools/git_footers.py +42 -0
  114. data/vendor/depot_tools/git_hyper_blame.py +391 -0
  115. data/vendor/depot_tools/git_map_branches.py +8 -6
  116. data/vendor/depot_tools/git_new_branch.py +6 -1
  117. data/vendor/depot_tools/git_rebase_update.py +56 -16
  118. data/vendor/depot_tools/git_reparent_branch.py +13 -0
  119. data/vendor/depot_tools/git_try.py +0 -2
  120. data/vendor/depot_tools/gsutil.py +51 -20
  121. data/vendor/depot_tools/infra/config/OWNERS +3 -1
  122. data/vendor/depot_tools/infra/config/cq.cfg +7 -3
  123. data/vendor/depot_tools/infra/config/recipes.cfg +9 -0
  124. data/vendor/depot_tools/luci_hacks/README.md +35 -0
  125. data/vendor/depot_tools/{bootstrap/virtualenv/tests → luci_hacks}/__init__.py +0 -0
  126. data/vendor/depot_tools/luci_hacks/luci_recipe_run.isolate +12 -0
  127. data/vendor/depot_tools/luci_hacks/luci_recipe_run.py +81 -0
  128. data/vendor/depot_tools/luci_hacks/trigger_luci_job.py +128 -0
  129. data/vendor/depot_tools/man/html/depot_tools.html +9 -1
  130. data/vendor/depot_tools/man/html/depot_tools_tutorial.html +4 -4
  131. data/vendor/depot_tools/man/html/git-drover.html +191 -35
  132. data/vendor/depot_tools/man/html/git-hyper-blame.html +878 -0
  133. data/vendor/depot_tools/man/html/git-rebase-update.html +9 -4
  134. data/vendor/depot_tools/man/man1/git-drover.1 +189 -36
  135. data/vendor/depot_tools/man/man1/git-hyper-blame.1 +128 -0
  136. data/vendor/depot_tools/man/man1/git-rebase-update.1 +8 -6
  137. data/vendor/depot_tools/man/man7/depot_tools.7 +9 -4
  138. data/vendor/depot_tools/man/src/_git-hyper-blame_desc.helper.txt +1 -0
  139. data/vendor/depot_tools/man/src/common_demo_functions.sh +5 -0
  140. data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +1 -1
  141. data/vendor/depot_tools/man/src/git-drover.demo.1.sh +11 -16
  142. data/vendor/depot_tools/man/src/git-drover.demo.3.sh +27 -0
  143. data/vendor/depot_tools/man/src/git-drover.demo.4.sh +39 -0
  144. data/vendor/depot_tools/man/src/git-drover.txt +49 -3
  145. data/vendor/depot_tools/man/src/git-hyper-blame.demo.1.sh +3 -0
  146. data/vendor/depot_tools/man/src/git-hyper-blame.demo.2.sh +4 -0
  147. data/vendor/depot_tools/man/src/git-hyper-blame.demo.common.sh +57 -0
  148. data/vendor/depot_tools/man/src/git-hyper-blame.txt +85 -0
  149. data/vendor/depot_tools/man/src/git-rebase-update.txt +5 -1
  150. data/vendor/depot_tools/my_activity.py +6 -21
  151. data/vendor/depot_tools/ninja +2 -2
  152. data/vendor/depot_tools/ninja-linux32 +0 -0
  153. data/vendor/depot_tools/ninja-linux64 +0 -0
  154. data/vendor/depot_tools/ninja-mac +0 -0
  155. data/vendor/depot_tools/ninja.exe +0 -0
  156. data/vendor/depot_tools/presubmit_canned_checks.py +83 -69
  157. data/vendor/depot_tools/presubmit_support.py +126 -42
  158. data/vendor/depot_tools/pylint.py +5 -1
  159. data/vendor/depot_tools/python_runner.sh +55 -0
  160. data/vendor/depot_tools/recipe_modules/bot_update/__init__.py +32 -0
  161. data/vendor/depot_tools/recipe_modules/bot_update/api.py +283 -0
  162. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic.json +56 -0
  163. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic_output_manifest.json +63 -0
  164. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic_with_branch_heads.json +57 -0
  165. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/clobber.json +44 -0
  166. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/forced.json +57 -0
  167. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/gerrit_no_reset.json +44 -0
  168. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/no_shallow.json +44 -0
  169. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/off.json +43 -0
  170. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/reset_root_solution_revision.json +43 -0
  171. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/svn_mode.json +59 -0
  172. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange.json +58 -0
  173. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange_oauth2.json +60 -0
  174. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob.json +58 -0
  175. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail.json +60 -0
  176. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail_patch.json +81 -0
  177. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail_patch_download.json +81 -0
  178. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_gerrit_angle.json +49 -0
  179. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_v8.json +61 -0
  180. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_v8_head_by_default.json +51 -0
  181. data/vendor/depot_tools/recipe_modules/bot_update/example.py +172 -0
  182. data/vendor/depot_tools/{bootstrap/virtualenv/virtualenv_support → recipe_modules/bot_update/resources}/__init__.py +0 -0
  183. data/vendor/depot_tools/recipe_modules/bot_update/resources/bot_update.py +1764 -0
  184. data/vendor/depot_tools/recipe_modules/bot_update/test_api.py +86 -0
  185. data/vendor/depot_tools/recipe_modules/depot_tools/__init__.py +3 -0
  186. data/vendor/depot_tools/recipe_modules/depot_tools/api.py +27 -0
  187. data/vendor/depot_tools/recipe_modules/gclient/__init__.py +10 -0
  188. data/vendor/depot_tools/recipe_modules/gclient/api.py +378 -0
  189. data/vendor/depot_tools/recipe_modules/gclient/config.py +671 -0
  190. data/vendor/depot_tools/recipe_modules/gclient/example.expected/basic.json +172 -0
  191. data/vendor/depot_tools/recipe_modules/gclient/example.expected/revision.json +174 -0
  192. data/vendor/depot_tools/recipe_modules/gclient/example.expected/tryserver.json +185 -0
  193. data/vendor/depot_tools/recipe_modules/gclient/example.py +100 -0
  194. data/vendor/depot_tools/recipe_modules/gclient/test_api.py +37 -0
  195. data/vendor/depot_tools/recipe_modules/git/__init__.py +9 -0
  196. data/vendor/depot_tools/recipe_modules/git/api.py +377 -0
  197. data/vendor/depot_tools/recipe_modules/git/example.expected/basic.json +177 -0
  198. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_branch.json +177 -0
  199. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_file_name.json +179 -0
  200. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_hash.json +176 -0
  201. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_ref.json +177 -0
  202. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_submodule_update_force.json +178 -0
  203. data/vendor/depot_tools/recipe_modules/git/example.expected/can_fail_build.json +153 -0
  204. data/vendor/depot_tools/recipe_modules/git/example.expected/cannot_fail_build.json +181 -0
  205. data/vendor/depot_tools/recipe_modules/git/example.expected/cat-file_test.json +199 -0
  206. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_delta.json +250 -0
  207. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_failed.json +181 -0
  208. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_with_bad_output.json +182 -0
  209. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_with_bad_output_fails_build.json +102 -0
  210. data/vendor/depot_tools/recipe_modules/git/example.expected/curl_trace_file.json +181 -0
  211. data/vendor/depot_tools/recipe_modules/git/example.expected/platform_win.json +186 -0
  212. data/vendor/depot_tools/recipe_modules/git/example.expected/rebase_failed.json +179 -0
  213. data/vendor/depot_tools/recipe_modules/git/example.expected/remote_not_origin.json +179 -0
  214. data/vendor/depot_tools/recipe_modules/git/example.expected/set_got_revision.json +178 -0
  215. data/vendor/depot_tools/recipe_modules/git/example.py +147 -0
  216. data/vendor/depot_tools/recipe_modules/git/resources/git_setup.py +61 -0
  217. data/vendor/depot_tools/recipe_modules/git/test_api.py +18 -0
  218. data/vendor/depot_tools/recipe_modules/git_cl/__init__.py +4 -0
  219. data/vendor/depot_tools/recipe_modules/git_cl/api.py +25 -0
  220. data/vendor/depot_tools/recipe_modules/git_cl/config.py +22 -0
  221. data/vendor/depot_tools/recipe_modules/git_cl/example.expected/basic.json +66 -0
  222. data/vendor/depot_tools/recipe_modules/git_cl/example.py +41 -0
  223. data/vendor/depot_tools/recipe_modules/infra_paths/__init__.py +4 -0
  224. data/vendor/depot_tools/recipe_modules/infra_paths/api.py +12 -0
  225. data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/basic.json +14 -0
  226. data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_buildbot_linux.json +14 -0
  227. data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_buildbot_mac.json +14 -0
  228. data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_buildbot_win.json +14 -0
  229. data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_kitchen_linux.json +14 -0
  230. data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_kitchen_mac.json +14 -0
  231. data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_kitchen_win.json +14 -0
  232. data/vendor/depot_tools/recipe_modules/infra_paths/example.py +28 -0
  233. data/vendor/depot_tools/recipe_modules/infra_paths/path_config.py +45 -0
  234. data/vendor/depot_tools/recipe_modules/presubmit/__init__.py +4 -0
  235. data/vendor/depot_tools/recipe_modules/presubmit/api.py +20 -0
  236. data/vendor/depot_tools/recipe_modules/presubmit/example.expected/basic.json +18 -0
  237. data/vendor/depot_tools/recipe_modules/presubmit/example.py +15 -0
  238. data/vendor/depot_tools/recipe_modules/rietveld/__init__.py +5 -0
  239. data/vendor/depot_tools/recipe_modules/rietveld/api.py +94 -0
  240. data/vendor/depot_tools/recipe_modules/rietveld/example.expected/basic.json +30 -0
  241. data/vendor/depot_tools/recipe_modules/rietveld/example.py +24 -0
  242. data/vendor/depot_tools/recipe_modules/tryserver/__init__.py +15 -0
  243. data/vendor/depot_tools/recipe_modules/tryserver/api.py +280 -0
  244. data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_git_patch.json +104 -0
  245. data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_rietveld_patch.json +58 -0
  246. data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_rietveld_patch_new.json +58 -0
  247. data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_svn_patch.json +68 -0
  248. data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_wrong_patch.json +43 -0
  249. data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_wrong_patch_new.json +43 -0
  250. data/vendor/depot_tools/recipe_modules/tryserver/example.py +53 -0
  251. data/vendor/depot_tools/recipe_modules/tryserver/test_api.py +7 -0
  252. data/vendor/depot_tools/recipes.py +136 -0
  253. data/vendor/depot_tools/repo +1 -1
  254. data/vendor/depot_tools/rietveld.py +46 -15
  255. data/vendor/depot_tools/roll_dep.py +97 -36
  256. data/vendor/depot_tools/scm.py +3 -3
  257. data/vendor/depot_tools/setup_color.py +94 -0
  258. data/vendor/depot_tools/subprocess2.py +10 -1
  259. data/vendor/depot_tools/third_party/cq_client/OWNERS +0 -1
  260. data/vendor/depot_tools/third_party/cq_client/README.md +47 -9
  261. data/vendor/depot_tools/third_party/cq_client/cq.pb.go +617 -0
  262. data/vendor/depot_tools/third_party/cq_client/cq.proto +75 -17
  263. data/vendor/depot_tools/third_party/cq_client/cq_pb2.py +168 -41
  264. data/vendor/depot_tools/third_party/cq_client/testdata/cq_gerrit.cfg +55 -0
  265. data/vendor/depot_tools/third_party/cq_client/{test/cq_example.cfg → testdata/cq_rietveld.cfg} +14 -6
  266. data/vendor/depot_tools/third_party/fancy_urllib/README +5 -4
  267. data/vendor/depot_tools/third_party/fancy_urllib/__init__.py +114 -52
  268. data/vendor/depot_tools/third_party/protobuf26/README.chromium +9 -6
  269. data/vendor/depot_tools/third_party/upload.py +17 -31
  270. data/vendor/depot_tools/trychange.py +0 -2
  271. data/vendor/depot_tools/update_depot_tools +29 -11
  272. data/vendor/depot_tools/update_depot_tools.bat +4 -9
  273. data/vendor/depot_tools/upload_to_google_storage.py +42 -5
  274. data/vendor/depot_tools/win_toolchain/OWNERS +1 -0
  275. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +227 -52
  276. data/vendor/depot_tools/win_toolchain/package_from_installed.py +203 -88
  277. metadata +161 -81
  278. data/patches/arm/do-not-imply-vfp3-and-armv7.patch +0 -16
  279. data/patches/arm/do-not-use-vfp2.patch +0 -13
  280. data/patches/clang51/no-unused-variable.patch +0 -12
  281. data/vendor/depot_tools/bootstrap/.gitignore +0 -2
  282. data/vendor/depot_tools/bootstrap/bootstrap.py +0 -234
  283. data/vendor/depot_tools/bootstrap/deps.pyl +0 -15
  284. data/vendor/depot_tools/bootstrap/util.py +0 -87
  285. data/vendor/depot_tools/bootstrap/virtualenv/.gitignore +0 -10
  286. data/vendor/depot_tools/bootstrap/virtualenv/.travis.yml +0 -28
  287. data/vendor/depot_tools/bootstrap/virtualenv/AUTHORS.txt +0 -91
  288. data/vendor/depot_tools/bootstrap/virtualenv/CONTRIBUTING.rst +0 -21
  289. data/vendor/depot_tools/bootstrap/virtualenv/LICENSE.txt +0 -22
  290. data/vendor/depot_tools/bootstrap/virtualenv/MANIFEST.in +0 -11
  291. data/vendor/depot_tools/bootstrap/virtualenv/README.rst +0 -10
  292. data/vendor/depot_tools/bootstrap/virtualenv/bin/rebuild-script.py +0 -71
  293. data/vendor/depot_tools/bootstrap/virtualenv/docs/changes.rst +0 -747
  294. data/vendor/depot_tools/bootstrap/virtualenv/docs/conf.py +0 -149
  295. data/vendor/depot_tools/bootstrap/virtualenv/docs/development.rst +0 -61
  296. data/vendor/depot_tools/bootstrap/virtualenv/docs/index.rst +0 -137
  297. data/vendor/depot_tools/bootstrap/virtualenv/docs/installation.rst +0 -58
  298. data/vendor/depot_tools/bootstrap/virtualenv/docs/make.bat +0 -170
  299. data/vendor/depot_tools/bootstrap/virtualenv/docs/reference.rst +0 -256
  300. data/vendor/depot_tools/bootstrap/virtualenv/docs/userguide.rst +0 -249
  301. data/vendor/depot_tools/bootstrap/virtualenv/scripts/virtualenv +0 -3
  302. data/vendor/depot_tools/bootstrap/virtualenv/setup.py +0 -111
  303. data/vendor/depot_tools/bootstrap/virtualenv/tests/test_activate.sh +0 -94
  304. data/vendor/depot_tools/bootstrap/virtualenv/tests/test_activate_expected.output +0 -2
  305. data/vendor/depot_tools/bootstrap/virtualenv/tests/test_virtualenv.py +0 -139
  306. data/vendor/depot_tools/bootstrap/virtualenv/tests/tox.ini +0 -12
  307. data/vendor/depot_tools/bootstrap/virtualenv/tox.ini +0 -17
  308. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv.py +0 -2367
  309. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate.bat +0 -26
  310. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate.csh +0 -42
  311. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate.fish +0 -74
  312. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate.ps1 +0 -150
  313. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate.sh +0 -80
  314. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate_this.py +0 -34
  315. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/deactivate.bat +0 -20
  316. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/distutils-init.py +0 -101
  317. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/distutils.cfg +0 -6
  318. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/site.py +0 -758
  319. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_support/pip-6.0-py2.py3-none-any.whl +0 -0
  320. data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_support/setuptools-8.2.1-py2.py3-none-any.whl +0 -0
  321. data/vendor/depot_tools/bootstrap/win/README.google +0 -16
  322. data/vendor/depot_tools/cbuildbot +0 -96
  323. data/vendor/depot_tools/chrome_set_ver +0 -96
  324. data/vendor/depot_tools/cros +0 -96
  325. data/vendor/depot_tools/cros_sdk +0 -96
  326. data/vendor/depot_tools/git-cl-upload-hook +0 -52
  327. data/vendor/depot_tools/git-crup +0 -45
  328. data/vendor/depot_tools/python_git_runner.sh +0 -36
  329. data/vendor/depot_tools/recipes/blink.py +0 -59
  330. data/vendor/depot_tools/third_party/cq_client/test/validate_config_test.py +0 -52
  331. data/vendor/depot_tools/third_party/cq_client/validate_config.py +0 -108
  332. data/vendor/depot_tools/win_toolchain/toolchain2013.py +0 -494
@@ -27,16 +27,18 @@ Branches are colorized as follows:
27
27
 
28
28
  import argparse
29
29
  import collections
30
- import sys
30
+ import os
31
31
  import subprocess2
32
-
33
- from third_party import colorama
34
- from third_party.colorama import Fore, Style
32
+ import sys
35
33
 
36
34
  from git_common import current_branch, upstream, tags, get_branches_info
37
35
  from git_common import get_git_version, MIN_UPSTREAM_TRACK_GIT_VERSION, hash_one
38
36
  from git_common import run
39
37
 
38
+ import setup_color
39
+
40
+ from third_party.colorama import Fore, Style
41
+
40
42
  DEFAULT_SEPARATOR = ' ' * 4
41
43
 
42
44
 
@@ -174,7 +176,7 @@ class BranchMapper(object):
174
176
  return not parent or parent in self.__gone_branches
175
177
 
176
178
  def __color_for_branch(self, branch, branch_hash):
177
- if branch.startswith('origin'):
179
+ if branch.startswith('origin/'):
178
180
  color = Fore.RED
179
181
  elif branch.startswith('branch-heads'):
180
182
  color = Fore.BLUE
@@ -271,7 +273,7 @@ class BranchMapper(object):
271
273
 
272
274
 
273
275
  def main(argv):
274
- colorama.init()
276
+ setup_color.init()
275
277
  if get_git_version() < MIN_UPSTREAM_TRACK_GIT_VERSION:
276
278
  print >> sys.stderr, (
277
279
  'This tool will not show all tracking information for git version '
@@ -3,6 +3,10 @@
3
3
  # Use of this source code is governed by a BSD-style license that can be
4
4
  # found in the LICENSE file.
5
5
 
6
+ """
7
+ Create new branch tracking origin/master by default.
8
+ """
9
+
6
10
  import argparse
7
11
  import sys
8
12
 
@@ -14,7 +18,8 @@ from git_common import hash_one
14
18
 
15
19
  def main(args):
16
20
  parser = argparse.ArgumentParser(
17
- formatter_class=argparse.ArgumentDefaultsHelpFormatter
21
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
22
+ description=__doc__,
18
23
  )
19
24
  parser.add_argument('branch_name')
20
25
  g = parser.add_mutually_exclusive_group()
@@ -49,9 +49,8 @@ def fetch_remotes(branch_tree):
49
49
  remotes = set()
50
50
  tag_set = git.tags()
51
51
  fetchspec_map = {}
52
- all_fetchspec_configs = git.run(
53
- 'config', '--get-regexp', r'^remote\..*\.fetch').strip()
54
- for fetchspec_config in all_fetchspec_configs.splitlines():
52
+ all_fetchspec_configs = git.config_regexp(r'^remote\..*\.fetch')
53
+ for fetchspec_config in all_fetchspec_configs:
55
54
  key, _, fetchspec = fetchspec_config.partition(' ')
56
55
  dest_spec = fetchspec.partition(':')[2]
57
56
  remote_name = key.split('.')[1]
@@ -87,32 +86,54 @@ def remove_empty_branches(branch_tree):
87
86
  tag_set = git.tags()
88
87
  ensure_root_checkout = git.once(lambda: git.run('checkout', git.root()))
89
88
 
90
- deletions = set()
89
+ deletions = {}
90
+ reparents = {}
91
91
  downstreams = collections.defaultdict(list)
92
92
  for branch, parent in git.topo_iter(branch_tree, top_down=False):
93
93
  downstreams[parent].append(branch)
94
94
 
95
- if git.hash_one(branch) == git.hash_one(parent):
95
+ # If branch and parent have the same tree, then branch has to be marked
96
+ # for deletion and its children and grand-children reparented to parent.
97
+ if git.hash_one(branch+":") == git.hash_one(parent+":"):
96
98
  ensure_root_checkout()
97
99
 
98
100
  logging.debug('branch %s merged to %s', branch, parent)
99
101
 
102
+ # Mark branch for deletion while remembering the ordering, then add all
103
+ # its children as grand-children of its parent and record reparenting
104
+ # information if necessary.
105
+ deletions[branch] = len(deletions)
106
+
100
107
  for down in downstreams[branch]:
101
108
  if down in deletions:
102
109
  continue
103
110
 
104
- if parent in tag_set:
105
- git.set_branch_config(down, 'remote', '.')
106
- git.set_branch_config(down, 'merge', 'refs/tags/%s' % parent)
107
- print ('Reparented %s to track %s [tag] (was tracking %s)'
108
- % (down, parent, branch))
111
+ # Record the new and old parent for down, or update such a record
112
+ # if it already exists. Keep track of the ordering so that reparenting
113
+ # happen in topological order.
114
+ downstreams[parent].append(down)
115
+ if down not in reparents:
116
+ reparents[down] = (len(reparents), parent, branch)
109
117
  else:
110
- git.run('branch', '--set-upstream-to', parent, down)
111
- print ('Reparented %s to track %s (was tracking %s)'
112
- % (down, parent, branch))
118
+ order, _, old_parent = reparents[down]
119
+ reparents[down] = (order, parent, old_parent)
120
+
121
+ # Apply all reparenting recorded, in order.
122
+ for branch, value in sorted(reparents.iteritems(), key=lambda x:x[1][0]):
123
+ _, parent, old_parent = value
124
+ if parent in tag_set:
125
+ git.set_branch_config(branch, 'remote', '.')
126
+ git.set_branch_config(branch, 'merge', 'refs/tags/%s' % parent)
127
+ print ('Reparented %s to track %s [tag] (was tracking %s)'
128
+ % (branch, parent, old_parent))
129
+ else:
130
+ git.run('branch', '--set-upstream-to', parent, branch)
131
+ print ('Reparented %s to track %s (was tracking %s)'
132
+ % (branch, parent, old_parent))
113
133
 
114
- deletions.add(branch)
115
- print git.run('branch', '-d', branch)
134
+ # Apply all deletions recorded, in order.
135
+ for branch, _ in sorted(deletions.iteritems(), key=lambda x: x[1]):
136
+ print git.run('branch', '-d', branch)
116
137
 
117
138
 
118
139
  def rebase_branch(branch, parent, start_hash):
@@ -196,6 +217,8 @@ def rebase_branch(branch, parent, start_hash):
196
217
  def main(args=None):
197
218
  parser = argparse.ArgumentParser()
198
219
  parser.add_argument('--verbose', '-v', action='store_true')
220
+ parser.add_argument('--keep-going', '-k', action='store_true',
221
+ help='Keep processing past failed rebases.')
199
222
  parser.add_argument('--no_fetch', '--no-fetch', '-n',
200
223
  action='store_true',
201
224
  help='Skip fetching remotes.')
@@ -245,6 +268,7 @@ def main(args=None):
245
268
  logging.debug('merge_base: %s' % pformat(merge_base))
246
269
 
247
270
  retcode = 0
271
+ unrebased_branches = []
248
272
  # Rebase each branch starting with the root-most branches and working
249
273
  # towards the leaves.
250
274
  for branch, parent in git.topo_iter(branch_tree):
@@ -254,7 +278,23 @@ def main(args=None):
254
278
  ret = rebase_branch(branch, parent, merge_base[branch])
255
279
  if not ret:
256
280
  retcode = 1
257
- break
281
+
282
+ if opts.keep_going:
283
+ print '--keep-going set, continuing with next branch.'
284
+ unrebased_branches.append(branch)
285
+ if git.in_rebase():
286
+ git.run_with_retcode('rebase', '--abort')
287
+ if git.in_rebase(): # pragma: no cover
288
+ print 'Failed to abort rebase. Something is really wrong.'
289
+ break
290
+ else:
291
+ break
292
+
293
+ if unrebased_branches:
294
+ print
295
+ print 'The following branches could not be cleanly rebased:'
296
+ for branch in unrebased_branches:
297
+ print ' %s' % branch
258
298
 
259
299
  if not retcode:
260
300
  remove_empty_branches(branch_tree)
@@ -31,11 +31,14 @@ def main(args):
31
31
  # TODO(iannucci): Allow specification of the branch-to-reparent
32
32
 
33
33
  branch = current_branch()
34
+
34
35
  if opts.root:
35
36
  new_parent = root_ref
36
37
  elif opts.lkgr:
37
38
  new_parent = 'lkgr'
38
39
  else:
40
+ if not opts.new_parent:
41
+ parser.error('Must specify new parent somehow')
39
42
  new_parent = opts.new_parent
40
43
  cur_parent = upstream(branch)
41
44
 
@@ -44,6 +47,16 @@ def main(args):
44
47
  if new_parent == cur_parent:
45
48
  parser.error('Cannot reparent a branch to its existing parent')
46
49
 
50
+ if not cur_parent:
51
+ msg = (
52
+ "Unable to determine %s@{upstream}.\n\nThis can happen if you didn't use "
53
+ "`git new-branch` to create the branch and haven't used "
54
+ "`git branch --set-upstream-to` to assign it one.\n\nPlease assign an "
55
+ "upstream branch and then run this command again."
56
+ )
57
+ print >> sys.stderr, msg % branch
58
+ return 1
59
+
47
60
  mbase = get_or_create_merge_base(branch, cur_parent)
48
61
 
49
62
  all_tags = tags()
@@ -7,8 +7,6 @@
7
7
  import logging
8
8
  import sys
9
9
 
10
- import breakpad # pylint: disable=W0611
11
-
12
10
  from scm import GIT
13
11
  import subprocess2
14
12
  import third_party.upload
@@ -8,12 +8,15 @@
8
8
 
9
9
  import argparse
10
10
  import base64
11
+ import contextlib
11
12
  import hashlib
12
13
  import json
13
14
  import os
14
15
  import shutil
15
16
  import subprocess
16
17
  import sys
18
+ import tempfile
19
+ import time
17
20
  import urllib2
18
21
  import zipfile
19
22
 
@@ -26,7 +29,6 @@ DEFAULT_BIN_DIR = os.path.join(THIS_DIR, 'external_bin', 'gsutil')
26
29
  DEFAULT_FALLBACK_GSUTIL = os.path.join(
27
30
  THIS_DIR, 'third_party', 'gsutil', 'gsutil')
28
31
 
29
-
30
32
  class InvalidGsutilError(Exception):
31
33
  pass
32
34
 
@@ -73,44 +75,72 @@ def check_gsutil(gsutil_bin):
73
75
  [sys.executable, gsutil_bin, 'version'],
74
76
  stdout=subprocess.PIPE, stderr=subprocess.STDOUT) == 0
75
77
 
76
- def ensure_gsutil(version, target):
78
+ @contextlib.contextmanager
79
+ def temporary_directory(base):
80
+ tmpdir = tempfile.mkdtemp(prefix='gsutil_py', dir=base)
81
+ try:
82
+ yield tmpdir
83
+ finally:
84
+ if os.path.isdir(tmpdir):
85
+ shutil.rmtree(tmpdir)
86
+
87
+ def ensure_gsutil(version, target, clean):
77
88
  bin_dir = os.path.join(target, 'gsutil_%s' % version)
78
89
  gsutil_bin = os.path.join(bin_dir, 'gsutil', 'gsutil')
79
- if os.path.isfile(gsutil_bin) and check_gsutil(gsutil_bin):
90
+ if not clean and os.path.isfile(gsutil_bin) and check_gsutil(gsutil_bin):
80
91
  # Everything is awesome! we're all done here.
81
92
  return gsutil_bin
82
93
 
83
- if os.path.isdir(bin_dir):
94
+ if not os.path.exists(target):
95
+ os.makedirs(target)
96
+ with temporary_directory(target) as instance_dir:
84
97
  # Clean up if we're redownloading a corrupted gsutil.
85
- shutil.rmtree(bin_dir)
86
- cache_dir = os.path.join(target, '.cache_dir')
87
- if not os.path.isdir(cache_dir):
88
- os.makedirs(cache_dir)
89
- target_zip_filename = download_gsutil(version, cache_dir)
90
- with zipfile.ZipFile(target_zip_filename, 'r') as target_zip:
91
- target_zip.extractall(bin_dir)
98
+ cleanup_path = os.path.join(instance_dir, 'clean')
99
+ try:
100
+ os.rename(bin_dir, cleanup_path)
101
+ except (OSError, IOError):
102
+ cleanup_path = None
103
+ if cleanup_path:
104
+ shutil.rmtree(cleanup_path)
105
+
106
+ download_dir = os.path.join(instance_dir, 'download')
107
+ target_zip_filename = download_gsutil(version, instance_dir)
108
+ with zipfile.ZipFile(target_zip_filename, 'r') as target_zip:
109
+ target_zip.extractall(download_dir)
110
+
111
+ try:
112
+ os.rename(download_dir, bin_dir)
113
+ except (OSError, IOError):
114
+ # Something else did this in parallel.
115
+ pass
92
116
 
93
117
  # Final check that the gsutil bin is okay. This should never fail.
94
118
  if not check_gsutil(gsutil_bin):
95
119
  raise InvalidGsutilError()
96
-
97
120
  return gsutil_bin
98
121
 
99
122
 
100
- def run_gsutil(force_version, fallback, target, args):
123
+ def run_gsutil(force_version, fallback, target, args, clean=False):
101
124
  if force_version:
102
- gsutil_bin = ensure_gsutil(force_version, target)
125
+ gsutil_bin = ensure_gsutil(force_version, target, clean)
103
126
  else:
104
127
  gsutil_bin = fallback
105
- cmd = [sys.executable, gsutil_bin] + args
128
+ disable_update = ['-o', 'GSUtil:software_update_check_period=0']
129
+ cmd = [sys.executable, gsutil_bin] + disable_update + args
106
130
  return subprocess.call(cmd)
107
131
 
108
132
 
109
133
  def parse_args():
134
+ bin_dir = os.environ.get('DEPOT_TOOLS_GSUTIL_BIN_DIR', DEFAULT_BIN_DIR)
135
+
110
136
  parser = argparse.ArgumentParser()
111
- parser.add_argument('--force-version')
137
+ parser.add_argument('--force-version', default='4.13')
138
+ parser.add_argument('--clean', action='store_true',
139
+ help='Clear any existing gsutil package, forcing a new download.')
112
140
  parser.add_argument('--fallback', default=DEFAULT_FALLBACK_GSUTIL)
113
- parser.add_argument('--target', default=DEFAULT_BIN_DIR)
141
+ parser.add_argument('--target', default=bin_dir,
142
+ help='The target directory to download/store a gsutil version in. '
143
+ '(default is %(default)s).')
114
144
  parser.add_argument('args', nargs=argparse.REMAINDER)
115
145
 
116
146
  args, extras = parser.parse_known_args()
@@ -118,12 +148,13 @@ def parse_args():
118
148
  args.args.pop(0)
119
149
  if extras:
120
150
  args.args = extras + args.args
121
- return args.force_version, args.fallback, args.target, args.args
151
+ return args
122
152
 
123
153
 
124
154
  def main():
125
- force_version, fallback, target, args = parse_args()
126
- return run_gsutil(force_version, fallback, target, args)
155
+ args = parse_args()
156
+ return run_gsutil(args.force_version, args.fallback, args.target, args.args,
157
+ clean=args.clean)
127
158
 
128
159
  if __name__ == '__main__':
129
160
  sys.exit(main())
@@ -1,5 +1,7 @@
1
1
  set noparent
2
- akuegel@chromium.org
2
+ iannucci@chromium.org
3
3
  phajdan.jr@chromium.org
4
4
  sergiyb@chromium.org
5
5
  tandrii@chromium.org
6
+
7
+ per-file recipes.cfg=martiniss@chromium.org
@@ -24,14 +24,18 @@ rietveld {
24
24
 
25
25
  verifiers {
26
26
  reviewer_lgtm {
27
- committer_list: "chromium"
27
+ committer_list: "project-infra-committers"
28
28
  }
29
29
 
30
30
  try_job {
31
31
  buckets {
32
- name: "tryserver.chromium.linux"
32
+ name: "tryserver.infra"
33
33
  builders {
34
- name: "depot_tools_presubmit"
34
+ name: "Depot Tools Presubmit"
35
+ }
36
+ builders {
37
+ name: "Recipe Roll Downstream Tester"
38
+ experiment_percentage: 100
35
39
  }
36
40
  }
37
41
  }
@@ -0,0 +1,9 @@
1
+ api_version: 1
2
+ project_id: "depot_tools"
3
+ recipes_path: ""
4
+ deps {
5
+ project_id: "recipe_engine"
6
+ url: "https://chromium.googlesource.com/external/github.com/luci/recipes-py.git"
7
+ branch: "master"
8
+ revision: "764aae62ed63f929771542b1dc01cc518f61bb36"
9
+ }
@@ -0,0 +1,35 @@
1
+ LUCI Hacks - A set of shims used to provide an iterable end-to-end demo.
2
+
3
+ The main goal of Luci Hakcs is to be able to use iterate on Milo as if it was
4
+ displaying real data. These are a couple of hacks used to get LUCI running from
5
+ "git cl try --luci" to displaying a page on Milo. These include:
6
+
7
+ luci_recipe_run.py:
8
+ * Downloading a depot_tools tarball onto swarming from Google Storage to bootstrap gclient.
9
+ ** LUCI shouldn't require depot_tools or gclient.
10
+ * Running gclient on a swarming slave to bootstrap a full build+infra checkout.
11
+ ** M1: This should check out the recipes repo instead.
12
+ ** M2: The recipes repo should have been already isolated.
13
+ * Seeding properties by emitting annotation in stdout so that Milo can pick it
14
+ up
15
+ * Running annotated_run.py from a fake build directory "build/slave/bot/build"
16
+
17
+ trigger_luci_job.py:
18
+ * Master/Builder -> Recipe + Platform mapping is hardcoded into this file. This
19
+ is information that is otherwise encoded into master.cfg/slaves.cfg.
20
+ ** Actually I lied, we just assume linux right now.
21
+ ** M1: This information should be encoded into the recipe via luci.cfg
22
+ * Swarming client is checked out via "git clone <swarming repo>"
23
+ * Swarming server is hard coded into the file. This info should also be pulled
24
+ out from luci.cfg
25
+ * Triggering is done directly to swarming. Once Swarming is able to pull from
26
+ DM we can send jobs to DM instead of swarming.
27
+
28
+
29
+ Misc:
30
+ * This just runs the full recipe on the bot. Yes, including bot_update.
31
+ ** In the future this would be probably an isolated checkout?
32
+ ** This also includes having git_cache either set up a local cache, or download
33
+ the bootstrap zip file on every invocation. In reality there isn't a huge
34
+ time penalty for doing this, but at scale it does incur a non-trival amount of
35
+ unnecessary bandwidth.
@@ -0,0 +1,12 @@
1
+ {
2
+ 'variables': {
3
+ 'files': [
4
+ 'luci_recipe_run.py',
5
+ ],
6
+ 'command': [
7
+ 'python',
8
+ 'luci_recipe_run.py',
9
+ ],
10
+ },
11
+ }
12
+
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env python
2
+ # Copyright (c) 2015 The Chromium Authors. All rights reserved.
3
+ # Use of this source code is governed by a BSD-style license that can be
4
+ # found in the LICENSE file.
5
+
6
+
7
+ """Download recipe prerequisites and run a single recipe."""
8
+
9
+
10
+ import base64
11
+ import json
12
+ import os
13
+ import subprocess
14
+ import sys
15
+ import tarfile
16
+ import urllib2
17
+ import zlib
18
+
19
+
20
+ def download(source, dest):
21
+ u = urllib2.urlopen(source) # TODO: Verify certificate?
22
+ with open(dest, 'wb') as f:
23
+ while True:
24
+ buf = u.read(8192)
25
+ if not buf:
26
+ break
27
+ f.write(buf)
28
+
29
+
30
+ def unzip(source, dest):
31
+ with tarfile.open(source, 'r') as z:
32
+ z.extractall(dest)
33
+
34
+
35
+ def get_infra(dt_dir, root_dir):
36
+ fetch = os.path.join(dt_dir, 'fetch.py')
37
+ subprocess.check_call([sys.executable, fetch, 'infra'], cwd=root_dir)
38
+
39
+
40
+ def seed_properties(args):
41
+ # Assumes args[0] is factory properties and args[1] is build properties.
42
+ fact_prop_str = args[0][len('--factory-properties-gz='):]
43
+ build_prop_str = args[1][len('--build-properties-gz='):]
44
+ fact_prop = json.loads(zlib.decompress(base64.b64decode(fact_prop_str)))
45
+ build_prop = json.loads(zlib.decompress(base64.b64decode(build_prop_str)))
46
+ for k, v in fact_prop.iteritems():
47
+ print '@@@SET_BUILD_PROPERTY@%s@%s@@@' % (k, v)
48
+ for k, v in build_prop.iteritems():
49
+ print '@@@SET_BUILD_PROPERTY@%s@%s@@@' % (k, v)
50
+
51
+
52
+ def main(args):
53
+ cwd = os.getcwd()
54
+
55
+ # Bootstrap depot tools (required for fetching build/infra)
56
+ dt_url = 'https://storage.googleapis.com/dumbtest/depot_tools.tar.gz'
57
+ dt_dir = os.path.join(cwd, 'staging')
58
+ os.makedirs(dt_dir)
59
+ dt_zip = os.path.join(dt_dir, 'depot_tools.tar.gz')
60
+ download(dt_url, os.path.join(dt_zip))
61
+ unzip(dt_zip, dt_dir)
62
+ dt_path = os.path.join(dt_dir, 'depot_tools')
63
+ os.environ['PATH'] = '%s:%s' % (dt_path, os.environ['PATH'])
64
+
65
+ # Fetch infra (which comes with build, which comes with recipes)
66
+ root_dir = os.path.join(cwd, 'b')
67
+ os.makedirs(root_dir)
68
+ get_infra(dt_path, root_dir)
69
+ work_dir = os.path.join(root_dir, 'build', 'slave', 'bot', 'build')
70
+ os.makedirs(work_dir)
71
+
72
+ # Emit annotations that encapsulates build properties.
73
+ seed_properties(args)
74
+
75
+ # JUST DO IT.
76
+ cmd = [sys.executable, '-u', '../../../scripts/slave/annotated_run.py']
77
+ cmd.extend(args)
78
+ subprocess.check_call(cmd, cwd=work_dir)
79
+
80
+ if __name__ == '__main__':
81
+ sys.exit(main(sys.argv[1:]))