bundler 1.17.3 → 2.4.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (383) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2786 -1256
  3. data/LICENSE.md +18 -19
  4. data/README.md +10 -14
  5. data/bundler.gemspec +13 -33
  6. data/exe/bundle +15 -8
  7. data/exe/bundler +1 -1
  8. data/lib/bundler/.document +1 -0
  9. data/lib/bundler/build_metadata.rb +4 -12
  10. data/lib/bundler/capistrano.rb +4 -4
  11. data/lib/bundler/cli/add.rb +28 -16
  12. data/lib/bundler/cli/binstubs.rb +12 -4
  13. data/lib/bundler/cli/cache.rb +24 -17
  14. data/lib/bundler/cli/check.rb +5 -3
  15. data/lib/bundler/cli/clean.rb +1 -1
  16. data/lib/bundler/cli/common.rb +41 -13
  17. data/lib/bundler/cli/config.rb +170 -86
  18. data/lib/bundler/cli/console.rb +3 -3
  19. data/lib/bundler/cli/doctor.rb +27 -10
  20. data/lib/bundler/cli/exec.rb +8 -25
  21. data/lib/bundler/cli/fund.rb +36 -0
  22. data/lib/bundler/cli/gem.rb +261 -48
  23. data/lib/bundler/cli/info.rb +53 -9
  24. data/lib/bundler/cli/init.rb +7 -3
  25. data/lib/bundler/cli/inject.rb +1 -1
  26. data/lib/bundler/cli/install.rb +39 -67
  27. data/lib/bundler/cli/issue.rb +8 -7
  28. data/lib/bundler/cli/list.rb +19 -11
  29. data/lib/bundler/cli/lock.rb +11 -4
  30. data/lib/bundler/cli/open.rb +14 -9
  31. data/lib/bundler/cli/outdated.rb +153 -122
  32. data/lib/bundler/cli/platform.rb +8 -6
  33. data/lib/bundler/cli/plugin.rb +19 -2
  34. data/lib/bundler/cli/pristine.rb +6 -1
  35. data/lib/bundler/cli/remove.rb +1 -2
  36. data/lib/bundler/cli/show.rb +3 -3
  37. data/lib/bundler/cli/update.rb +49 -18
  38. data/lib/bundler/cli/viz.rb +1 -1
  39. data/lib/bundler/cli.rb +269 -165
  40. data/lib/bundler/compact_index_client/cache.rb +7 -24
  41. data/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  42. data/lib/bundler/compact_index_client/updater.rb +58 -57
  43. data/lib/bundler/compact_index_client.rb +28 -18
  44. data/lib/bundler/constants.rb +1 -1
  45. data/lib/bundler/current_ruby.rb +26 -11
  46. data/lib/bundler/definition.rb +432 -464
  47. data/lib/bundler/dependency.rb +29 -71
  48. data/lib/bundler/deployment.rb +1 -1
  49. data/lib/bundler/digest.rb +71 -0
  50. data/lib/bundler/dsl.rb +85 -117
  51. data/lib/bundler/endpoint_specification.rb +16 -14
  52. data/lib/bundler/env.rb +11 -16
  53. data/lib/bundler/environment_preserver.rb +32 -5
  54. data/lib/bundler/errors.rb +31 -14
  55. data/lib/bundler/feature_flag.rb +12 -33
  56. data/lib/bundler/fetcher/base.rb +7 -9
  57. data/lib/bundler/fetcher/compact_index.rb +47 -40
  58. data/lib/bundler/fetcher/dependency.rb +3 -7
  59. data/lib/bundler/fetcher/downloader.rb +17 -12
  60. data/lib/bundler/fetcher/index.rb +5 -32
  61. data/lib/bundler/fetcher.rb +51 -43
  62. data/lib/bundler/force_platform.rb +18 -0
  63. data/lib/bundler/friendly_errors.rb +49 -54
  64. data/lib/bundler/gem_helper.rb +81 -46
  65. data/lib/bundler/gem_helpers.rb +44 -28
  66. data/lib/bundler/gem_tasks.rb +1 -1
  67. data/lib/bundler/gem_version_promoter.rb +54 -99
  68. data/lib/bundler/graph.rb +5 -5
  69. data/lib/bundler/index.rb +16 -54
  70. data/lib/bundler/injector.rb +51 -17
  71. data/lib/bundler/inline.rb +28 -29
  72. data/lib/bundler/installer/gem_installer.rb +22 -23
  73. data/lib/bundler/installer/parallel_installer.rb +39 -52
  74. data/lib/bundler/installer/standalone.rb +62 -12
  75. data/lib/bundler/installer.rb +47 -98
  76. data/lib/bundler/lazy_specification.rb +88 -52
  77. data/lib/bundler/lockfile_generator.rb +4 -4
  78. data/lib/bundler/lockfile_parser.rb +41 -72
  79. data/{man → lib/bundler/man}/bundle-add.1 +29 -5
  80. data/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +22 -4
  81. data/{man → lib/bundler/man}/bundle-binstubs.1 +6 -4
  82. data/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +3 -5
  83. data/lib/bundler/man/bundle-cache.1 +61 -0
  84. data/{man/bundle-package.ronn → lib/bundler/man/bundle-cache.1.ronn} +24 -17
  85. data/{man → lib/bundler/man}/bundle-check.1 +1 -1
  86. data/{man → lib/bundler/man}/bundle-clean.1 +2 -2
  87. data/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +1 -1
  88. data/{man → lib/bundler/man}/bundle-config.1 +78 -63
  89. data/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +96 -88
  90. data/lib/bundler/man/bundle-console.1 +53 -0
  91. data/lib/bundler/man/bundle-console.1.ronn +44 -0
  92. data/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
  93. data/{man → lib/bundler/man}/bundle-exec.1 +6 -6
  94. data/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +6 -6
  95. data/lib/bundler/man/bundle-gem.1 +105 -0
  96. data/lib/bundler/man/bundle-gem.1.ronn +117 -0
  97. data/lib/bundler/man/bundle-help.1 +13 -0
  98. data/lib/bundler/man/bundle-help.1.ronn +12 -0
  99. data/{man → lib/bundler/man}/bundle-info.1 +3 -3
  100. data/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +3 -3
  101. data/{man → lib/bundler/man}/bundle-init.1 +6 -2
  102. data/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +3 -1
  103. data/{man → lib/bundler/man}/bundle-inject.1 +5 -2
  104. data/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +3 -1
  105. data/{man → lib/bundler/man}/bundle-install.1 +42 -37
  106. data/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +42 -38
  107. data/{man → lib/bundler/man}/bundle-list.1 +7 -7
  108. data/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  109. data/{man → lib/bundler/man}/bundle-lock.1 +1 -1
  110. data/{man → lib/bundler/man}/bundle-open.1 +22 -2
  111. data/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +9 -1
  112. data/{man → lib/bundler/man}/bundle-outdated.1 +15 -18
  113. data/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +13 -19
  114. data/{man → lib/bundler/man}/bundle-platform.1 +16 -6
  115. data/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +14 -7
  116. data/lib/bundler/man/bundle-plugin.1 +81 -0
  117. data/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  118. data/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
  119. data/{man → lib/bundler/man}/bundle-remove.1 +1 -1
  120. data/{man → lib/bundler/man}/bundle-show.1 +1 -1
  121. data/{man → lib/bundler/man}/bundle-update.1 +8 -8
  122. data/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +8 -7
  123. data/lib/bundler/man/bundle-version.1 +35 -0
  124. data/lib/bundler/man/bundle-version.1.ronn +24 -0
  125. data/{man → lib/bundler/man}/bundle-viz.1 +4 -1
  126. data/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +2 -0
  127. data/{man → lib/bundler/man}/bundle.1 +17 -12
  128. data/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +14 -9
  129. data/{man → lib/bundler/man}/gemfile.5 +139 -92
  130. data/{man → lib/bundler/man}/gemfile.5.ronn +118 -96
  131. data/{man → lib/bundler/man}/index.txt +5 -1
  132. data/lib/bundler/match_metadata.rb +13 -0
  133. data/lib/bundler/match_platform.rb +1 -2
  134. data/lib/bundler/match_remote_metadata.rb +29 -0
  135. data/lib/bundler/mirror.rb +10 -12
  136. data/lib/bundler/plugin/api/source.rb +29 -15
  137. data/lib/bundler/plugin/api.rb +1 -1
  138. data/lib/bundler/plugin/dsl.rb +1 -1
  139. data/lib/bundler/plugin/index.rb +32 -9
  140. data/lib/bundler/plugin/installer/git.rb +0 -4
  141. data/lib/bundler/plugin/installer/rubygems.rb +1 -9
  142. data/lib/bundler/plugin/installer.rb +40 -24
  143. data/lib/bundler/plugin/source_list.rb +5 -1
  144. data/lib/bundler/plugin.rb +103 -43
  145. data/lib/bundler/process_lock.rb +1 -1
  146. data/lib/bundler/remote_specification.rb +12 -9
  147. data/lib/bundler/resolver/base.rb +107 -0
  148. data/lib/bundler/resolver/candidate.rb +94 -0
  149. data/lib/bundler/resolver/incompatibility.rb +15 -0
  150. data/lib/bundler/resolver/package.rb +72 -0
  151. data/lib/bundler/resolver/root.rb +25 -0
  152. data/lib/bundler/resolver/spec_group.rb +49 -73
  153. data/lib/bundler/resolver.rb +355 -301
  154. data/lib/bundler/retry.rb +4 -4
  155. data/lib/bundler/ruby_dsl.rb +7 -1
  156. data/lib/bundler/ruby_version.rb +12 -40
  157. data/lib/bundler/rubygems_ext.rb +237 -92
  158. data/lib/bundler/rubygems_gem_installer.rb +87 -21
  159. data/lib/bundler/rubygems_integration.rb +180 -516
  160. data/lib/bundler/runtime.rb +26 -41
  161. data/lib/bundler/safe_marshal.rb +31 -0
  162. data/lib/bundler/self_manager.rb +168 -0
  163. data/lib/bundler/settings.rb +164 -120
  164. data/lib/bundler/setup.rb +14 -12
  165. data/lib/bundler/shared_helpers.rb +62 -103
  166. data/lib/bundler/similarity_detector.rb +3 -3
  167. data/lib/bundler/source/git/git_proxy.rb +292 -128
  168. data/lib/bundler/source/git.rb +114 -64
  169. data/lib/bundler/source/metadata.rb +9 -9
  170. data/lib/bundler/source/path/installer.rb +11 -32
  171. data/lib/bundler/source/path.rb +29 -18
  172. data/lib/bundler/source/rubygems/remote.rb +3 -4
  173. data/lib/bundler/source/rubygems.rb +181 -208
  174. data/lib/bundler/source/rubygems_aggregate.rb +68 -0
  175. data/lib/bundler/source.rb +31 -11
  176. data/lib/bundler/source_list.rb +108 -67
  177. data/lib/bundler/source_map.rb +71 -0
  178. data/lib/bundler/spec_set.rb +96 -72
  179. data/lib/bundler/stub_specification.rb +45 -37
  180. data/lib/bundler/templates/Executable +3 -5
  181. data/lib/bundler/templates/Executable.bundler +22 -18
  182. data/lib/bundler/templates/Executable.standalone +4 -4
  183. data/lib/bundler/templates/Gemfile +0 -2
  184. data/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  185. data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  186. data/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  187. data/lib/bundler/templates/newgem/Gemfile.tt +22 -2
  188. data/lib/bundler/templates/newgem/README.md.tt +13 -15
  189. data/lib/bundler/templates/newgem/Rakefile.tt +43 -5
  190. data/lib/bundler/templates/newgem/bin/console.tt +1 -4
  191. data/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
  192. data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  193. data/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  194. data/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  195. data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  196. data/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  197. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +37 -0
  198. data/lib/bundler/templates/newgem/gitignore.tt +3 -0
  199. data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
  200. data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  201. data/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  202. data/lib/bundler/templates/newgem/newgem.gemspec.tt +37 -41
  203. data/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  204. data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  205. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  206. data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  207. data/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  208. data/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
  209. data/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/test_newgem.rb.tt} +3 -1
  210. data/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  211. data/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  212. data/lib/bundler/ui/rg_proxy.rb +2 -2
  213. data/lib/bundler/ui/shell.rb +39 -20
  214. data/lib/bundler/ui/silent.rb +21 -5
  215. data/lib/bundler/ui.rb +3 -3
  216. data/lib/bundler/uri_credentials_filter.rb +10 -4
  217. data/lib/bundler/uri_normalizer.rb +23 -0
  218. data/lib/bundler/vendor/.document +1 -0
  219. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  220. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +174 -0
  221. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  222. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
  223. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +128 -0
  224. data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  225. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1493 -425
  226. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  227. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
  228. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
  229. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  230. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +302 -462
  231. data/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  232. data/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  233. data/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  234. data/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  235. data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  236. data/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  237. data/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  238. data/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  239. data/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  240. data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  241. data/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  242. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  243. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  244. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  245. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  246. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  247. data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  248. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  249. data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
  250. data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +3 -2
  251. data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +7 -17
  252. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +25 -14
  253. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +20 -10
  254. data/lib/bundler/vendor/thor/lib/thor/actions.rb +34 -15
  255. data/lib/bundler/vendor/thor/lib/thor/base.rb +63 -43
  256. data/lib/bundler/vendor/thor/lib/thor/command.rb +21 -14
  257. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
  258. data/lib/bundler/vendor/thor/lib/thor/error.rb +83 -0
  259. data/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
  260. data/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -0
  261. data/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +1 -1
  262. data/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +6 -6
  263. data/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
  264. data/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
  265. data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +7 -3
  266. data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +20 -7
  267. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +40 -6
  268. data/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
  269. data/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +1 -0
  270. data/lib/bundler/vendor/thor/lib/thor/runner.rb +15 -14
  271. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +88 -13
  272. data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +10 -2
  273. data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -3
  274. data/lib/bundler/vendor/thor/lib/thor/shell.rb +5 -5
  275. data/lib/bundler/vendor/thor/lib/thor/util.rb +18 -2
  276. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  277. data/lib/bundler/vendor/thor/lib/thor.rb +16 -9
  278. data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  279. data/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
  280. data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  281. data/lib/bundler/vendor/uri/lib/uri/common.rb +729 -0
  282. data/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
  283. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
  284. data/lib/bundler/vendor/uri/lib/uri/generic.rb +1587 -0
  285. data/lib/bundler/vendor/uri/lib/uri/http.rb +125 -0
  286. data/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
  287. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
  288. data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
  289. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
  290. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +539 -0
  291. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +119 -0
  292. data/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
  293. data/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  294. data/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  295. data/lib/bundler/vendor/uri/lib/uri.rb +104 -0
  296. data/lib/bundler/vendored_fileutils.rb +1 -6
  297. data/lib/bundler/vendored_persistent.rb +2 -39
  298. data/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
  299. data/lib/bundler/vendored_thor.rb +2 -2
  300. data/lib/bundler/vendored_tsort.rb +4 -0
  301. data/lib/bundler/vendored_uri.rb +4 -0
  302. data/lib/bundler/version.rb +5 -20
  303. data/lib/bundler/vlad.rb +2 -2
  304. data/lib/bundler/worker.rb +26 -15
  305. data/lib/bundler/yaml_serializer.rb +3 -4
  306. data/lib/bundler.rb +285 -190
  307. metadata +157 -218
  308. data/exe/bundle_ruby +0 -60
  309. data/lib/bundler/cli/package.rb +0 -49
  310. data/lib/bundler/compatibility_guard.rb +0 -14
  311. data/lib/bundler/dep_proxy.rb +0 -48
  312. data/lib/bundler/gem_remote_fetcher.rb +0 -43
  313. data/lib/bundler/gemdeps.rb +0 -29
  314. data/lib/bundler/psyched_yaml.rb +0 -37
  315. data/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
  316. data/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
  317. data/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  318. data/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  319. data/lib/bundler/templates/gems.rb +0 -8
  320. data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -3
  321. data/lib/bundler/templates/newgem/test/test_helper.rb.tt +0 -4
  322. data/lib/bundler/templates/newgem/travis.yml.tt +0 -7
  323. data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  324. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  325. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -81
  326. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  327. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  328. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  329. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  330. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  331. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  332. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  333. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  334. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -136
  335. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -223
  336. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
  337. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  338. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -101
  339. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  340. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -837
  341. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  342. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  343. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -12
  344. data/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
  345. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
  346. data/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +0 -12
  347. data/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -129
  348. data/lib/bundler/version_ranges.rb +0 -76
  349. data/man/bundle-add.1.txt +0 -52
  350. data/man/bundle-binstubs.1.txt +0 -48
  351. data/man/bundle-check.1.txt +0 -33
  352. data/man/bundle-clean.1.txt +0 -26
  353. data/man/bundle-config.1.txt +0 -529
  354. data/man/bundle-doctor.1.txt +0 -44
  355. data/man/bundle-exec.1.txt +0 -178
  356. data/man/bundle-gem.1 +0 -80
  357. data/man/bundle-gem.1.txt +0 -91
  358. data/man/bundle-gem.ronn +0 -78
  359. data/man/bundle-info.1.txt +0 -21
  360. data/man/bundle-init.1.txt +0 -34
  361. data/man/bundle-inject.1.txt +0 -32
  362. data/man/bundle-install.1.txt +0 -396
  363. data/man/bundle-list.1.txt +0 -43
  364. data/man/bundle-lock.1.txt +0 -93
  365. data/man/bundle-open.1.txt +0 -29
  366. data/man/bundle-outdated.1.txt +0 -131
  367. data/man/bundle-package.1 +0 -55
  368. data/man/bundle-package.1.txt +0 -79
  369. data/man/bundle-platform.1.txt +0 -57
  370. data/man/bundle-pristine.1.txt +0 -44
  371. data/man/bundle-remove.1.txt +0 -34
  372. data/man/bundle-show.1.txt +0 -27
  373. data/man/bundle-update.1.txt +0 -391
  374. data/man/bundle-viz.1.txt +0 -39
  375. data/man/bundle.1.txt +0 -116
  376. data/man/gemfile.5.txt +0 -653
  377. /data/lib/bundler/{ssl_certs → man}/.document +0 -0
  378. /data/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  379. /data/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  380. /data/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  381. /data/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  382. /data/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  383. /data/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
@@ -8,11 +8,11 @@ module Bundler
8
8
  end
9
9
 
10
10
  def run
11
- Bundler.ui.level = "error" if options[:quiet]
11
+ Bundler.ui.level = "warn" if options[:quiet]
12
12
 
13
13
  warn_if_root
14
14
 
15
- normalize_groups
15
+ Bundler.self_manager.install_locked_bundler_and_restart_with_it_if_needed
16
16
 
17
17
  Bundler::SharedHelpers.set_env "RB_USER_INSTALL", "1" if Bundler::FREEBSD
18
18
 
@@ -35,11 +35,8 @@ module Bundler
35
35
 
36
36
  options[:local] = true if Bundler.app_cache.exist?
37
37
 
38
- if Bundler.feature_flag.deployment_means_frozen?
39
- Bundler.settings.set_command_option :deployment, true
40
- else
41
- Bundler.settings.set_command_option :frozen, true
42
- end
38
+ Bundler.settings.set_command_option :deployment, true if options[:deployment]
39
+ Bundler.settings.set_command_option :frozen, true if options[:frozen]
43
40
  end
44
41
 
45
42
  # When install is called with --no-deployment, disable deployment mode
@@ -54,7 +51,7 @@ module Bundler
54
51
 
55
52
  if options["binstubs"]
56
53
  Bundler::SharedHelpers.major_deprecation 2,
57
- "The --binstubs option will be removed in favor of `bundle binstubs`"
54
+ "The --binstubs option will be removed in favor of `bundle binstubs --all`"
58
55
  end
59
56
 
60
57
  Plugin.gemfile_install(Bundler.default_gemfile) if Bundler.feature_flag.plugins?
@@ -63,10 +60,13 @@ module Bundler
63
60
  definition.validate_runtime!
64
61
 
65
62
  installer = Installer.install(Bundler.root, definition, options)
66
- Bundler.load.cache if Bundler.app_cache.exist? && !options["no-cache"] && !Bundler.frozen_bundle?
63
+
64
+ Bundler.settings.temporary(:cache_all_platforms => options[:local] ? false : Bundler.settings[:cache_all_platforms]) do
65
+ Bundler.load.cache(nil, options[:local]) if Bundler.app_cache.exist? && !options["no-cache"] && !Bundler.frozen_bundle?
66
+ end
67
67
 
68
68
  Bundler.ui.confirm "Bundle complete! #{dependencies_count_for(definition)}, #{gems_installed_for(definition)}."
69
- Bundler::CLI::Common.output_without_groups_message
69
+ Bundler::CLI::Common.output_without_groups_message(:install)
70
70
 
71
71
  if Bundler.use_system_gems?
72
72
  Bundler.ui.confirm "Use `bundle info [gemname]` to see where a bundled gem is installed."
@@ -80,34 +80,22 @@ module Bundler
80
80
  warn_ambiguous_gems
81
81
 
82
82
  if CLI::Common.clean_after_install?
83
- require "bundler/cli/clean"
83
+ require_relative "clean"
84
84
  Bundler::CLI::Clean.new(options).run
85
85
  end
86
- rescue GemNotFound, VersionConflict => e
87
- if options[:local] && Bundler.app_cache.exist?
88
- Bundler.ui.warn "Some gems seem to be missing from your #{Bundler.settings.app_cache_path} directory."
89
- end
90
86
 
91
- unless Bundler.definition.has_rubygems_remotes?
92
- Bundler.ui.warn <<-WARN, :wrap => true
93
- Your Gemfile has no gem server sources. If you need gems that are \
94
- not already on your machine, add a line like this to your Gemfile:
95
- source 'https://rubygems.org'
96
- WARN
97
- end
98
- raise e
99
- rescue Gem::InvalidSpecificationException => e
87
+ Bundler::CLI::Common.output_fund_metadata_summary
88
+ rescue Gem::InvalidSpecificationException
100
89
  Bundler.ui.warn "You have one or more invalid gemspecs that need to be fixed."
101
- raise e
90
+ raise
102
91
  end
103
92
 
104
- private
93
+ private
105
94
 
106
95
  def warn_if_root
107
- return if Bundler.settings[:silence_root_warning] || Bundler::WINDOWS || !Process.uid.zero?
108
- Bundler.ui.warn "Don't run Bundler as root. Bundler can ask for sudo " \
109
- "if it is needed, and installing your bundle as root will break this " \
110
- "application for all non-root users on this machine.", :wrap => true
96
+ return if Bundler.settings[:silence_root_warning] || Gem.win_platform? || !Process.uid.zero?
97
+ Bundler.ui.warn "Don't run Bundler as root. Installing your bundle as root " \
98
+ "will break this application for all non-root users on this machine.", :wrap => true
111
99
  end
112
100
 
113
101
  def dependencies_count_for(definition)
@@ -146,38 +134,27 @@ module Bundler
146
134
  end
147
135
 
148
136
  def normalize_groups
149
- options[:with] &&= options[:with].join(":").tr(" ", ":").split(":")
150
- options[:without] &&= options[:without].join(":").tr(" ", ":").split(":")
151
-
152
137
  check_for_group_conflicts_in_cli_options
153
138
 
154
- Bundler.settings.set_command_option :with, nil if options[:with] == []
155
- Bundler.settings.set_command_option :without, nil if options[:without] == []
156
-
157
- with = options.fetch(:with, [])
158
- with |= Bundler.settings[:with].map(&:to_s)
159
- with -= options[:without] if options[:without]
160
-
161
- without = options.fetch(:without, [])
162
- without |= Bundler.settings[:without].map(&:to_s)
163
- without -= options[:with] if options[:with]
164
-
165
- options[:with] = with
166
- options[:without] = without
139
+ # need to nil them out first to get around validation for backwards compatibility
140
+ Bundler.settings.set_command_option :without, nil
141
+ Bundler.settings.set_command_option :with, nil
142
+ Bundler.settings.set_command_option :without, options[:without]
143
+ Bundler.settings.set_command_option :with, options[:with]
167
144
  end
168
145
 
169
146
  def normalize_settings
170
147
  Bundler.settings.set_command_option :path, nil if options[:system]
171
- Bundler.settings.temporary(:path_relative_to_cwd => false) do
172
- Bundler.settings.set_command_option :path, "vendor/bundle" if options[:deployment]
173
- end
174
148
  Bundler.settings.set_command_option_if_given :path, options[:path]
175
- Bundler.settings.temporary(:path_relative_to_cwd => false) do
176
- Bundler.settings.set_command_option :path, "bundle" if options["standalone"] && Bundler.settings[:path].nil?
149
+
150
+ if options["standalone"] && Bundler.settings[:path].nil? && !options["local"]
151
+ Bundler.settings.temporary(:path_relative_to_cwd => false) do
152
+ Bundler.settings.set_command_option :path, "bundle"
153
+ end
177
154
  end
178
155
 
179
156
  bin_option = options["binstubs"]
180
- bin_option = nil if bin_option && bin_option.empty?
157
+ bin_option = nil if bin_option&.empty?
181
158
  Bundler.settings.set_command_option :bin, bin_option if options["binstubs"]
182
159
 
183
160
  Bundler.settings.set_command_option_if_given :shebang, options["shebang"]
@@ -190,27 +167,22 @@ module Bundler
190
167
 
191
168
  Bundler.settings.set_command_option_if_given :clean, options["clean"]
192
169
 
193
- unless Bundler.settings[:without] == options[:without] && Bundler.settings[:with] == options[:with]
194
- # need to nil them out first to get around validation for backwards compatibility
195
- Bundler.settings.set_command_option :without, nil
196
- Bundler.settings.set_command_option :with, nil
197
- Bundler.settings.set_command_option :without, options[:without] - options[:with]
198
- Bundler.settings.set_command_option :with, options[:with]
199
- end
170
+ normalize_groups if options[:without] || options[:with]
200
171
 
201
172
  options[:force] = options[:redownload]
202
173
  end
203
174
 
204
175
  def warn_ambiguous_gems
176
+ # TODO: remove this when we drop Bundler 1.x support
205
177
  Installer.ambiguous_gems.to_a.each do |name, installed_from_uri, *also_found_in_uris|
206
- Bundler.ui.error "Warning: the gem '#{name}' was found in multiple sources."
207
- Bundler.ui.error "Installed from: #{installed_from_uri}"
208
- Bundler.ui.error "Also found in:"
209
- also_found_in_uris.each {|uri| Bundler.ui.error " * #{uri}" }
210
- Bundler.ui.error "You should add a source requirement to restrict this gem to your preferred source."
211
- Bundler.ui.error "For example:"
212
- Bundler.ui.error " gem '#{name}', :source => '#{installed_from_uri}'"
213
- Bundler.ui.error "Then uninstall the gem '#{name}' (or delete all bundled gems) and then install again."
178
+ Bundler.ui.warn "Warning: the gem '#{name}' was found in multiple sources."
179
+ Bundler.ui.warn "Installed from: #{installed_from_uri}"
180
+ Bundler.ui.warn "Also found in:"
181
+ also_found_in_uris.each {|uri| Bundler.ui.warn " * #{uri}" }
182
+ Bundler.ui.warn "You should add a source requirement to restrict this gem to your preferred source."
183
+ Bundler.ui.warn "For example:"
184
+ Bundler.ui.warn " gem '#{name}', :source => '#{installed_from_uri}'"
185
+ Bundler.ui.warn "Then uninstall the gem '#{name}' (or delete all bundled gems) and then install again."
214
186
  end
215
187
  end
216
188
  end
@@ -10,19 +10,20 @@ module Bundler
10
10
  be sure to check out these resources:
11
11
 
12
12
  1. Check out our troubleshooting guide for quick fixes to common issues:
13
- https://github.com/bundler/bundler/blob/master/doc/TROUBLESHOOTING.md
13
+ https://github.com/rubygems/rubygems/blob/master/bundler/doc/TROUBLESHOOTING.md
14
14
 
15
15
  2. Instructions for common Bundler uses can be found on the documentation
16
- site: http://bundler.io/
16
+ site: https://bundler.io/
17
17
 
18
18
  3. Information about each Bundler command can be found in the Bundler
19
- man pages: http://bundler.io/man/bundle.1.html
19
+ man pages: https://bundler.io/man/bundle.1.html
20
20
 
21
21
  Hopefully the troubleshooting steps above resolved your problem! If things
22
22
  still aren't working the way you expect them to, please let us know so
23
- that we can diagnose and help fix the problem you're having. Please
24
- view the Filing Issues guide for more information:
25
- https://github.com/bundler/bundler/blob/master/doc/contributing/ISSUES.md
23
+ that we can diagnose and help fix the problem you're having, by filling
24
+ in the new issue form located at
25
+ https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md,
26
+ and copy and pasting the information below.
26
27
 
27
28
  EOS
28
29
 
@@ -33,7 +34,7 @@ module Bundler
33
34
  end
34
35
 
35
36
  def doctor
36
- require "bundler/cli/doctor"
37
+ require_relative "doctor"
37
38
  Bundler::CLI::Doctor.new({}).run
38
39
  end
39
40
  end
@@ -4,17 +4,25 @@ module Bundler
4
4
  class CLI::List
5
5
  def initialize(options)
6
6
  @options = options
7
+ @without_group = options["without-group"].map(&:to_sym)
8
+ @only_group = options["only-group"].map(&:to_sym)
7
9
  end
8
10
 
9
11
  def run
10
- raise InvalidOption, "The `--only-group` and `--without-group` options cannot be used together" if @options["only-group"] && @options["without-group"]
12
+ raise InvalidOption, "The `--only-group` and `--without-group` options cannot be used together" if @only_group.any? && @without_group.any?
11
13
 
12
14
  raise InvalidOption, "The `--name-only` and `--paths` options cannot be used together" if @options["name-only"] && @options[:paths]
13
15
 
14
- specs = if @options["only-group"] || @options["without-group"]
16
+ specs = if @only_group.any? || @without_group.any?
15
17
  filtered_specs_by_groups
16
18
  else
17
- Bundler.load.specs
19
+ begin
20
+ Bundler.load.specs
21
+ rescue GemNotFound => e
22
+ Bundler.ui.error e.message
23
+ Bundler.ui.warn "Install missing gems with `bundle install`."
24
+ exit 1
25
+ end
18
26
  end.reject {|s| s.name == "bundler" }.sort_by(&:name)
19
27
 
20
28
  return Bundler.ui.info "No gems in the Gemfile" if specs.empty?
@@ -29,12 +37,12 @@ module Bundler
29
37
  Bundler.ui.info "Use `bundle info` to print more detailed information about a gem"
30
38
  end
31
39
 
32
- private
40
+ private
33
41
 
34
42
  def verify_group_exists(groups)
35
- raise InvalidOption, "`#{@options["without-group"]}` group could not be found." if @options["without-group"] && !groups.include?(@options["without-group"].to_sym)
36
-
37
- raise InvalidOption, "`#{@options["only-group"]}` group could not be found." if @options["only-group"] && !groups.include?(@options["only-group"].to_sym)
43
+ (@without_group + @only_group).each do |group|
44
+ raise InvalidOption, "`#{group}` group could not be found." unless groups.include?(group)
45
+ end
38
46
  end
39
47
 
40
48
  def filtered_specs_by_groups
@@ -44,10 +52,10 @@ module Bundler
44
52
  verify_group_exists(groups)
45
53
 
46
54
  show_groups =
47
- if @options["without-group"]
48
- groups.reject {|g| g == @options["without-group"].to_sym }
49
- elsif @options["only-group"]
50
- groups.select {|g| g == @options["only-group"].to_sym }
55
+ if @without_group.any?
56
+ groups.reject {|g| @without_group.include?(g) }
57
+ elsif @only_group.any?
58
+ groups.select {|g| @only_group.include?(g) }
51
59
  else
52
60
  groups
53
61
  end.map(&:to_sym)
@@ -15,15 +15,22 @@ module Bundler
15
15
  end
16
16
 
17
17
  print = options[:print]
18
- ui = Bundler.ui
19
- Bundler.ui = UI::Silent.new if print
18
+ previous_ui_level = Bundler.ui.level
19
+ Bundler.ui.level = "silent" if print
20
20
 
21
21
  Bundler::Fetcher.disable_endpoint = options["full-index"]
22
22
 
23
23
  update = options[:update]
24
+ conservative = options[:conservative]
25
+ bundler = options[:bundler]
26
+
24
27
  if update.is_a?(Array) # unlocking specific gems
25
28
  Bundler::CLI::Common.ensure_all_gems_in_lockfile!(update)
26
- update = { :gems => update, :lock_shared_dependencies => options[:conservative] }
29
+ update = { :gems => update, :conservative => conservative }
30
+ elsif update && conservative
31
+ update = { :conservative => conservative }
32
+ elsif update && bundler
33
+ update = { :bundler => bundler }
27
34
  end
28
35
  definition = Bundler.definition(update)
29
36
 
@@ -57,7 +64,7 @@ module Bundler
57
64
  definition.lock(file)
58
65
  end
59
66
 
60
- Bundler.ui = ui
67
+ Bundler.ui.level = previous_ui_level
61
68
  end
62
69
  end
63
70
  end
@@ -1,25 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "shellwords"
4
-
5
3
  module Bundler
6
4
  class CLI::Open
7
- attr_reader :options, :name
5
+ attr_reader :options, :name, :path
8
6
  def initialize(options, name)
9
7
  @options = options
10
8
  @name = name
9
+ @path = options[:path] unless options[:path].nil?
11
10
  end
12
11
 
13
12
  def run
13
+ raise InvalidOption, "Cannot specify `--path` option without a value" if !@path.nil? && @path.empty?
14
14
  editor = [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? }
15
15
  return Bundler.ui.info("To open a bundled gem, set $EDITOR or $BUNDLER_EDITOR") unless editor
16
16
  return unless spec = Bundler::CLI::Common.select_spec(name, :regex_match)
17
- path = spec.full_gem_path
18
- Dir.chdir(path) do
19
- command = Shellwords.split(editor) + [path]
20
- Bundler.with_original_env do
21
- system(*command)
22
- end || Bundler.ui.info("Could not run '#{command.join(" ")}'")
17
+ if spec.default_gem?
18
+ Bundler.ui.info "Unable to open #{name} because it's a default gem, so the directory it would normally be installed to does not exist."
19
+ else
20
+ root_path = spec.full_gem_path
21
+ Dir.chdir(root_path) do
22
+ require "shellwords"
23
+ command = Shellwords.split(editor) << File.join([root_path, path].compact)
24
+ Bundler.with_original_env do
25
+ system(*command)
26
+ end || Bundler.ui.info("Could not run '#{command.join(" ")}'")
27
+ end
23
28
  end
24
29
  end
25
30
  end