bundler 1.9.0 → 1.17.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bundler might be problematic. Click here for more details.

Files changed (328) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +1157 -6
  3. data/README.md +33 -6
  4. data/bundler.gemspec +51 -18
  5. data/exe/bundle +31 -0
  6. data/{bin → exe}/bundle_ruby +10 -6
  7. data/exe/bundler +4 -0
  8. data/lib/bundler.rb +326 -207
  9. data/lib/bundler/build_metadata.rb +53 -0
  10. data/lib/bundler/capistrano.rb +9 -3
  11. data/lib/bundler/cli.rb +522 -141
  12. data/lib/bundler/cli/add.rb +35 -0
  13. data/lib/bundler/cli/binstubs.rb +22 -11
  14. data/lib/bundler/cli/cache.rb +7 -6
  15. data/lib/bundler/cli/check.rb +11 -8
  16. data/lib/bundler/cli/clean.rb +7 -8
  17. data/lib/bundler/cli/common.rb +53 -7
  18. data/lib/bundler/cli/config.rb +84 -49
  19. data/lib/bundler/cli/console.rb +13 -8
  20. data/lib/bundler/cli/doctor.rb +140 -0
  21. data/lib/bundler/cli/exec.rb +77 -16
  22. data/lib/bundler/cli/gem.rb +120 -52
  23. data/lib/bundler/cli/info.rb +50 -0
  24. data/lib/bundler/cli/init.rb +21 -7
  25. data/lib/bundler/cli/inject.rb +37 -10
  26. data/lib/bundler/cli/install.rb +139 -78
  27. data/lib/bundler/cli/issue.rb +40 -0
  28. data/lib/bundler/cli/list.rb +58 -0
  29. data/lib/bundler/cli/lock.rb +63 -0
  30. data/lib/bundler/cli/open.rb +9 -6
  31. data/lib/bundler/cli/outdated.rb +221 -35
  32. data/lib/bundler/cli/package.rb +11 -7
  33. data/lib/bundler/cli/platform.rb +7 -4
  34. data/lib/bundler/cli/plugin.rb +24 -0
  35. data/lib/bundler/cli/pristine.rb +47 -0
  36. data/lib/bundler/cli/remove.rb +18 -0
  37. data/lib/bundler/cli/show.rb +11 -10
  38. data/lib/bundler/cli/update.rb +47 -29
  39. data/lib/bundler/cli/viz.rb +12 -8
  40. data/lib/bundler/compact_index_client.rb +109 -0
  41. data/lib/bundler/compact_index_client/cache.rb +118 -0
  42. data/lib/bundler/compact_index_client/updater.rb +116 -0
  43. data/lib/bundler/compatibility_guard.rb +14 -0
  44. data/lib/bundler/constants.rb +3 -1
  45. data/lib/bundler/current_ruby.rb +47 -137
  46. data/lib/bundler/definition.rb +599 -230
  47. data/lib/bundler/dep_proxy.rb +15 -10
  48. data/lib/bundler/dependency.rb +54 -25
  49. data/lib/bundler/deployment.rb +12 -2
  50. data/lib/bundler/deprecate.rb +33 -4
  51. data/lib/bundler/dsl.rb +383 -99
  52. data/lib/bundler/endpoint_specification.rb +72 -7
  53. data/lib/bundler/env.rb +121 -41
  54. data/lib/bundler/environment_preserver.rb +59 -0
  55. data/lib/bundler/errors.rb +158 -0
  56. data/lib/bundler/feature_flag.rb +74 -0
  57. data/lib/bundler/fetcher.rb +171 -280
  58. data/lib/bundler/fetcher/base.rb +52 -0
  59. data/lib/bundler/fetcher/compact_index.rb +126 -0
  60. data/lib/bundler/fetcher/dependency.rb +82 -0
  61. data/lib/bundler/fetcher/downloader.rb +84 -0
  62. data/lib/bundler/fetcher/index.rb +52 -0
  63. data/lib/bundler/friendly_errors.rb +113 -58
  64. data/lib/bundler/gem_helper.rb +73 -46
  65. data/lib/bundler/gem_helpers.rb +85 -9
  66. data/lib/bundler/gem_remote_fetcher.rb +43 -0
  67. data/lib/bundler/gem_tasks.rb +6 -1
  68. data/lib/bundler/gem_version_promoter.rb +190 -0
  69. data/lib/bundler/gemdeps.rb +29 -0
  70. data/lib/bundler/graph.rb +32 -49
  71. data/lib/bundler/index.rb +79 -67
  72. data/lib/bundler/injector.rb +219 -30
  73. data/lib/bundler/inline.rb +74 -0
  74. data/lib/bundler/installer.rb +191 -206
  75. data/lib/bundler/installer/gem_installer.rb +85 -0
  76. data/lib/bundler/installer/parallel_installer.rb +233 -0
  77. data/lib/bundler/installer/standalone.rb +53 -0
  78. data/lib/bundler/lazy_specification.rb +53 -13
  79. data/lib/bundler/lockfile_generator.rb +95 -0
  80. data/lib/bundler/lockfile_parser.rb +157 -62
  81. data/lib/bundler/match_platform.rb +15 -4
  82. data/lib/bundler/mirror.rb +223 -0
  83. data/lib/bundler/plugin.rb +292 -0
  84. data/lib/bundler/plugin/api.rb +81 -0
  85. data/lib/bundler/plugin/api/source.rb +306 -0
  86. data/lib/bundler/plugin/dsl.rb +53 -0
  87. data/lib/bundler/plugin/events.rb +61 -0
  88. data/lib/bundler/plugin/index.rb +162 -0
  89. data/lib/bundler/plugin/installer.rb +96 -0
  90. data/lib/bundler/plugin/installer/git.rb +38 -0
  91. data/lib/bundler/plugin/installer/rubygems.rb +27 -0
  92. data/lib/bundler/plugin/source_list.rb +27 -0
  93. data/lib/bundler/process_lock.rb +24 -0
  94. data/lib/bundler/psyched_yaml.rb +17 -6
  95. data/lib/bundler/remote_specification.rb +68 -11
  96. data/lib/bundler/resolver.rb +263 -229
  97. data/lib/bundler/resolver/spec_group.rb +106 -0
  98. data/lib/bundler/retry.rb +25 -19
  99. data/lib/bundler/ruby_dsl.rb +9 -2
  100. data/lib/bundler/ruby_version.rb +101 -66
  101. data/lib/bundler/rubygems_ext.rb +77 -37
  102. data/lib/bundler/rubygems_gem_installer.rb +106 -0
  103. data/lib/bundler/rubygems_integration.rb +450 -163
  104. data/lib/bundler/runtime.rb +133 -103
  105. data/lib/bundler/settings.rb +344 -83
  106. data/lib/bundler/settings/validator.rb +102 -0
  107. data/lib/bundler/setup.rb +7 -3
  108. data/lib/bundler/shared_helpers.rb +284 -54
  109. data/lib/bundler/similarity_detector.rb +21 -21
  110. data/lib/bundler/source.rb +68 -15
  111. data/lib/bundler/source/gemspec.rb +18 -0
  112. data/lib/bundler/source/git.rb +90 -55
  113. data/lib/bundler/source/git/git_proxy.rb +135 -35
  114. data/lib/bundler/source/metadata.rb +62 -0
  115. data/lib/bundler/source/path.rb +84 -61
  116. data/lib/bundler/source/path/installer.rb +53 -17
  117. data/lib/bundler/source/rubygems.rb +282 -122
  118. data/lib/bundler/source/rubygems/remote.rb +69 -0
  119. data/lib/bundler/source_list.rb +107 -22
  120. data/lib/bundler/spec_set.rb +83 -45
  121. data/lib/bundler/ssl_certs/certificate_manager.rb +8 -7
  122. data/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +21 -0
  123. data/lib/bundler/ssl_certs/{DigiCertHighAssuranceEVRootCA.pem → rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem} +0 -0
  124. data/lib/bundler/ssl_certs/{AddTrustExternalCARoot-2048.pem → rubygems.org/AddTrustExternalCARoot.pem} +0 -0
  125. data/lib/bundler/stub_specification.rb +108 -0
  126. data/lib/bundler/templates/.document +1 -0
  127. data/lib/bundler/templates/Executable +19 -6
  128. data/lib/bundler/templates/Executable.bundler +105 -0
  129. data/lib/bundler/templates/Executable.standalone +6 -4
  130. data/lib/bundler/templates/Gemfile +4 -1
  131. data/lib/bundler/templates/gems.rb +8 -0
  132. data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +68 -7
  133. data/lib/bundler/templates/newgem/Gemfile.tt +4 -2
  134. data/lib/bundler/templates/newgem/LICENSE.txt.tt +1 -1
  135. data/lib/bundler/templates/newgem/README.md.tt +19 -11
  136. data/lib/bundler/templates/newgem/Rakefile.tt +10 -6
  137. data/lib/bundler/templates/newgem/bin/console.tt +1 -1
  138. data/lib/bundler/templates/newgem/bin/setup.tt +2 -1
  139. data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +4 -4
  140. data/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +3 -3
  141. data/lib/bundler/templates/newgem/gitignore.tt +5 -1
  142. data/lib/bundler/templates/newgem/lib/newgem.rb.tt +7 -6
  143. data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +4 -4
  144. data/lib/bundler/templates/newgem/newgem.gemspec.tt +31 -15
  145. data/lib/bundler/templates/newgem/rspec.tt +1 -0
  146. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +3 -5
  147. data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +14 -2
  148. data/lib/bundler/templates/newgem/test/{test_newgem.rb.tt → newgem_test.rb.tt} +2 -2
  149. data/lib/bundler/templates/newgem/test/test_helper.rb.tt +4 -0
  150. data/lib/bundler/templates/newgem/travis.yml.tt +7 -0
  151. data/lib/bundler/ui.rb +5 -3
  152. data/lib/bundler/ui/rg_proxy.rb +5 -7
  153. data/lib/bundler/ui/shell.rb +69 -18
  154. data/lib/bundler/ui/silent.rb +26 -1
  155. data/lib/bundler/uri_credentials_filter.rb +37 -0
  156. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1638 -0
  157. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +12 -0
  158. data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +26 -0
  159. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
  160. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +81 -0
  161. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +223 -0
  162. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +36 -0
  163. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +66 -0
  164. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +62 -0
  165. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +63 -0
  166. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +61 -0
  167. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +126 -0
  168. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +46 -0
  169. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +36 -0
  170. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +136 -0
  171. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +143 -0
  172. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +6 -0
  173. data/lib/bundler/vendor/{Molinillo-0.2.1 → molinillo}/lib/molinillo/modules/specification_provider.rb +11 -0
  174. data/lib/bundler/vendor/{Molinillo-0.2.1 → molinillo}/lib/molinillo/modules/ui.rb +6 -2
  175. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +837 -0
  176. data/lib/bundler/vendor/{Molinillo-0.2.1 → molinillo}/lib/molinillo/resolver.rb +6 -3
  177. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +58 -0
  178. data/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/faster.rb +1 -0
  179. data/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/persistent.rb +27 -24
  180. data/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/persistent/ssl_reuse.rb +2 -1
  181. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor.rb +47 -22
  182. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/actions.rb +31 -29
  183. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/actions/create_file.rb +3 -2
  184. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/actions/create_link.rb +3 -2
  185. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/actions/directory.rb +3 -3
  186. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/actions/empty_directory.rb +16 -8
  187. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/actions/file_manipulation.rb +66 -18
  188. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/actions/inject_into_file.rb +18 -16
  189. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/base.rb +67 -44
  190. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/command.rb +13 -11
  191. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/core_ext/hash_with_indifferent_access.rb +21 -1
  192. data/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +12 -0
  193. data/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +129 -0
  194. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/error.rb +3 -3
  195. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/group.rb +14 -14
  196. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/invocation.rb +4 -5
  197. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/line_editor.rb +2 -2
  198. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/line_editor/basic.rb +2 -0
  199. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/line_editor/readline.rb +0 -0
  200. data/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
  201. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/parser/argument.rb +4 -7
  202. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/parser/arguments.rb +16 -16
  203. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/parser/option.rb +42 -21
  204. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/parser/options.rb +13 -10
  205. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/rake_compat.rb +1 -1
  206. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/runner.rb +35 -33
  207. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/shell.rb +4 -4
  208. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/shell/basic.rb +49 -33
  209. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/shell/color.rb +2 -2
  210. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/shell/html.rb +5 -5
  211. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/util.rb +8 -7
  212. data/lib/bundler/vendor/{thor-0.19.1 → thor}/lib/thor/version.rb +1 -1
  213. data/lib/bundler/vendored_fileutils.rb +9 -0
  214. data/lib/bundler/vendored_molinillo.rb +4 -5
  215. data/lib/bundler/vendored_persistent.rb +45 -4
  216. data/lib/bundler/vendored_thor.rb +8 -5
  217. data/lib/bundler/version.rb +23 -1
  218. data/lib/bundler/version_ranges.rb +76 -0
  219. data/lib/bundler/vlad.rb +8 -2
  220. data/lib/bundler/worker.rb +39 -6
  221. data/lib/bundler/yaml_serializer.rb +90 -0
  222. data/man/bundle-add.1 +58 -0
  223. data/man/bundle-add.1.txt +52 -0
  224. data/man/bundle-add.ronn +40 -0
  225. data/man/bundle-binstubs.1 +40 -0
  226. data/man/bundle-binstubs.1.txt +48 -0
  227. data/man/bundle-binstubs.ronn +43 -0
  228. data/man/bundle-check.1 +31 -0
  229. data/man/bundle-check.1.txt +33 -0
  230. data/man/bundle-check.ronn +26 -0
  231. data/man/bundle-clean.1 +24 -0
  232. data/man/bundle-clean.1.txt +26 -0
  233. data/man/bundle-clean.ronn +18 -0
  234. data/man/bundle-config.1 +497 -0
  235. data/man/bundle-config.1.txt +529 -0
  236. data/man/bundle-config.ronn +256 -31
  237. data/man/bundle-doctor.1 +44 -0
  238. data/man/bundle-doctor.1.txt +44 -0
  239. data/man/bundle-doctor.ronn +33 -0
  240. data/man/bundle-exec.1 +165 -0
  241. data/man/bundle-exec.1.txt +178 -0
  242. data/man/bundle-exec.ronn +19 -3
  243. data/man/bundle-gem.1 +80 -0
  244. data/man/bundle-gem.1.txt +91 -0
  245. data/man/bundle-gem.ronn +78 -0
  246. data/man/bundle-info.1 +20 -0
  247. data/man/bundle-info.1.txt +21 -0
  248. data/man/bundle-info.ronn +17 -0
  249. data/man/bundle-init.1 +25 -0
  250. data/man/bundle-init.1.txt +34 -0
  251. data/man/bundle-init.ronn +29 -0
  252. data/man/bundle-inject.1 +33 -0
  253. data/man/bundle-inject.1.txt +32 -0
  254. data/man/bundle-inject.ronn +22 -0
  255. data/man/bundle-install.1 +308 -0
  256. data/man/bundle-install.1.txt +396 -0
  257. data/man/bundle-install.ronn +64 -67
  258. data/man/bundle-list.1 +50 -0
  259. data/man/bundle-list.1.txt +43 -0
  260. data/man/bundle-list.ronn +33 -0
  261. data/man/bundle-lock.1 +84 -0
  262. data/man/bundle-lock.1.txt +93 -0
  263. data/man/bundle-lock.ronn +94 -0
  264. data/man/bundle-open.1 +32 -0
  265. data/man/bundle-open.1.txt +29 -0
  266. data/man/bundle-open.ronn +19 -0
  267. data/man/bundle-outdated.1 +155 -0
  268. data/man/bundle-outdated.1.txt +131 -0
  269. data/man/bundle-outdated.ronn +111 -0
  270. data/man/bundle-package.1 +55 -0
  271. data/man/bundle-package.1.txt +79 -0
  272. data/man/bundle-package.ronn +14 -8
  273. data/man/bundle-platform.1 +61 -0
  274. data/man/bundle-platform.1.txt +57 -0
  275. data/man/bundle-platform.ronn +1 -1
  276. data/man/bundle-pristine.1 +34 -0
  277. data/man/bundle-pristine.1.txt +44 -0
  278. data/man/bundle-pristine.ronn +34 -0
  279. data/man/bundle-remove.1 +31 -0
  280. data/man/bundle-remove.1.txt +34 -0
  281. data/man/bundle-remove.ronn +23 -0
  282. data/man/bundle-show.1 +23 -0
  283. data/man/bundle-show.1.txt +27 -0
  284. data/man/bundle-show.ronn +21 -0
  285. data/man/bundle-update.1 +394 -0
  286. data/man/bundle-update.1.txt +391 -0
  287. data/man/bundle-update.ronn +180 -18
  288. data/man/bundle-viz.1 +39 -0
  289. data/man/bundle-viz.1.txt +39 -0
  290. data/man/bundle-viz.ronn +30 -0
  291. data/man/bundle.1 +136 -0
  292. data/man/bundle.1.txt +116 -0
  293. data/man/bundle.ronn +46 -33
  294. data/man/gemfile.5 +689 -0
  295. data/man/gemfile.5.ronn +127 -79
  296. data/man/gemfile.5.txt +653 -0
  297. data/man/index.txt +25 -7
  298. metadata +242 -95
  299. data/.gitignore +0 -16
  300. data/.rspec +0 -3
  301. data/.travis.yml +0 -110
  302. data/CODE_OF_CONDUCT.md +0 -40
  303. data/CONTRIBUTING.md +0 -32
  304. data/DEVELOPMENT.md +0 -119
  305. data/ISSUES.md +0 -96
  306. data/Rakefile +0 -302
  307. data/UPGRADING.md +0 -103
  308. data/bin/bundle +0 -21
  309. data/bin/bundler +0 -21
  310. data/lib/bundler/anonymizable_uri.rb +0 -32
  311. data/lib/bundler/environment.rb +0 -42
  312. data/lib/bundler/gem_installer.rb +0 -9
  313. data/lib/bundler/gem_path_manipulation.rb +0 -8
  314. data/lib/bundler/ssl_certs/AddTrustExternalCARoot.pem +0 -32
  315. data/lib/bundler/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +0 -14
  316. data/lib/bundler/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +0 -28
  317. data/lib/bundler/ssl_certs/GeoTrustGlobalCA.pem +0 -20
  318. data/lib/bundler/templates/newgem/.travis.yml.tt +0 -3
  319. data/lib/bundler/templates/newgem/test/minitest_helper.rb.tt +0 -4
  320. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo.rb +0 -5
  321. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/dependency_graph.rb +0 -266
  322. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/errors.rb +0 -69
  323. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/gem_metadata.rb +0 -3
  324. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/resolution.rb +0 -412
  325. data/lib/bundler/vendor/Molinillo-0.2.1/lib/molinillo/state.rb +0 -43
  326. data/lib/bundler/vendor/thor-0.19.1/lib/thor/core_ext/io_binary_read.rb +0 -10
  327. data/lib/bundler/vendor/thor-0.19.1/lib/thor/core_ext/ordered_hash.rb +0 -98
  328. data/lib/bundler/vendor/thor-0.19.1/lib/thor/parser.rb +0 -4
data/.gitignore DELETED
@@ -1,16 +0,0 @@
1
- # Please do not submit patches for including directives to ignore IDE/editor
2
- # generated files. Use a global gitignore as described in
3
- # https://help.github.com/articles/ignoring-files and find useful gitignore
4
- # samples at https://github.com/github/gitignore
5
-
6
- # files created by running the specs
7
- /tmp/
8
-
9
- # gems built by `rake build`
10
- /pkg/
11
-
12
- # output from ronn
13
- /lib/bundler/man/
14
-
15
- # output from ci_reporter
16
- /spec/reports/
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --warnings
@@ -1,110 +0,0 @@
1
- language: ruby
2
- script: rake spec:travis
3
- before_script: travis_retry rake spec:travis:deps
4
-
5
- branches:
6
- only:
7
- - master
8
- - 1-8-stable
9
- - 1-7-stable
10
- - 1-6-stable
11
- - 1-5-stable
12
- - 1-3-stable
13
- - 1-2-stable
14
- - 1-1-stable
15
- - 1-0-stable
16
-
17
- notifications:
18
- email:
19
- # andre
20
- - secure: "bCcvqJT7YrBawtkXXwHhT+jOFth7r2Qv/30PkkbhQxk6Jb3xambjCOJ3U6vJ\ngYmiL50exi5lUp3oc3SEbHN5t2CrZqOZDQ6o7P8EAmB5c0oH2RrYaFOkI5Gt\nul/jGH/96A9sj0aMwG7JfdMSfhqj1DUKAm2PnnbXPL853VfmT24="
21
- # terence
22
- - secure: "MQ8eA5Jb8YzEpAo58DRGfVJklAPcEbAulpBZnTxp0am6ldneDtJHbQk21w6R\nj5GsDHlzr/lMp/GHIimtUZ7rLohfND8fj/W7fs1Dkd4eN02/ERt98x3pHlqv\nvZgSnZ39uVYv+OcphraE24QaRaGWLhWZAMYQTVe/Yz50NyG8g1U="
23
- slack:
24
- on_success: change
25
- on_failure: always
26
- rooms:
27
- - secure: JxBi7DDJGkIF/7f/FSN/HUHpvV4EKfQccZHTPd1b2pNJn3GXo6u+tNVbAw2WjxYzPyPQI3ZcYBCU9SEXp/i7VmG8uMzh8Kyildw+miSKYKVb90uYqcsXWzbxwyNBgJLvyDkzST45H5lgnyAicee3WkFes/WDZikIajbH7ztdb04=
28
-
29
- rvm:
30
- - 2.2
31
- - 2.1
32
- - 2.0.0
33
- - 1.9.3
34
- - 1.8.7
35
-
36
- # Rubygems versions MUST be available as rake tasks
37
- # see Rakefile:66 for the list of possible RGV values
38
- env:
39
- # We need to know if changes to rubygems will break bundler on release
40
- - RGV=master
41
- # Test the latest rubygems release with all of our supported rubies
42
- - RGV=v2.4.6
43
-
44
- matrix:
45
- fast_finish: true
46
- include:
47
- # Ruby 2.2, Rubygems 2.4.5 and up (RG 2.4 is included by the matrix above)
48
- # Ruby 2.1, Rubygems 2.2.2 and up
49
- - rvm: 2.1
50
- env: RGV=v2.2.3
51
- # Ruby 2.0.0, Rubygems 2.0.0 and up
52
- - rvm: 2.0.0
53
- env: RGV=v2.2.3
54
- - rvm: 2.0.0
55
- env: RGV=v2.1.11
56
- - rvm: 2.0.0
57
- env: RGV=v2.0.14
58
- # Ruby 1.9.3, Rubygems 1.5.3 and up
59
- - rvm: 1.9.3
60
- env: RGV=v2.2.3
61
- - rvm: 1.9.3
62
- env: RGV=v2.1.11
63
- - rvm: 1.9.3
64
- env: RGV=v2.0.14
65
- - rvm: 1.9.3
66
- env: RGV=v1.8.29
67
- - rvm: 1.9.3
68
- env: RGV=v1.7.2
69
- - rvm: 1.9.3
70
- env: RGV=v1.6.2
71
- - rvm: 1.9.3
72
- env: RGV=v1.5.3
73
- # Ruby 1.8.7, Rubygems 1.3.6 and up
74
- - rvm: 1.8.7
75
- env: RGV=v2.2.3
76
- - rvm: 1.8.7
77
- env: RGV=v2.0.14
78
- - rvm: 1.8.7
79
- env: RGV=v1.8.29
80
- - rvm: 1.8.7
81
- env: RGV=v1.7.2
82
- - rvm: 1.8.7
83
- env: RGV=v1.6.2
84
- - rvm: 1.8.7
85
- env: RGV=v1.5.3
86
- - rvm: 1.8.7
87
- env: RGV=v1.4.2
88
- - rvm: 1.8.7
89
- env: RGV=v1.3.7
90
- - rvm: 1.8.7
91
- env: RGV=v1.3.6
92
-
93
- # ALLOWED FAILURES
94
- # For no apparent reason, this often goes over the Travis limit
95
- - rvm: 1.8.7
96
- env: RGV=v2.1.11
97
- # Ruby 1.9.2 sanity check
98
- # (but it's just too slow and sometimes goes over the Travis limit)
99
- - rvm: 1.9.2
100
- env: RGV=v2.4.6
101
- # Ruby-head (we want to know how we're doing, but not fail the build)
102
- - rvm: ruby-head
103
- env: RGV=master
104
- allow_failures:
105
- - rvm: 1.8.7
106
- env: RGV=v2.1.11
107
- - rvm: 1.9.2
108
- - rvm: ruby-head
109
- - rvm: jruby
110
- - rvm: rbx-2
@@ -1,40 +0,0 @@
1
- # Bundler Code of Conduct
2
-
3
- The Bundler project strongly values contributors from anywhere, regardless of gender, sexual orientation, disability, physical appearance, body size, race, or religion. As a result, the Bundler team has agreed to and enforces this code of conduct in order to provide a harassment-free experience for everyone who participates in the development of Bundler.
4
-
5
- ### Summary
6
-
7
- Harassment in code and discussion or violation of physical boundaries is completely unacceptable anywhere in the Bundler project’s codebases, issue trackers, IRC channel, Campfire, mailing lists, meetups, and other events. Violators will be warned and then blocked or banned by the core team at or before the 3rd violation.
8
-
9
- ### In detail
10
-
11
- Harassment includes offensive verbal comments related to gender, sexual orientation, disability, physical appearance, body size, race, religion, sexual images, deliberate intimidation, stalking, sustained disruption, and unwelcome sexual attention.
12
-
13
- Individuals asked to stop any harassing behavior are expected to comply immediately.
14
-
15
- Maintainers, including the core team, are also subject to the anti-harassment policy.
16
-
17
- If anyone engages in harassing behavior, including maintainers, we may take appropriate action, up to and including warning the offender, deletion of comments, removal from the project’s codebase and communication systems, and escalation to Github support.
18
-
19
- If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of [the core team](http://bundler.io/contributors.html) or [email the core team](mailto:team@bundler.io) immediately.
20
-
21
- We expect everyone to follow these rules anywhere in the Bundler project’s codebases, issue trackers, IRC channel, group chat, and mailing lists.
22
-
23
- Finally, don't forget that it is human to make mistakes! We all do. Let’s work together to help each other, resolve issues, and learn from the mistakes that we will all inevitably make from time to time.
24
-
25
-
26
- ### Thanks
27
-
28
- Thanks to the [JSConf Code of Conduct](http://jsconf.com/codeofconduct.html) and [Fedora Code of Conduct](http://fedoraproject.org/code-of-conduct) for inspiration and ideas. Additional thanks to [Contributor Covenant](http://contributor-covenant.org) for the [default code of conduct](https://github.com/bundler/bundler/blob/master/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt) included in generated gems.
29
-
30
-
31
- ### License
32
-
33
- <p class="license" xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#">
34
- To the extent possible under law, <a rel="dct:publisher" href="http://bundler.io">The Bundler Team</a> has waived all copyright and related or neighboring rights to the <span property="dct:title">Bundler Code of Conduct</span>. This work is published from the <span property="vcard:Country" datatype="dct:ISO3166" content="US" about="http://bundler.io">United States.</span>
35
- <br>
36
- <br>
37
- <a rel="license" href="http://creativecommons.org/publicdomain/zero/1.0/">
38
- <img src="http://i.creativecommons.org/p/zero/1.0/88x31.png" style="border-style: none;" alt="CC0">
39
- </a>
40
- </p>
@@ -1,32 +0,0 @@
1
- # Contributing
2
-
3
- Bundler welcomes contributions from *everyone*. While contributing, please follow the project [code of conduct](http://bundler.io/conduct.html), so that everyone can be included.
4
-
5
- If you'd like to help make Bundler better, you totally rock! Here are some ways you can contribute:
6
-
7
- - by using prerelease versions (run `gem install bundler --pre`)
8
- - by [reporting bugs you encounter](https://github.com/bundler/bundler/issues/new)
9
- - by [suggesting new features](https://github.com/bundler/bundler-features/issues/new)
10
- - by adding to or editing [the Bundler documentation website](http://bundler.io) and [Bundler man pages](http://bundler.io/man/bundle.1.html)
11
- - by [checking issues for completeness](https://github.com/bundler/bundler/blob/master/DEVELOPMENT.md#bug-triage)
12
- - by closing issues that are not complete
13
- - by adding a failing test for reproducible [reported bugs](https://github.com/bundler/bundler/issues)
14
- - by reviewing [pull requests](https://github.com/bundler/bundler/pulls) and suggesting improvements
15
- - by improving existing code, including [suggestions from PullReview](https://www.pullreview.com/github/bundler/bundler/reviews/master)
16
- - by [writing code](https://github.com/bundler/bundler/blob/master/DEVELOPMENT.md) (no patch is too small! fix typos or bad whitespace)
17
-
18
- If you need help getting started, check out the [DEVELOPMENT](https://github.com/bundler/bundler/blob/master/DEVELOPMENT.md) file for steps that will get you up and running.
19
-
20
- Thanks for helping us make Bundler better.
21
-
22
- # Troubleshooting
23
-
24
- If you're having a problem, please see [ISSUES](https://github.com/bundler/bundler/blob/master/ISSUES.md) for troubleshooting steps and a guide for how to submit a ticket that will help us solve the problem you are having as quickly as possible.
25
-
26
- # Requesting Features
27
-
28
- Head on over to the [Bundler features](https://github.com/bundler/bundler-features) project, or any of the lists or channels listed below. Feature-wise we consider Bundler stable, so the core team does not tend to work on feature suggestions. Pull requests welcome though!
29
-
30
- # Discussing Bundler
31
-
32
- If you'd like to discuss features, ask questions, or just engage in general Bundler-focused discussion, please see the [#bundler](irc://irc.freenode.net/#bundler) IRC channel on Freenode, and the [Bundler mailing list](http://groups.google.com/group/ruby-bundler) on Google Groups.
@@ -1,119 +0,0 @@
1
- Great to have you here! Here are a few ways you can help out with [Bundler](http://github.com/bundler/bundler).
2
-
3
- # Where should I start?
4
-
5
- You can start learning about Bundler by reading [the documentation](http://bundler.io). If you want, you can also read a (lengthy) explanation of [why Bundler exists and what it does](http://bundler.io/rationale.html). You can also check out discussions about Bundler on the [Bundler mailing list](https://groups.google.com/group/ruby-bundler) and in the [Bundler IRC channel](http://webchat.freenode.net/?channels=%23bundler), which is #bundler on Freenode. Please note that this project is released with a contributor [code of conduct](http://bundler.io/conduct.html). By participating in this project you agree to abide by its terms.
6
-
7
- ## Your first commits
8
-
9
- If you’re interested in contributing to Bundler, that’s awesome! We’d love your help.
10
-
11
- If you have any questions after reading this page, please feel free to contact either [@indirect](http://github.com/indirect) or [@hone](http://github.com/hone). They are both happy to provide help working through your first bugfix or thinking through the problem you’re trying to resolve.
12
-
13
- ## Tackle some small problems
14
-
15
- We track [small
16
- bugs](https://github.com/bundler/bundler/issues?labels=small&state=open) and [small features](https://github.com/bundler/bundler-features/issues?labels=small&state=open) so that anyone who wants to help can start with something that's not too overwhelming. If nothing on those lists looks good, though, just talk to us.
17
-
18
-
19
- # Development setup
20
-
21
- Bundler doesn't use a Gemfile to list development dependencies, because when we tried it we couldn't tell if we were awake or it was just another level of dreams. To work on Bundler, you'll probably want to do a couple of things.
22
-
23
- 1. Install Bundler's development dependencies
24
-
25
- $ rake spec:deps
26
-
27
- 2. Run the test suite, to make sure things are working
28
-
29
- $ rake spec
30
-
31
- 3. Set up a shell alias to run Bundler from your clone, e.g. a Bash alias:
32
-
33
- $ alias dbundle='ruby -I /path/to/bundler/lib /path/to/bundler/bin/bundle'
34
-
35
- With that set up, you can test changes you've made to Bundler by running `dbundle`, without interfering with the regular `bundle` command.
36
-
37
-
38
- # Bug triage
39
-
40
- Triage is the work of processing tickets that have been opened into actionable issues, feature requests, or bug reports. That includes verifying bugs, categorizing the ticket, and ensuring there's enough information to reproduce the bug for anyone who wants to try to fix it.
41
-
42
- We've created an [issues guide](https://github.com/bundler/bundler/blob/master/ISSUES.md) to walk Bundler users through the process of troubleshooting issues and reporting bugs.
43
-
44
- If you'd like to help, awesome! You can [report a new bug](https://github.com/bundler/bundler/issues/new) or browse our [existing open tickets](https://github.com/bundler/bundler/issues).
45
-
46
- Not every ticket will point to a bug in Bundler's code, but open tickets usually mean that there is something we could improve to help that user. Sometimes that means writing additional documentation, sometimes that means making error messages clearer, and sometimes that means explaining to a user that they need to install git to use git gems.
47
-
48
- When you're looking at a ticket, here are the main questions to ask:
49
-
50
- * Can I reproduce this bug myself?
51
- * Are the steps to reproduce clearly stated in the ticket?
52
- * Which versions of Bundler (1.1.x, 1.2.x, git, etc.) manifest this bug?
53
- * Which operating systems (OS X, Windows, Ubuntu, CentOS, etc.) manifest this bug?
54
- * Which rubies (MRI, JRuby, Rubinius, etc.) and which versions (1.8.7, 1.9.3, etc.) have this bug?
55
-
56
- If you can't reproduce an issue, chances are good that the bug has been fixed (hurrah!). That's a good time to post to the ticket explaining what you did and how it worked.
57
-
58
- If you can reproduce an issue, you're well on your way to fixing it. :) Fixing issues is similar to adding new features:
59
-
60
- 1. Discuss the fix on the existing issue. Coordinating with everyone else saves duplicate work and serves as a great way to get suggestions and ideas if you need any.
61
- 2. Base your commits on the correct branch. Bugfixes for 1.x versions of Bundler should be based on the matching 1-x-stable branch.
62
- 3. Commit the code and at least one test covering your changes to a named branch in your fork.
63
- 4. Put a line in the [CHANGELOG](https://github.com/bundler/bundler/blob/master/CHANGELOG.md) summarizing your changes under the next release under the “Bugfixes” heading.
64
- 5. Send us a [pull request](https://help.github.com/articles/using-pull-requests) from your bugfix branch.
65
-
66
- Finally, the ticket may be a duplicate of another older ticket. If you notice a ticket is a duplicate, simply comment on the ticket noting the original ticket’s number. For example, you could say “This is a duplicate of issue #42, and can be closed”.
67
-
68
-
69
- # Adding new features
70
-
71
- If you would like to add a new feature to Bundler, please follow these steps:
72
-
73
- 1. [Create an issue](https://github.com/bundler/bundler-features/issues/new) in the bundler-features repo to discuss your feature.
74
- 2. Base your commits on the master branch, since we follow [SemVer](http://semver.org) and don't add new features to old releases.
75
- 3. Commit the code and at least one test covering your changes to a feature branch in your fork.
76
- 4. Put a line in the [CHANGELOG](https://github.com/bundler/bundler/blob/master/CHANGELOG.md) summarizing your changes under the next release under the "Features" heading.
77
- 5. Send us a [pull request](https://help.github.com/articles/using-pull-requests) from your feature branch.
78
-
79
- If you don't hear back immediately, don’t get discouraged! We all have day jobs, but we respond to most tickets within a day or two.
80
-
81
-
82
- # Beta testing
83
-
84
- Early releases require heavy testing, especially across various system setups. We :heart: testers, and are big fans of anyone who can run `gem install bundler --pre` and try out upcoming releases in their development and staging environments.
85
-
86
- There may not always be prereleases or beta versions of Bundler. That said, you are always welcome to try checking out master and building a gem yourself if you want to try out the latest changes.
87
-
88
-
89
- # Translations
90
-
91
- We don't currently have any translations, but please reach out to us if you would like to help get this going.
92
-
93
-
94
- # Documentation
95
-
96
- Code needs explanation, and sometimes those who know the code well have trouble explaining it to someone just getting into it. Because of that, we welcome documentation suggestions and patches from everyone, especially if they are brand new to using Bundler.
97
-
98
- Bundler has two main sources of documentation: the built-in help (including usage information and man pages) and the [Bundler documentation site](http://bundler.io).
99
-
100
- If you’d like to submit a patch to the man pages, follow the steps for adding a feature above. All of the man pages are located in the `man` directory. Just use the “Documentation” heading when you describe what you did in the changelog.
101
-
102
- If you have a suggestion or proposed change for [bundler.io](http://bundler.io), please open an issue or send a pull request to the [bundler-site](https://github.com/bundler/bundler-site) repository.
103
-
104
-
105
- # Community
106
-
107
- Community is an important part of all we do. If you’d like to be part of the Bundler community, you can jump right in and start helping make Bundler better for everyone who uses it.
108
-
109
- It would be tremendously helpful to have more people answering questions about Bundler (and often simply about Rubygems or Ruby itself) in our [issue tracker](https://github.com/bundler/bundler/issues) or on [Stack Overflow](http://stackoverflow.com/questions/tagged/bundler).
110
-
111
- Additional documentation and explanation is always helpful, too. If you have any suggestions for the Bundler website [bundler.io](http://bundler.io), we would absolutely love it if you opened an issue or pull request on the [bundler-site](https://github.com/bundler/bundler-site) repository.
112
-
113
- Finally, sharing your experiences and discoveries by writing them up is a valuable way to help others who have similar problems or experiences in the future. You can write a blog post, create an example and commit it to Github, take screenshots, or make videos.
114
-
115
- Examples of how Bundler is used help everyone, and we’ve discovered that people already use it in ways that we never imagined when we were writing it. If you’re still not sure what to write about, there are also several projects doing interesting things based on Bundler. They could probably use publicity too.
116
-
117
- If you let someone on the core team know you wrote about Bundler, we will add your post to the list of Bundler resources on the Github project wiki.
118
-
119
- Finally, participate carefully in the all contributors to the Bundler project must agree to the contributor [code of conduct](http://bundler.io/conduct.html). By participating in this project you agree to abide by its terms.
data/ISSUES.md DELETED
@@ -1,96 +0,0 @@
1
- # Bundler Issues
2
-
3
- So! You're having problems with Bundler. This file is here to help. If you're running into an error, try reading the rest of this file for help. If you can't figure out how to solve your problem, there are also instructions on how to report a bug.
4
-
5
- **Please use the [Bundler
6
- Features](https://github.com/bundler/bundler-features) repo to suggest and
7
- discuss features. The bundler issue tracker is only for bugs.**
8
-
9
- ## Documentation
10
-
11
- Instructions for common Bundler uses can be found on the [Bundler documentation site](http://bundler.io/).
12
-
13
- Detailed information about each Bundler command, including help with common problems, can be found in the [Bundler man pages](http://bundler.io/man/bundle.1.html).
14
-
15
- ## Troubleshooting
16
-
17
- ### Heroku errors
18
-
19
- Please open a ticket with Heroku if you're having trouble deploying. They have a professional support team who can help you resolve Heroku issues far better than the Bundler team can. If the problem that you are having turns out to be a bug in Bundler itself, Heroku support can get the exact details to us.
20
-
21
- ### Other problems
22
-
23
- First, figure out exactly what it is that you're trying to do. Then, go to the [Bundler documentation website](http://bundler.io) and see if we have instructions on how to do that.
24
-
25
- Second, check [the compatibility
26
- list](http://bundler.io/compatibility.html), and make sure that the version of Bundler that you are
27
- using works with the versions of Ruby and Rubygems that you are using.
28
-
29
- If the instructions don't work, or you can't find any instructions, you can try these troubleshooting steps:
30
-
31
- # remove user-specific gems and git repos
32
- rm -rf ~/.bundle/ ~/.gem/bundler/ ~/.gems/cache/bundler/
33
-
34
- # remove system-wide git repos and git checkouts
35
- rm -rf $GEM_HOME/bundler/ $GEM_HOME/cache/bundler/
36
-
37
- # remove project-specific settings
38
- rm -rf .bundle/
39
-
40
- # remove project-specific cached gems and repos
41
- rm -rf vendor/cache/
42
-
43
- # remove the saved resolve of the Gemfile
44
- rm -rf Gemfile.lock
45
-
46
- # uninstall the rubygems-bundler and open_gem gems
47
- rvm gemset use global # if using rvm
48
- gem uninstall rubygems-bundler open_gem
49
-
50
- # try to install one more time
51
- bundle install
52
-
53
- ## Reporting unresolved problems
54
-
55
- Hopefully the troubleshooting steps above resolved your problem. If things still aren't working the way you expect them to, please let us know so that we can diagnose and hopefully fix the problem you're having.
56
-
57
- **The best way to report a bug is by providing a reproduction script.** See these examples:
58
-
59
- * [Git environment variables causing install to fail.](https://gist.github.com/xaviershay/6207550)
60
- * [Multiple gems in a repository cannot be updated independently.](https://gist.github.com/xaviershay/6295889)
61
-
62
- A half working script with comments for the parts you were unable to automate is still appreciated.
63
-
64
- If you are unable to do that, please include the following information in your report:
65
-
66
- - What you're trying to accomplish
67
- - The command you ran
68
- - What you expected to happen
69
- - What actually happened
70
- - The exception backtrace(s), if any
71
- - Everything output by running `bundle env`
72
-
73
- If your version of Bundler does not have the `bundle env` command, then please include:
74
-
75
- - Your Gemfile
76
- - Your Gemfile.lock
77
- - Your Bundler configuration settings (run `bundle config`)
78
- - What version of bundler you are using (run `bundle -v`)
79
- - What version of Ruby you are using (run `ruby -v`)
80
- - What version of Rubygems you are using (run `gem -v`)
81
- - Whether you are using RVM, and if so what version (run `rvm -v`)
82
- - Whether you have the `rubygems-bundler` gem, which can break gem executables (run `gem list rubygems-bundler`)
83
- - Whether you have the `open_gem` gem, which can cause rake activation conflicts (run `gem list open_gem`)
84
-
85
- If you are using Rails 2.3, please also include:
86
-
87
- - Your boot.rb file
88
- - Your preinitializer.rb file
89
- - Your environment.rb file
90
-
91
-
92
- If you have either `rubygems-bundler` or `open_gem` installed, please try removing them and then following the troubleshooting steps above before opening a new ticket.
93
-
94
- [Create a gist](https://gist.github.com) containing all of that information, then visit the [Bundler issue tracker](https://github.com/bundler/bundler/issues) and [create a ticket](https://github.com/bundler/bundler/issues/new) describing your problem and linking to your gist.
95
-
96
- Thanks for reporting issues and helping make Bundler better!
data/Rakefile DELETED
@@ -1,302 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.unshift File.expand_path("../lib", __FILE__)
3
- require 'shellwords'
4
- require 'benchmark'
5
-
6
- RUBYGEMS_REPO = File.expand_path("tmp/rubygems")
7
- BUNDLER_SPEC = Gem::Specification.load("bundler.gemspec")
8
-
9
- def safe_task(&block)
10
- yield
11
- true
12
- rescue
13
- false
14
- end
15
-
16
- # Benchmark task execution
17
- module Rake
18
- class Task
19
- alias_method :real_invoke, :invoke
20
-
21
- def invoke(*args)
22
- time = Benchmark.measure(@name) do
23
- real_invoke(*args)
24
- end
25
- puts "#{@name} ran for #{time}"
26
- end
27
- end
28
- end
29
-
30
- namespace :molinillo do
31
- task :namespace do
32
- files = Dir.glob('lib/bundler/vendor/Molinillo*/**/*.rb')
33
- sh "sed -i.bak 's/Molinillo/Bundler::Molinillo/g' #{files.join(' ')}"
34
- sh "rm #{files.join('.bak ')}.bak"
35
- end
36
-
37
- task :clean do
38
- files = Dir.glob('lib/bundler/vendor/Molinillo*/*', File::FNM_DOTMATCH).reject { |f| %(. .. lib).include? f.split('/').last }
39
- puts files
40
- sh "rm -r #{files.join(' ')}"
41
- end
42
-
43
- task :update, [:tag] => [] do |t, args|
44
- tag = args[:tag]
45
- Dir.chdir 'lib/bundler/vendor' do
46
- `curl -L https://github.com/CocoaPods/molinillo/archive/#{tag}.tar.gz | tar -xz`
47
- end
48
- Rake::Task['molinillo:namespace'].invoke
49
- Rake::Task['molinillo:clean'].invoke
50
- end
51
- end
52
-
53
- namespace :thor do
54
- task :namespace do
55
- files = Dir.glob('lib/bundler/vendor/thor*/**/*.rb')
56
- sh "sed -i.bak 's/Thor/Bundler::Thor/g' #{files.join(' ')}"
57
- sh "rm #{files.join('.bak ')}.bak"
58
- end
59
-
60
- task :clean do
61
- files = Dir.glob('lib/bundler/vendor/thor*/*', File::FNM_DOTMATCH).reject { |f| %(. .. lib).include? f.split('/').last }
62
- puts files
63
- sh "rm -r #{files.join(' ')}"
64
- end
65
-
66
- task :update, [:tag] => [] do |t, args|
67
- tag = args[:tag]
68
- Dir.chdir 'lib/bundler/vendor' do
69
- `curl -L https://github.com/erikhuda/thor/archive/#{tag}.tar.gz | tar -xz`
70
- end
71
- Rake::Task['thor:namespace'].invoke
72
- Rake::Task['thor:clean'].invoke
73
- end
74
- end
75
-
76
- namespace :spec do
77
- desc "Ensure spec dependencies are installed"
78
- task :deps do
79
- deps = Hash[BUNDLER_SPEC.development_dependencies.map do |d|
80
- [d.name, d.requirement.to_s]
81
- end]
82
-
83
- # JRuby can't build ronn or rdiscount, so we skip that
84
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
85
- deps.delete("ronn")
86
- deps.delete("rdiscount")
87
- end
88
-
89
- deps.sort_by{|name, _| name }.each do |name, version|
90
- sh "#{Gem.ruby} -S gem list -i '^#{name}$' -v '#{version}' || " \
91
- "#{Gem.ruby} -S gem install #{name} -v '#{version}' --no-ri --no-rdoc"
92
- end
93
-
94
- # Download and install gems used inside tests
95
- $LOAD_PATH.unshift("./spec")
96
- require 'support/rubygems_ext'
97
- Spec::Rubygems.setup
98
- end
99
-
100
- namespace :travis do
101
- task :deps do
102
- # Give the travis user a name so that git won't fatally error
103
- system "sudo sed -i 's/1000::/1000:Travis:/g' /etc/passwd"
104
- # Strip secure_path so that RVM paths transmit through sudo -E
105
- system "sudo sed -i '/secure_path/d' /etc/sudoers"
106
- # Install groff for the ronn gem
107
- sh "sudo apt-get install groff -y"
108
- if RUBY_VERSION < '1.9'
109
- # Downgrade Rubygems on 1.8 so Ronn can be required
110
- # https://github.com/rubygems/rubygems/issues/784
111
- sh "gem update --system 2.1.11"
112
- else
113
- # Downgrade Rubygems so RSpec 3 can be installed
114
- # https://github.com/rubygems/rubygems/issues/813
115
- sh "gem update --system 2.2.0"
116
- end
117
- # Install the other gem deps, etc.
118
- Rake::Task["spec:deps"].invoke
119
- end
120
- end
121
- end
122
-
123
- begin
124
- rspec = BUNDLER_SPEC.development_dependencies.find{|d| d.name == "rspec" }
125
- gem 'rspec', rspec.requirement.to_s
126
- require 'rspec/core/rake_task'
127
-
128
- desc "Run specs"
129
- RSpec::Core::RakeTask.new
130
- task :spec => "man:build"
131
-
132
- namespace :spec do
133
- task :clean do
134
- rm_rf 'tmp'
135
- end
136
-
137
- desc "Run the real-world spec suite (requires internet)"
138
- task :realworld => ["set_realworld", "spec"]
139
-
140
- task :set_realworld do
141
- ENV['BUNDLER_REALWORLD_TESTS'] = '1'
142
- end
143
-
144
- desc "Run the spec suite with the sudo tests"
145
- task :sudo => ["set_sudo", "spec", "clean_sudo"]
146
-
147
- task :set_sudo do
148
- ENV['BUNDLER_SUDO_TESTS'] = '1'
149
- end
150
-
151
- task :clean_sudo do
152
- puts "Cleaning up sudo test files..."
153
- system "sudo rm -rf #{File.expand_path('../tmp/sudo_gem_home', __FILE__)}"
154
- end
155
-
156
- # Rubygems specs by version
157
- namespace :rubygems do
158
- rubyopt = ENV["RUBYOPT"]
159
- # When editing this list, also edit .travis.yml!
160
- branches = %w(master)
161
- releases = %w(v1.3.6 v1.3.7 v1.4.2 v1.5.3 v1.6.2 v1.7.2 v1.8.29 v2.0.14 v2.1.11 v2.2.3 v2.4.6)
162
- (branches + releases).each do |rg|
163
- desc "Run specs with Rubygems #{rg}"
164
- RSpec::Core::RakeTask.new(rg) do |t|
165
- t.rspec_opts = %w(--format documentation --color)
166
- t.ruby_opts = %w(-w)
167
- end
168
-
169
- # Create tasks like spec:rubygems:v1.8.3:sudo to run the sudo specs
170
- namespace rg do
171
- task :sudo => ["set_sudo", rg, "clean_sudo"]
172
- task :realworld => ["set_realworld", rg]
173
- end
174
-
175
- task "clone_rubygems_#{rg}" do
176
- unless File.directory?(RUBYGEMS_REPO)
177
- system("git clone https://github.com/rubygems/rubygems.git tmp/rubygems")
178
- end
179
- hash = nil
180
-
181
- Dir.chdir(RUBYGEMS_REPO) do
182
- system("git remote update")
183
- if rg == "master"
184
- system("git checkout origin/master")
185
- else
186
- system("git checkout #{rg}") || raise("Unknown Rubygems ref #{rg}")
187
- end
188
- hash = `git rev-parse HEAD`.chomp
189
- end
190
-
191
- puts "Checked out rubygems '#{rg}' at #{hash}"
192
- ENV["RUBYOPT"] = "-I#{File.expand_path("tmp/rubygems/lib")} #{rubyopt}"
193
- puts "RUBYOPT=#{ENV['RUBYOPT']}"
194
- end
195
-
196
- task rg => ["man:build", "clone_rubygems_#{rg}"]
197
- task "rubygems:all" => rg
198
- end
199
-
200
- desc "Run specs under a Rubygems checkout (set RG=path)"
201
- RSpec::Core::RakeTask.new("co") do |t|
202
- t.rspec_opts = %w(--format documentation --color)
203
- t.ruby_opts = %w(-w)
204
- end
205
-
206
- task "setup_co" do
207
- rg = File.expand_path ENV['RG']
208
- puts "Running specs against Rubygems in #{rg}..."
209
- ENV["RUBYOPT"] = "-I#{rg} #{rubyopt}"
210
- end
211
-
212
- task "co" => "setup_co"
213
- task "rubygems:all" => "co"
214
- end
215
-
216
- desc "Run the tests on Travis CI against a rubygem version (using ENV['RGV'])"
217
- task :travis do
218
- rg = ENV['RGV'] || raise("Rubygems version is required on Travis!")
219
-
220
- puts "\n\e[1;33m[Travis CI] Running bundler specs against rubygems #{rg}\e[m\n\n"
221
- specs = safe_task { Rake::Task["spec:rubygems:#{rg}"].invoke }
222
-
223
- Rake::Task["spec:rubygems:#{rg}"].reenable
224
-
225
- puts "\n\e[1;33m[Travis CI] Running bundler sudo specs against rubygems #{rg}\e[m\n\n"
226
- sudos = system("sudo -E rake spec:rubygems:#{rg}:sudo")
227
- # clean up by chowning the newly root-owned tmp directory back to the travis user
228
- system("sudo chown -R #{ENV['USER']} #{File.join(File.dirname(__FILE__), 'tmp')}")
229
-
230
- Rake::Task["spec:rubygems:#{rg}"].reenable
231
-
232
- puts "\n\e[1;33m[Travis CI] Running bundler real world specs against rubygems #{rg}\e[m\n\n"
233
- realworld = safe_task { Rake::Task["spec:rubygems:#{rg}:realworld"].invoke }
234
-
235
- {"specs" => specs, "sudo" => sudos, "realworld" => realworld}.each do |name, passed|
236
- if passed
237
- puts "\e[0;32m[Travis CI] #{name} passed\e[m"
238
- else
239
- puts "\e[0;31m[Travis CI] #{name} failed\e[m"
240
- end
241
- end
242
-
243
- unless specs && sudos && realworld
244
- fail "Spec run failed, please review the log for more information"
245
- end
246
- end
247
- end
248
-
249
- rescue LoadError
250
- task :spec do
251
- abort "Run `rake spec:deps` to be able to run the specs"
252
- end
253
- end
254
-
255
- begin
256
- require 'ronn'
257
-
258
- namespace :man do
259
- directory "lib/bundler/man"
260
-
261
- Dir["man/*.ronn"].each do |ronn|
262
- basename = File.basename(ronn, ".ronn")
263
- roff = "lib/bundler/man/#{basename}"
264
-
265
- file roff => ["lib/bundler/man", ronn] do
266
- sh "#{Gem.ruby} -S ronn --roff --pipe #{ronn} > #{roff}"
267
- end
268
-
269
- file "#{roff}.txt" => roff do
270
- sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt"
271
- end
272
-
273
- task :build_all_pages => "#{roff}.txt"
274
- end
275
-
276
- desc "Build the man pages"
277
- task :build => "man:build_all_pages"
278
-
279
- desc "Clean up from the built man pages"
280
- task :clean do
281
- rm_rf "lib/bundler/man"
282
- end
283
- end
284
-
285
- rescue LoadError
286
- namespace :man do
287
- task(:build) { warn "Install the ronn gem to be able to release!" }
288
- task(:clean) { warn "Install the ronn gem to be able to release!" }
289
- end
290
- end
291
-
292
- desc "Update vendored SSL certs to match the certs vendored by Rubygems"
293
- task :update_certs => "spec:rubygems:clone_rubygems_master" do
294
- require 'bundler/ssl_certs/certificate_manager'
295
- Bundler::SSLCerts::CertificateManager.update_from!(RUBYGEMS_REPO)
296
- end
297
-
298
- require 'bundler/gem_tasks'
299
- task :build => ["man:clean", "man:build"]
300
- task :release => ["man:clean", "man:build"]
301
-
302
- task :default => :spec