bundler 1.13.6 → 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 (323) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +554 -9
  3. data/README.md +28 -5
  4. data/bundler.gemspec +40 -11
  5. data/exe/bundle +4 -8
  6. data/exe/bundle_ruby +4 -3
  7. data/lib/bundler.rb +162 -68
  8. data/lib/bundler/build_metadata.rb +53 -0
  9. data/lib/bundler/capistrano.rb +5 -0
  10. data/lib/bundler/cli.rb +360 -118
  11. data/lib/bundler/cli/add.rb +35 -0
  12. data/lib/bundler/cli/binstubs.rb +18 -10
  13. data/lib/bundler/cli/cache.rb +6 -5
  14. data/lib/bundler/cli/check.rb +4 -6
  15. data/lib/bundler/cli/clean.rb +6 -7
  16. data/lib/bundler/cli/common.rb +47 -1
  17. data/lib/bundler/cli/config.rb +26 -7
  18. data/lib/bundler/cli/console.rb +2 -1
  19. data/lib/bundler/cli/doctor.rb +63 -18
  20. data/lib/bundler/cli/exec.rb +12 -5
  21. data/lib/bundler/cli/gem.rb +59 -21
  22. data/lib/bundler/cli/info.rb +50 -0
  23. data/lib/bundler/cli/init.rb +21 -7
  24. data/lib/bundler/cli/inject.rb +13 -4
  25. data/lib/bundler/cli/install.rb +72 -101
  26. data/lib/bundler/cli/issue.rb +40 -0
  27. data/lib/bundler/cli/list.rb +58 -0
  28. data/lib/bundler/cli/lock.rb +9 -6
  29. data/lib/bundler/cli/open.rb +4 -3
  30. data/lib/bundler/cli/outdated.rb +175 -60
  31. data/lib/bundler/cli/package.rb +9 -6
  32. data/lib/bundler/cli/platform.rb +2 -1
  33. data/lib/bundler/cli/plugin.rb +1 -0
  34. data/lib/bundler/cli/pristine.rb +47 -0
  35. data/lib/bundler/cli/remove.rb +18 -0
  36. data/lib/bundler/cli/show.rb +2 -2
  37. data/lib/bundler/cli/update.rb +44 -34
  38. data/lib/bundler/cli/viz.rb +5 -1
  39. data/lib/bundler/compact_index_client.rb +109 -0
  40. data/lib/bundler/compact_index_client/cache.rb +118 -0
  41. data/lib/bundler/compact_index_client/updater.rb +116 -0
  42. data/lib/bundler/compatibility_guard.rb +14 -0
  43. data/lib/bundler/constants.rb +1 -0
  44. data/lib/bundler/current_ruby.rb +17 -8
  45. data/lib/bundler/definition.rb +353 -182
  46. data/lib/bundler/dep_proxy.rb +3 -1
  47. data/lib/bundler/dependency.rb +22 -10
  48. data/lib/bundler/deployment.rb +1 -1
  49. data/lib/bundler/deprecate.rb +15 -3
  50. data/lib/bundler/dsl.rb +122 -64
  51. data/lib/bundler/endpoint_specification.rb +13 -3
  52. data/lib/bundler/env.rb +110 -38
  53. data/lib/bundler/environment_preserver.rb +27 -6
  54. data/lib/bundler/errors.rb +24 -0
  55. data/lib/bundler/feature_flag.rb +74 -0
  56. data/lib/bundler/fetcher.rb +18 -11
  57. data/lib/bundler/fetcher/base.rb +1 -0
  58. data/lib/bundler/fetcher/compact_index.rb +7 -5
  59. data/lib/bundler/fetcher/dependency.rb +3 -2
  60. data/lib/bundler/fetcher/downloader.rb +25 -7
  61. data/lib/bundler/fetcher/index.rb +3 -2
  62. data/lib/bundler/friendly_errors.rb +33 -7
  63. data/lib/bundler/gem_helper.rb +25 -11
  64. data/lib/bundler/gem_helpers.rb +70 -1
  65. data/lib/bundler/gem_remote_fetcher.rb +1 -0
  66. data/lib/bundler/gem_tasks.rb +1 -0
  67. data/lib/bundler/gem_version_promoter.rb +17 -2
  68. data/lib/bundler/gemdeps.rb +29 -0
  69. data/lib/bundler/graph.rb +1 -0
  70. data/lib/bundler/index.rb +28 -15
  71. data/lib/bundler/injector.rb +216 -33
  72. data/lib/bundler/inline.rb +12 -12
  73. data/lib/bundler/installer.rb +139 -53
  74. data/lib/bundler/installer/gem_installer.rb +15 -5
  75. data/lib/bundler/installer/parallel_installer.rb +113 -28
  76. data/lib/bundler/installer/standalone.rb +1 -0
  77. data/lib/bundler/lazy_specification.rb +31 -3
  78. data/lib/bundler/lockfile_generator.rb +95 -0
  79. data/lib/bundler/lockfile_parser.rb +50 -37
  80. data/lib/bundler/match_platform.rb +13 -3
  81. data/lib/bundler/mirror.rb +10 -5
  82. data/lib/bundler/plugin.rb +22 -8
  83. data/lib/bundler/plugin/api.rb +2 -1
  84. data/lib/bundler/plugin/api/source.rb +17 -4
  85. data/lib/bundler/plugin/events.rb +61 -0
  86. data/lib/bundler/plugin/index.rb +9 -2
  87. data/lib/bundler/plugin/installer.rb +7 -6
  88. data/lib/bundler/plugin/source_list.rb +7 -8
  89. data/lib/bundler/process_lock.rb +24 -0
  90. data/lib/bundler/psyched_yaml.rb +10 -0
  91. data/lib/bundler/remote_specification.rb +30 -1
  92. data/lib/bundler/resolver.rb +187 -194
  93. data/lib/bundler/resolver/spec_group.rb +106 -0
  94. data/lib/bundler/retry.rb +5 -1
  95. data/lib/bundler/ruby_dsl.rb +1 -0
  96. data/lib/bundler/ruby_version.rb +12 -2
  97. data/lib/bundler/rubygems_ext.rb +23 -8
  98. data/lib/bundler/rubygems_gem_installer.rb +90 -0
  99. data/lib/bundler/rubygems_integration.rb +193 -70
  100. data/lib/bundler/runtime.rb +39 -22
  101. data/lib/bundler/settings.rb +245 -85
  102. data/lib/bundler/settings/validator.rb +102 -0
  103. data/lib/bundler/setup.rb +4 -7
  104. data/lib/bundler/shared_helpers.rb +183 -40
  105. data/lib/bundler/similarity_detector.rb +1 -0
  106. data/lib/bundler/source.rb +58 -1
  107. data/lib/bundler/source/gemspec.rb +1 -0
  108. data/lib/bundler/source/git.rb +52 -23
  109. data/lib/bundler/source/git/git_proxy.rb +30 -14
  110. data/lib/bundler/source/metadata.rb +62 -0
  111. data/lib/bundler/source/path.rb +42 -16
  112. data/lib/bundler/source/path/installer.rb +4 -2
  113. data/lib/bundler/source/rubygems.rb +171 -82
  114. data/lib/bundler/source/rubygems/remote.rb +12 -2
  115. data/lib/bundler/source_list.rb +75 -15
  116. data/lib/bundler/spec_set.rb +67 -32
  117. data/lib/bundler/ssl_certs/certificate_manager.rb +2 -1
  118. data/lib/bundler/stub_specification.rb +86 -2
  119. data/lib/bundler/templates/.document +1 -0
  120. data/lib/bundler/templates/Executable +13 -1
  121. data/lib/bundler/templates/Executable.bundler +105 -0
  122. data/lib/bundler/templates/Executable.standalone +5 -5
  123. data/lib/bundler/templates/Gemfile +3 -0
  124. data/lib/bundler/templates/gems.rb +8 -0
  125. data/lib/bundler/templates/newgem/Gemfile.tt +4 -2
  126. data/lib/bundler/templates/newgem/LICENSE.txt.tt +1 -1
  127. data/lib/bundler/templates/newgem/README.md.tt +14 -8
  128. data/lib/bundler/templates/newgem/Rakefile.tt +5 -5
  129. data/lib/bundler/templates/newgem/bin/console.tt +1 -1
  130. data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +4 -4
  131. data/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +3 -3
  132. data/lib/bundler/templates/newgem/gitignore.tt +5 -1
  133. data/lib/bundler/templates/newgem/lib/newgem.rb.tt +7 -6
  134. data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +4 -4
  135. data/lib/bundler/templates/newgem/newgem.gemspec.tt +21 -12
  136. data/lib/bundler/templates/newgem/rspec.tt +1 -0
  137. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +1 -3
  138. data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +13 -1
  139. data/lib/bundler/templates/newgem/test/newgem_test.rb.tt +1 -1
  140. data/lib/bundler/templates/newgem/test/test_helper.rb.tt +3 -3
  141. data/lib/bundler/templates/newgem/{.travis.yml.tt → travis.yml.tt} +2 -0
  142. data/lib/bundler/ui.rb +1 -0
  143. data/lib/bundler/ui/rg_proxy.rb +1 -0
  144. data/lib/bundler/ui/shell.rb +30 -10
  145. data/lib/bundler/ui/silent.rb +21 -1
  146. data/lib/bundler/uri_credentials_filter.rb +1 -0
  147. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1638 -0
  148. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +2 -0
  149. data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +26 -0
  150. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  151. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
  152. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +26 -6
  153. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +2 -1
  154. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +12 -4
  155. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +3 -2
  156. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +63 -0
  157. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +11 -3
  158. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +13 -1
  159. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +3 -2
  160. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +3 -2
  161. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +18 -5
  162. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +75 -7
  163. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  164. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
  165. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +3 -1
  166. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +499 -128
  167. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +1 -0
  168. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +8 -4
  169. data/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/faster.rb +1 -0
  170. data/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/persistent.rb +27 -24
  171. data/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/persistent/ssl_reuse.rb +2 -1
  172. data/lib/bundler/vendor/thor/lib/thor.rb +46 -21
  173. data/lib/bundler/vendor/thor/lib/thor/actions.rb +24 -22
  174. data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +2 -1
  175. data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  176. data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +2 -2
  177. data/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +16 -8
  178. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +66 -18
  179. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +17 -15
  180. data/lib/bundler/vendor/thor/lib/thor/base.rb +55 -32
  181. data/lib/bundler/vendor/thor/lib/thor/command.rb +13 -11
  182. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +21 -1
  183. data/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +7 -5
  184. data/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +94 -63
  185. data/lib/bundler/vendor/thor/lib/thor/error.rb +3 -3
  186. data/lib/bundler/vendor/thor/lib/thor/group.rb +13 -13
  187. data/lib/bundler/vendor/thor/lib/thor/invocation.rb +4 -5
  188. data/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +2 -0
  189. data/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +4 -7
  190. data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +16 -16
  191. data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +42 -21
  192. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +13 -10
  193. data/lib/bundler/vendor/thor/lib/thor/runner.rb +31 -29
  194. data/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  195. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +49 -33
  196. data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -1
  197. data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +4 -4
  198. data/lib/bundler/vendor/thor/lib/thor/util.rb +8 -7
  199. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  200. data/lib/bundler/vendored_fileutils.rb +9 -0
  201. data/lib/bundler/vendored_molinillo.rb +1 -0
  202. data/lib/bundler/vendored_persistent.rb +43 -3
  203. data/lib/bundler/vendored_thor.rb +6 -2
  204. data/lib/bundler/version.rb +19 -2
  205. data/lib/bundler/version_ranges.rb +76 -0
  206. data/lib/bundler/vlad.rb +5 -0
  207. data/lib/bundler/worker.rb +30 -6
  208. data/lib/bundler/yaml_serializer.rb +4 -4
  209. data/man/bundle-add.1 +58 -0
  210. data/man/bundle-add.1.txt +52 -0
  211. data/man/bundle-add.ronn +40 -0
  212. data/{lib/bundler/man/bundle-binstubs → man/bundle-binstubs.1} +11 -1
  213. data/man/bundle-binstubs.1.txt +48 -0
  214. data/man/bundle-binstubs.ronn +15 -1
  215. data/man/bundle-check.1 +31 -0
  216. data/man/bundle-check.1.txt +33 -0
  217. data/man/bundle-check.ronn +26 -0
  218. data/man/bundle-clean.1 +24 -0
  219. data/man/bundle-clean.1.txt +26 -0
  220. data/man/bundle-clean.ronn +18 -0
  221. data/man/bundle-config.1 +497 -0
  222. data/man/bundle-config.1.txt +529 -0
  223. data/man/bundle-config.ronn +233 -61
  224. data/man/bundle-doctor.1 +44 -0
  225. data/man/bundle-doctor.1.txt +44 -0
  226. data/man/bundle-doctor.ronn +33 -0
  227. data/{lib/bundler/man/bundle-exec → man/bundle-exec.1} +6 -3
  228. data/man/bundle-exec.1.txt +178 -0
  229. data/man/bundle-exec.ronn +10 -3
  230. data/{lib/bundler/man/bundle-gem → man/bundle-gem.1} +4 -4
  231. data/man/bundle-gem.1.txt +91 -0
  232. data/man/bundle-gem.ronn +3 -2
  233. data/man/bundle-info.1 +20 -0
  234. data/man/bundle-info.1.txt +21 -0
  235. data/man/bundle-info.ronn +17 -0
  236. data/man/bundle-init.1 +25 -0
  237. data/man/bundle-init.1.txt +34 -0
  238. data/man/bundle-init.ronn +29 -0
  239. data/man/bundle-inject.1 +33 -0
  240. data/man/bundle-inject.1.txt +32 -0
  241. data/man/bundle-inject.ronn +22 -0
  242. data/{lib/bundler/man/bundle-install → man/bundle-install.1} +32 -29
  243. data/man/bundle-install.1.txt +396 -0
  244. data/man/bundle-install.ronn +45 -36
  245. data/man/bundle-list.1 +50 -0
  246. data/man/bundle-list.1.txt +43 -0
  247. data/man/bundle-list.ronn +33 -0
  248. data/{lib/bundler/man/bundle-lock → man/bundle-lock.1} +43 -2
  249. data/man/bundle-lock.1.txt +93 -0
  250. data/man/bundle-lock.ronn +47 -0
  251. data/man/bundle-open.1 +32 -0
  252. data/man/bundle-open.1.txt +29 -0
  253. data/man/bundle-open.ronn +19 -0
  254. data/man/bundle-outdated.1 +155 -0
  255. data/man/bundle-outdated.1.txt +131 -0
  256. data/man/bundle-outdated.ronn +111 -0
  257. data/{lib/bundler/man/bundle-package → man/bundle-package.1} +6 -3
  258. data/man/bundle-package.1.txt +79 -0
  259. data/man/bundle-package.ronn +7 -2
  260. data/{lib/bundler/man/bundle-platform → man/bundle-platform.1} +1 -1
  261. data/man/bundle-platform.1.txt +57 -0
  262. data/man/bundle-pristine.1 +34 -0
  263. data/man/bundle-pristine.1.txt +44 -0
  264. data/man/bundle-pristine.ronn +34 -0
  265. data/man/bundle-remove.1 +31 -0
  266. data/man/bundle-remove.1.txt +34 -0
  267. data/man/bundle-remove.ronn +23 -0
  268. data/man/bundle-show.1 +23 -0
  269. data/man/bundle-show.1.txt +27 -0
  270. data/man/bundle-show.ronn +21 -0
  271. data/man/bundle-update.1 +394 -0
  272. data/man/bundle-update.1.txt +391 -0
  273. data/man/bundle-update.ronn +172 -16
  274. data/man/bundle-viz.1 +39 -0
  275. data/man/bundle-viz.1.txt +39 -0
  276. data/man/bundle-viz.ronn +30 -0
  277. data/{lib/bundler/man/bundle → man/bundle.1} +44 -28
  278. data/man/bundle.1.txt +116 -0
  279. data/man/bundle.ronn +39 -27
  280. data/{lib/bundler/man → man}/gemfile.5 +67 -84
  281. data/man/gemfile.5.ronn +77 -55
  282. data/man/gemfile.5.txt +653 -0
  283. data/man/index.txt +25 -8
  284. metadata +118 -58
  285. data/.codeclimate.yml +0 -25
  286. data/.gitignore +0 -16
  287. data/.rspec +0 -3
  288. data/.rubocop.yml +0 -128
  289. data/.rubocop_todo.yml +0 -248
  290. data/.travis.yml +0 -108
  291. data/CODE_OF_CONDUCT.md +0 -42
  292. data/CONTRIBUTING.md +0 -36
  293. data/DEVELOPMENT.md +0 -148
  294. data/ISSUES.md +0 -100
  295. data/Rakefile +0 -333
  296. data/bin/rake +0 -19
  297. data/bin/rspec +0 -15
  298. data/bin/rubocop +0 -17
  299. data/bin/with_rubygems +0 -39
  300. data/lib/bundler/man/bundle-binstubs.txt +0 -33
  301. data/lib/bundler/man/bundle-config +0 -254
  302. data/lib/bundler/man/bundle-config.txt +0 -282
  303. data/lib/bundler/man/bundle-exec.txt +0 -171
  304. data/lib/bundler/man/bundle-gem.txt +0 -90
  305. data/lib/bundler/man/bundle-install.txt +0 -385
  306. data/lib/bundler/man/bundle-lock.txt +0 -52
  307. data/lib/bundler/man/bundle-package.txt +0 -74
  308. data/lib/bundler/man/bundle-platform.txt +0 -57
  309. data/lib/bundler/man/bundle-update +0 -221
  310. data/lib/bundler/man/bundle-update.txt +0 -227
  311. data/lib/bundler/man/bundle.txt +0 -104
  312. data/lib/bundler/man/gemfile.5.txt +0 -636
  313. data/lib/bundler/postit_trampoline.rb +0 -68
  314. data/lib/bundler/vendor/compact_index_client/lib/compact_index_client.rb +0 -79
  315. data/lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb +0 -112
  316. data/lib/bundler/vendor/compact_index_client/lib/compact_index_client/updater.rb +0 -80
  317. data/lib/bundler/vendor/compact_index_client/lib/compact_index_client/version.rb +0 -4
  318. data/lib/bundler/vendor/postit/lib/postit.rb +0 -15
  319. data/lib/bundler/vendor/postit/lib/postit/environment.rb +0 -44
  320. data/lib/bundler/vendor/postit/lib/postit/installer.rb +0 -28
  321. data/lib/bundler/vendor/postit/lib/postit/parser.rb +0 -21
  322. data/lib/bundler/vendor/postit/lib/postit/setup.rb +0 -12
  323. data/lib/bundler/vendor/postit/lib/postit/version.rb +0 -3
data/ISSUES.md DELETED
@@ -1,100 +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
- ## Documentation
6
-
7
- Instructions for common Bundler uses can be found on the [Bundler documentation site](http://bundler.io/).
8
-
9
- 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) or [Bundler Command Line Reference](http://bundler.io/v1.11/commands.html).
10
-
11
- ## Troubleshooting
12
-
13
- ### Heroku errors
14
-
15
- Please open a ticket with [Heroku](https://www.heroku.com) 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](https://www.heroku.com/support) can get the exact details to us.
16
-
17
- ### Other problems
18
-
19
- First, figure out exactly what it is that you're trying to do (see [XY Problem](http://xyproblem.info/)). Then, go to the [Bundler documentation website](http://bundler.io) and see if we have instructions on how to do that.
20
-
21
- Second, check [the compatibility
22
- list](http://bundler.io/compatibility.html), and make sure that the version of Bundler that you are
23
- using works with the versions of Ruby and Rubygems that you are using. To see your versions:
24
-
25
- # Bundler version
26
- bundle -v
27
-
28
- # Ruby version
29
- ruby -v
30
-
31
- # Rubygems version
32
- gem -v
33
-
34
- If these instructions don't work, or you can't find any appropriate instructions, you can try these troubleshooting steps:
35
-
36
- # Remove user-specific gems and git repos
37
- rm -rf ~/.bundle/ ~/.gem/bundler/ ~/.gems/cache/bundler/
38
-
39
- # Remove system-wide git repos and git checkouts
40
- rm -rf $GEM_HOME/bundler/ $GEM_HOME/cache/bundler/
41
-
42
- # Remove project-specific settings
43
- rm -rf .bundle/
44
-
45
- # Remove project-specific cached gems and repos
46
- rm -rf vendor/cache/
47
-
48
- # Remove the saved resolve of the Gemfile
49
- rm -rf Gemfile.lock
50
-
51
- # Uninstall the rubygems-bundler and open_gem gems
52
- rvm gemset use global # if using rvm
53
- gem uninstall rubygems-bundler open_gem
54
-
55
- # Try to install one more time
56
- bundle install
57
-
58
- ## Reporting unresolved problems
59
-
60
- 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.
61
-
62
- **The best way to report a bug is by providing a reproduction script.** See these examples:
63
-
64
- * [Git environment variables causing install to fail.](https://gist.github.com/xaviershay/6207550)
65
- * [Multiple gems in a repository cannot be updated independently.](https://gist.github.com/xaviershay/6295889)
66
-
67
- A half working script with comments for the parts you were unable to automate is still appreciated.
68
-
69
- If you are unable to do that, please include the following information in your report:
70
-
71
- - What you're trying to accomplish
72
- - The command you ran
73
- - What you expected to happen
74
- - What actually happened
75
- - The exception backtrace(s), if any
76
- - Everything output by running `bundle env`
77
-
78
- If your version of Bundler does not have the `bundle env` command, then please include:
79
-
80
- - Your `Gemfile`
81
- - Your `Gemfile.lock`
82
- - Your Bundler configuration settings (run `bundle config`)
83
- - What version of bundler you are using (run `bundle -v`)
84
- - What version of Ruby you are using (run `ruby -v`)
85
- - What version of Rubygems you are using (run `gem -v`)
86
- - Whether you are using RVM, and if so what version (run `rvm -v`)
87
- - Whether you have the `rubygems-bundler` gem, which can break gem executables (run `gem list rubygems-bundler`)
88
- - Whether you have the `open_gem` gem, which can cause rake activation conflicts (run `gem list open_gem`)
89
-
90
- If you are using Rails 2.3, please also include:
91
-
92
- - Your `boot.rb` file
93
- - Your `preinitializer.rb` file
94
- - Your `environment.rb` file
95
-
96
- 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.
97
-
98
- [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.
99
-
100
- Thanks for reporting issues and helping make Bundler better!
data/Rakefile DELETED
@@ -1,333 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # frozen_string_literal: true
3
- $:.unshift File.expand_path("../lib", __FILE__)
4
- require "shellwords"
5
- require "benchmark"
6
-
7
- RUBYGEMS_REPO = if `cd .. && git remote --verbose 2>/dev/null` =~ /rubygems/i
8
- File.expand_path("..")
9
- else
10
- File.expand_path("tmp/rubygems")
11
- end
12
-
13
- BUNDLER_SPEC = Gem::Specification.load("bundler.gemspec")
14
-
15
- def safe_task(&block)
16
- yield
17
- true
18
- rescue
19
- false
20
- end
21
-
22
- # Benchmark task execution
23
- module Rake
24
- class Task
25
- alias_method :real_invoke, :invoke
26
-
27
- def invoke(*args)
28
- time = Benchmark.measure(@name) do
29
- real_invoke(*args)
30
- end
31
- puts "#{@name} ran for #{time}"
32
- end
33
- end
34
- end
35
-
36
- namespace :spec do
37
- desc "Ensure spec dependencies are installed"
38
- task :deps do
39
- deps = Hash[BUNDLER_SPEC.development_dependencies.map do |d|
40
- [d.name, d.requirement.to_s]
41
- end]
42
- deps["rubocop"] ||= "= 0.41.2" if RUBY_VERSION >= "1.9.3" # can't go in the gemspec because of the ruby version requirement
43
-
44
- # JRuby can't build ronn or rdiscount, so we skip that
45
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
46
- deps.delete("ronn")
47
- deps.delete("rdiscount")
48
- end
49
-
50
- deps.sort_by {|name, _| name }.each do |name, version|
51
- sh %(#{Gem.ruby} -S gem list -i "^#{name}$" -v "#{version}" || ) +
52
- %(#{Gem.ruby} -S gem install #{name} -v "#{version}" --no-ri --no-rdoc)
53
- end
54
-
55
- # Download and install gems used inside tests
56
- $LOAD_PATH.unshift("./spec")
57
- require "support/rubygems_ext"
58
- Spec::Rubygems.setup
59
- end
60
-
61
- namespace :travis do
62
- task :deps do
63
- # Give the travis user a name so that git won't fatally error
64
- system "sudo sed -i 's/1000::/1000:Travis:/g' /etc/passwd"
65
- # Strip secure_path so that RVM paths transmit through sudo -E
66
- system "sudo sed -i '/secure_path/d' /etc/sudoers"
67
- # Install groff so ronn can generate man/help pages
68
- sh "sudo apt-get install groff-base -y"
69
- # Install graphviz so that the viz specs can run
70
- sh "sudo apt-get install graphviz -y 2>&1 | tail -n 2"
71
-
72
- # Install the gems with a consistent version of RubyGems
73
- sh "gem update --system 2.6.4"
74
-
75
- $LOAD_PATH.unshift("./spec")
76
- require "support/rubygems_ext"
77
- Spec::Rubygems::DEPS["codeclimate-test-reporter"] = nil if RUBY_VERSION >= "2.2.0"
78
-
79
- # Install the other gem deps, etc
80
- Rake::Task["spec:deps"].invoke
81
- end
82
- end
83
- end
84
-
85
- begin
86
- rspec = BUNDLER_SPEC.development_dependencies.find {|d| d.name == "rspec" }
87
- gem "rspec", rspec.requirement.to_s
88
- require "rspec/core/rake_task"
89
-
90
- desc "Run specs"
91
- RSpec::Core::RakeTask.new
92
- task :spec => "man:build"
93
-
94
- if RUBY_VERSION >= "1.9.3"
95
- # can't go in the gemspec because of the ruby version requirement
96
- gem "rubocop", "= 0.41.2"
97
- require "rubocop/rake_task"
98
- RuboCop::RakeTask.new
99
- end
100
-
101
- namespace :spec do
102
- task :clean do
103
- rm_rf "tmp"
104
- end
105
-
106
- desc "Run the real-world spec suite (requires internet)"
107
- task :realworld => %w(set_realworld spec)
108
-
109
- task :set_realworld do
110
- ENV["BUNDLER_REALWORLD_TESTS"] = "1"
111
- end
112
-
113
- desc "Run the spec suite with the sudo tests"
114
- task :sudo => %w(set_sudo spec clean_sudo)
115
-
116
- task :set_sudo do
117
- ENV["BUNDLER_SUDO_TESTS"] = "1"
118
- end
119
-
120
- task :clean_sudo do
121
- puts "Cleaning up sudo test files..."
122
- system "sudo rm -rf #{File.expand_path("../tmp/sudo_gem_home", __FILE__)}"
123
- end
124
-
125
- # Rubygems specs by version
126
- namespace :rubygems do
127
- rubyopt = ENV["RUBYOPT"]
128
- # When editing this list, also edit .travis.yml!
129
- branches = %w(master)
130
- 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.5 v2.4.8 v2.6.4)
131
- (branches + releases).each do |rg|
132
- desc "Run specs with Rubygems #{rg}"
133
- RSpec::Core::RakeTask.new(rg) do |t|
134
- t.rspec_opts = %w(--format progress --color)
135
- t.ruby_opts = %w(-w)
136
- end
137
-
138
- # Create tasks like spec:rubygems:v1.8.3:sudo to run the sudo specs
139
- namespace rg do
140
- task :sudo => ["set_sudo", rg, "clean_sudo"]
141
- task :realworld => ["set_realworld", rg]
142
- end
143
-
144
- task "clone_rubygems_#{rg}" do
145
- unless File.directory?(RUBYGEMS_REPO)
146
- system("git clone https://github.com/rubygems/rubygems.git tmp/rubygems")
147
- end
148
- hash = nil
149
-
150
- if RUBYGEMS_REPO.start_with?(Dir.pwd)
151
- Dir.chdir(RUBYGEMS_REPO) do
152
- system("git remote update")
153
- if rg == "master"
154
- system("git checkout origin/master")
155
- else
156
- system("git checkout #{rg}") || raise("Unknown Rubygems ref #{rg}")
157
- end
158
- hash = `git rev-parse HEAD`.chomp
159
- end
160
- elsif rg != "master"
161
- raise "need to be running against master with bundler as a submodule"
162
- end
163
-
164
- puts "Checked out rubygems '#{rg}' at #{hash}"
165
- ENV["RUBYOPT"] = "-I#{File.join(RUBYGEMS_REPO, "lib")} #{rubyopt}"
166
- puts "RUBYOPT=#{ENV["RUBYOPT"]}"
167
- end
168
-
169
- task rg => ["man:build", "clone_rubygems_#{rg}"]
170
- task "rubygems:all" => rg
171
- end
172
-
173
- desc "Run specs under a Rubygems checkout (set RG=path)"
174
- RSpec::Core::RakeTask.new("co") do |t|
175
- t.rspec_opts = %w(--format documentation --color)
176
- t.ruby_opts = %w(-w)
177
- end
178
-
179
- task "setup_co" do
180
- rg = File.expand_path ENV["RG"]
181
- puts "Running specs against Rubygems in #{rg}..."
182
- ENV["RUBYOPT"] = "-I#{rg} #{rubyopt}"
183
- end
184
-
185
- task "co" => "setup_co"
186
- task "rubygems:all" => "co"
187
- end
188
-
189
- desc "Run the tests on Travis CI against a rubygem version (using ENV['RGV'])"
190
- task :travis do
191
- rg = ENV["RGV"] || raise("Rubygems version is required on Travis!")
192
-
193
- if RUBY_VERSION > "1.9.3"
194
- puts "\n\e[1;33m[Travis CI] Running bundler linter\e[m\n\n"
195
- Rake::Task["rubocop"].invoke
196
- end
197
-
198
- puts "\n\e[1;33m[Travis CI] Running bundler specs against rubygems #{rg}\e[m\n\n"
199
- specs = safe_task { Rake::Task["spec:rubygems:#{rg}"].invoke }
200
-
201
- Rake::Task["spec:rubygems:#{rg}"].reenable
202
-
203
- puts "\n\e[1;33m[Travis CI] Running bundler sudo specs against rubygems #{rg}\e[m\n\n"
204
- sudos = system("sudo -E rake spec:rubygems:#{rg}:sudo")
205
- # clean up by chowning the newly root-owned tmp directory back to the travis user
206
- system("sudo chown -R #{ENV["USER"]} #{File.join(File.dirname(__FILE__), "tmp")}")
207
-
208
- Rake::Task["spec:rubygems:#{rg}"].reenable
209
-
210
- puts "\n\e[1;33m[Travis CI] Running bundler real world specs against rubygems #{rg}\e[m\n\n"
211
- realworld = safe_task { Rake::Task["spec:rubygems:#{rg}:realworld"].invoke }
212
-
213
- { "specs" => specs, "sudo" => sudos, "realworld" => realworld }.each do |name, passed|
214
- if passed
215
- puts "\e[0;32m[Travis CI] #{name} passed\e[m"
216
- else
217
- puts "\e[0;31m[Travis CI] #{name} failed\e[m"
218
- end
219
- end
220
-
221
- unless specs && sudos && realworld
222
- raise "Spec run failed, please review the log for more information"
223
- end
224
- end
225
- end
226
-
227
- rescue LoadError
228
- task :spec do
229
- abort "Run `rake spec:deps` to be able to run the specs"
230
- end
231
-
232
- task :rubocop do
233
- abort "Run `rake spec:deps` to be able to run rubocop"
234
- end
235
- end
236
-
237
- begin
238
- require "ronn"
239
-
240
- namespace :man do
241
- directory "lib/bundler/man"
242
-
243
- sources = Dir["man/*.ronn"].map {|f| File.basename(f, ".ronn") }
244
- sources.map do |basename|
245
- ronn = "man/#{basename}.ronn"
246
- roff = "lib/bundler/man/#{basename}"
247
-
248
- file roff => ["lib/bundler/man", ronn] do
249
- sh "#{Gem.ruby} -S ronn --roff --pipe #{ronn} > #{roff}"
250
- end
251
-
252
- file "#{roff}.txt" => roff do
253
- sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt"
254
- end
255
-
256
- task :build_all_pages => "#{roff}.txt"
257
- end
258
-
259
- task :clean do
260
- leftovers = Dir["lib/bundler/man/*"].reject do |f|
261
- basename = File.basename(f).sub(/\.(txt|ronn)/, "")
262
- sources.include?(basename)
263
- end
264
- rm leftovers if leftovers.any?
265
- end
266
-
267
- desc "Build the man pages"
268
- task :build => ["man:clean", "man:build_all_pages"]
269
-
270
- desc "Remove all built man pages"
271
- task :clobber do
272
- rm_rf "lib/bundler/man"
273
- end
274
-
275
- task(:require) {}
276
- end
277
-
278
- rescue LoadError
279
- namespace :man do
280
- task(:require) { abort "Install the ronn gem to be able to release!" }
281
- task(:build) { warn "Install the ronn gem to build the help pages" }
282
- end
283
- end
284
-
285
- begin
286
- require "automatiek"
287
-
288
- Automatiek::RakeTask.new("compact_index_client") do |lib|
289
- lib.download = { :github => "https://github.com/bundler/compact_index_client" }
290
- lib.namespace = "CompactIndexClient"
291
- lib.prefix = "Bundler"
292
- lib.vendor_lib = "lib/bundler/vendor/compact_index_client"
293
- end
294
-
295
- Automatiek::RakeTask.new("molinillo") do |lib|
296
- lib.download = { :github => "https://github.com/CocoaPods/Molinillo" }
297
- lib.namespace = "Molinillo"
298
- lib.prefix = "Bundler"
299
- lib.vendor_lib = "lib/bundler/vendor/molinillo"
300
- end
301
-
302
- Automatiek::RakeTask.new("thor") do |lib|
303
- lib.download = { :github => "https://github.com/erikhuda/thor" }
304
- lib.namespace = "Thor"
305
- lib.prefix = "Bundler"
306
- lib.vendor_lib = "lib/bundler/vendor/thor"
307
- end
308
-
309
- Automatiek::RakeTask.new("postit") do |lib|
310
- lib.download = { :github => "https://github.com/bundler/postit" }
311
- lib.namespace = "PostIt"
312
- lib.prefix = "BundlerVendoredPostIt"
313
- lib.vendor_lib = "lib/bundler/vendor/postit"
314
- end
315
- rescue LoadError
316
- namespace :vendor do
317
- task(:molinillo) { abort "Install the automatiek gem to be able to vendor gems." }
318
- task(:thor) { abort "Install the automatiek gem to be able to vendor gems." }
319
- task(:postit) { abort "Install the automatiek gem to be able to vendor gems." }
320
- end
321
- end
322
-
323
- desc "Update vendored SSL certs to match the certs vendored by Rubygems"
324
- task :update_certs => "spec:rubygems:clone_rubygems_master" do
325
- require "bundler/ssl_certs/certificate_manager"
326
- Bundler::SSLCerts::CertificateManager.update_from!(RUBYGEMS_REPO)
327
- end
328
-
329
- require "bundler/gem_tasks"
330
- task :build => ["man:build"]
331
- task :release => ["man:require", "man:build"]
332
-
333
- task :default => :spec
data/bin/rake DELETED
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- load File.expand_path("../with_rubygems", __FILE__) if ENV["RGV"]
5
-
6
- require "rubygems"
7
-
8
- bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__))
9
- bundler_spec.dependencies.each do |dep|
10
- begin
11
- gem dep.name, dep.requirement
12
- rescue Gem::LoadError => e
13
- $stderr.puts "#{e.message} (#{e.class})"
14
- end
15
- end
16
-
17
- Gem.finish_resolve if Gem.respond_to?(:finish_resolve)
18
-
19
- load Gem.bin_path("rake", "rake")