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
@@ -1,38 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/compatibility_guard"
4
-
5
3
  require "pathname"
6
- require "rubygems"
7
-
8
- require "bundler/version"
9
- require "bundler/constants"
10
- require "bundler/rubygems_integration"
11
- require "bundler/current_ruby"
12
-
13
- module Gem
14
- class Dependency
15
- # This is only needed for RubyGems < 1.4
16
- unless method_defined? :requirement
17
- def requirement
18
- version_requirements
19
- end
20
- end
21
- end
22
- end
4
+ require "rbconfig"
5
+
6
+ require_relative "version"
7
+ require_relative "constants"
8
+ require_relative "rubygems_integration"
9
+ require_relative "current_ruby"
23
10
 
24
11
  module Bundler
25
12
  module SharedHelpers
26
13
  def root
27
14
  gemfile = find_gemfile
28
15
  raise GemfileNotFound, "Could not locate Gemfile" unless gemfile
29
- Pathname.new(gemfile).untaint.expand_path.parent
16
+ Pathname.new(gemfile).tap {|x| x.untaint if RUBY_VERSION < "2.7" }.expand_path.parent
30
17
  end
31
18
 
32
19
  def default_gemfile
33
- gemfile = find_gemfile(:order_matters)
20
+ gemfile = find_gemfile
34
21
  raise GemfileNotFound, "Could not locate Gemfile" unless gemfile
35
- Pathname.new(gemfile).untaint.expand_path
22
+ Pathname.new(gemfile).tap {|x| x.untaint if RUBY_VERSION < "2.7" }.expand_path
36
23
  end
37
24
 
38
25
  def default_lockfile
@@ -41,7 +28,7 @@ module Bundler
41
28
  case gemfile.basename.to_s
42
29
  when "gems.rb" then Pathname.new(gemfile.sub(/.rb$/, ".locked"))
43
30
  else Pathname.new("#{gemfile}.lock")
44
- end.untaint
31
+ end.tap {|x| x.untaint if RUBY_VERSION < "2.7" }
45
32
  end
46
33
 
47
34
  def default_bundle_dir
@@ -113,9 +100,7 @@ module Bundler
113
100
  #
114
101
  # @see {Bundler::PermissionError}
115
102
  def filesystem_access(path, action = :write, &block)
116
- # Use block.call instead of yield because of a bug in Ruby 2.2.2
117
- # See https://github.com/bundler/bundler/issues/5341 for details
118
- block.call(path.dup.untaint)
103
+ yield(path.dup.tap {|x| x.untaint if RUBY_VERSION < "2.7" })
119
104
  rescue Errno::EACCES
120
105
  raise PermissionError.new(path, action)
121
106
  rescue Errno::EAGAIN
@@ -124,7 +109,7 @@ module Bundler
124
109
  raise VirtualProtocolError.new
125
110
  rescue Errno::ENOSPC
126
111
  raise NoSpaceOnDeviceError.new(path, action)
127
- rescue *[const_get_safely(:ENOTSUP, Errno)].compact
112
+ rescue Errno::ENOTSUP
128
113
  raise OperationNotSupportedError.new(path, action)
129
114
  rescue Errno::EEXIST, Errno::ENOENT
130
115
  raise
@@ -132,48 +117,32 @@ module Bundler
132
117
  raise GenericSystemCallError.new(e, "There was an error accessing `#{path}`.")
133
118
  end
134
119
 
135
- def const_get_safely(constant_name, namespace)
136
- const_in_namespace = namespace.constants.include?(constant_name.to_s) ||
137
- namespace.constants.include?(constant_name.to_sym)
138
- return nil unless const_in_namespace
139
- namespace.const_get(constant_name)
140
- end
120
+ def major_deprecation(major_version, message, print_caller_location: false)
121
+ if print_caller_location
122
+ caller_location = caller_locations(2, 2).first
123
+ message = "#{message} (called at #{caller_location.path}:#{caller_location.lineno})"
124
+ end
141
125
 
142
- def major_deprecation(major_version, message)
143
- if Bundler.bundler_major_version >= major_version
144
- require "bundler/errors"
145
- raise DeprecatedError, "[REMOVED FROM #{major_version}.0] #{message}"
126
+ bundler_major_version = Bundler.bundler_major_version
127
+ if bundler_major_version > major_version
128
+ require_relative "errors"
129
+ raise DeprecatedError, "[REMOVED] #{message}"
146
130
  end
147
131
 
148
- return unless prints_major_deprecations?
149
- @major_deprecation_ui ||= Bundler::UI::Shell.new("no-color" => true)
150
- ui = Bundler.ui.is_a?(@major_deprecation_ui.class) ? Bundler.ui : @major_deprecation_ui
151
- ui.warn("[DEPRECATED FOR #{major_version}.0] #{message}")
132
+ return unless bundler_major_version >= major_version && prints_major_deprecations?
133
+ Bundler.ui.warn("[DEPRECATED] #{message}")
152
134
  end
153
135
 
154
136
  def print_major_deprecations!
155
137
  multiple_gemfiles = search_up(".") do |dir|
156
138
  gemfiles = gemfile_names.select {|gf| File.file? File.expand_path(gf, dir) }
157
139
  next if gemfiles.empty?
158
- break false if gemfiles.size == 1
159
- end
160
- if multiple_gemfiles && Bundler.bundler_major_version == 1
161
- Bundler::SharedHelpers.major_deprecation 2, \
162
- "gems.rb and gems.locked will be preferred to Gemfile and Gemfile.lock."
163
- end
164
-
165
- if RUBY_VERSION < "2"
166
- major_deprecation(2, "Bundler will only support ruby >= 2.0, you are running #{RUBY_VERSION}")
167
- end
168
- return if Bundler.rubygems.provides?(">= 2")
169
- major_deprecation(2, "Bundler will only support rubygems >= 2.0, you are running #{Bundler.rubygems.version}")
170
- end
171
-
172
- def trap(signal, override = false, &block)
173
- prior = Signal.trap(signal) do
174
- block.call
175
- prior.call unless override
140
+ break gemfiles.size != 1
176
141
  end
142
+ return unless multiple_gemfiles
143
+ message = "Multiple gemfiles (gems.rb and Gemfile) detected. " \
144
+ "Make sure you remove Gemfile and Gemfile.lock since bundler is ignoring them in favor of gems.rb and gems.locked."
145
+ Bundler.ui.warn message
177
146
  end
178
147
 
179
148
  def ensure_same_dependencies(spec, old_deps, new_deps)
@@ -191,10 +160,10 @@ module Bundler
191
160
  " (was expecting #{old_deps.map(&:to_s)}, but the real spec has #{new_deps.map(&:to_s)})"
192
161
  raise APIResponseMismatchError,
193
162
  "Downloading #{spec.full_name} revealed dependencies not in the API or the lockfile (#{extra_deps.join(", ")})." \
194
- "\nEither installing with `--full-index` or running `bundle update #{spec.name}` should fix the problem."
163
+ "\nRunning `bundle update #{spec.name}` should fix the problem."
195
164
  end
196
165
 
197
- def pretty_dependency(dep, print_source = false)
166
+ def pretty_dependency(dep)
198
167
  msg = String.new(dep.name)
199
168
  msg << " (#{dep.requirement})" unless dep.requirement == Gem::Requirement.default
200
169
 
@@ -203,7 +172,6 @@ module Bundler
203
172
  msg << " " << platform_string if !platform_string.empty? && platform_string != Gem::Platform::RUBY
204
173
  end
205
174
 
206
- msg << " from the `#{dep.source}` source" if print_source && dep.source
207
175
  msg
208
176
  end
209
177
 
@@ -211,11 +179,11 @@ module Bundler
211
179
  return @md5_available if defined?(@md5_available)
212
180
  @md5_available = begin
213
181
  require "openssl"
214
- OpenSSL::Digest::MD5.digest("")
182
+ ::OpenSSL::Digest.digest("MD5", "")
215
183
  true
216
184
  rescue LoadError
217
185
  true
218
- rescue OpenSSL::Digest::DigestError
186
+ rescue ::OpenSSL::Digest::DigestError
219
187
  false
220
188
  end
221
189
  end
@@ -229,7 +197,7 @@ module Bundler
229
197
  filesystem_access(gemfile_path) {|g| File.open(g, "w") {|file| file.puts contents } }
230
198
  end
231
199
 
232
- private
200
+ private
233
201
 
234
202
  def validate_bundle_path
235
203
  path_separator = Bundler.rubygems.path_separator
@@ -243,16 +211,14 @@ module Bundler
243
211
  raise Bundler::PathError, message
244
212
  end
245
213
 
246
- def find_gemfile(order_matters = false)
214
+ def find_gemfile
247
215
  given = ENV["BUNDLE_GEMFILE"]
248
216
  return given if given && !given.empty?
249
- names = gemfile_names
250
- names.reverse! if order_matters && Bundler.feature_flag.prefer_gems_rb?
251
- find_file(*names)
217
+ find_file(*gemfile_names)
252
218
  end
253
219
 
254
220
  def gemfile_names
255
- ["Gemfile", "gems.rb"]
221
+ ["gems.rb", "Gemfile"]
256
222
  end
257
223
 
258
224
  def find_file(*names)
@@ -269,14 +235,14 @@ module Bundler
269
235
 
270
236
  def search_up(*names)
271
237
  previous = nil
272
- current = File.expand_path(SharedHelpers.pwd).untaint
238
+ current = File.expand_path(SharedHelpers.pwd).tap {|x| x.untaint if RUBY_VERSION < "2.7" }
273
239
 
274
240
  until !File.directory?(current) || current == previous
275
- if ENV["BUNDLE_SPEC_RUN"]
241
+ if ENV["BUNDLER_SPEC_RUN"]
276
242
  # avoid stepping above the tmp directory when testing
277
- gemspec = if ENV["BUNDLE_RUBY"] && ENV["BUNDLE_GEM"]
243
+ gemspec = if ENV["GEM_COMMAND"]
278
244
  # for Ruby Core
279
- "lib/bundler.gemspec"
245
+ "lib/bundler/bundler.gemspec"
280
246
  else
281
247
  "bundler.gemspec"
282
248
  end
@@ -306,22 +272,19 @@ module Bundler
306
272
  public :set_env
307
273
 
308
274
  def set_bundle_variables
309
- begin
310
- exe_file = Bundler.rubygems.bin_path("bundler", "bundle", VERSION)
311
- unless File.exist?(exe_file)
312
- exe_file = File.expand_path("../../../exe/bundle", __FILE__)
313
- end
314
- Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", exe_file
315
- rescue Gem::GemNotFoundException
316
- exe_file = File.expand_path("../../../exe/bundle", __FILE__)
317
- # for Ruby core repository
318
- exe_file = File.expand_path("../../../../bin/bundle", __FILE__) unless File.exist?(exe_file)
319
- Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", exe_file
320
- end
275
+ # bundler exe & lib folders have same root folder, typical gem installation
276
+ exe_file = File.expand_path("../../exe/bundle", __dir__)
277
+
278
+ # for Ruby core repository testing
279
+ exe_file = File.expand_path("../../libexec/bundle", __dir__) unless File.exist?(exe_file)
280
+
281
+ # bundler is a default gem, exe path is separate
282
+ exe_file = Bundler.rubygems.bin_path("bundler", "bundle", VERSION) unless File.exist?(exe_file)
321
283
 
322
- # Set BUNDLE_GEMFILE
323
- Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", find_gemfile(:order_matters).to_s
284
+ Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", exe_file
285
+ Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", find_gemfile.to_s
324
286
  Bundler::SharedHelpers.set_env "BUNDLER_VERSION", Bundler::VERSION
287
+ Bundler::SharedHelpers.set_env "BUNDLER_SETUP", File.expand_path("setup", __dir__) unless RUBY_VERSION < "2.7"
325
288
  end
326
289
 
327
290
  def set_path
@@ -333,31 +296,28 @@ module Bundler
333
296
 
334
297
  def set_rubyopt
335
298
  rubyopt = [ENV["RUBYOPT"]].compact
336
- return if !rubyopt.empty? && rubyopt.first =~ %r{-rbundler/setup}
337
- rubyopt.unshift %(-rbundler/setup)
299
+ setup_require = "-r#{File.expand_path("setup", __dir__)}"
300
+ return if !rubyopt.empty? && rubyopt.first =~ /#{setup_require}/
301
+ rubyopt.unshift setup_require
338
302
  Bundler::SharedHelpers.set_env "RUBYOPT", rubyopt.join(" ")
339
303
  end
340
304
 
341
305
  def set_rubylib
342
306
  rubylib = (ENV["RUBYLIB"] || "").split(File::PATH_SEPARATOR)
343
- rubylib.unshift bundler_ruby_lib
307
+ rubylib.unshift bundler_ruby_lib unless RbConfig::CONFIG["rubylibdir"] == bundler_ruby_lib
344
308
  Bundler::SharedHelpers.set_env "RUBYLIB", rubylib.uniq.join(File::PATH_SEPARATOR)
345
309
  end
346
310
 
347
311
  def bundler_ruby_lib
348
- resolve_path File.expand_path("../..", __FILE__)
312
+ File.expand_path("..", __dir__)
349
313
  end
350
314
 
351
315
  def clean_load_path
352
- # handle 1.9 where system gems are always on the load path
353
- return unless defined?(::Gem)
354
-
355
- bundler_lib = bundler_ruby_lib
356
-
357
316
  loaded_gem_paths = Bundler.rubygems.loaded_gem_paths
358
317
 
359
318
  $LOAD_PATH.reject! do |p|
360
- next if resolve_path(p).start_with?(bundler_lib)
319
+ resolved_path = resolve_path(p)
320
+ next if $LOADED_FEATURES.any? {|lf| lf.start_with?(resolved_path) }
361
321
  loaded_gem_paths.delete(p)
362
322
  end
363
323
  $LOAD_PATH.uniq!
@@ -365,16 +325,15 @@ module Bundler
365
325
 
366
326
  def resolve_path(path)
367
327
  expanded = File.expand_path(path)
368
- return expanded unless File.respond_to?(:realpath) && File.exist?(expanded)
328
+ return expanded unless File.exist?(expanded)
369
329
 
370
330
  File.realpath(expanded)
371
331
  end
372
332
 
373
333
  def prints_major_deprecations?
374
- require "bundler"
375
- deprecation_release = Bundler::VERSION.split(".").drop(1).include?("99")
376
- return false if !deprecation_release && !Bundler.settings[:major_deprecations]
377
- require "bundler/deprecate"
334
+ require_relative "../bundler"
335
+ return false if Bundler.settings[:silence_deprecations]
336
+ require_relative "deprecate"
378
337
  return false if Bundler::Deprecate.skip
379
338
  true
380
339
  end
@@ -26,9 +26,9 @@ module Bundler
26
26
  end
27
27
  end
28
28
 
29
- protected
29
+ protected
30
30
 
31
- # http://www.informit.com/articles/article.aspx?p=683059&seqNum=36
31
+ # https://www.informit.com/articles/article.aspx?p=683059&seqNum=36
32
32
  def levenshtein_distance(this, that, ins = 2, del = 2, sub = 1)
33
33
  # ins, del, sub are weighted costs
34
34
  return nil if this.nil?
@@ -51,7 +51,7 @@ module Bundler
51
51
  dm[i][j] = [
52
52
  dm[i - 1][j - 1] + (this[j - 1] == that[i - 1] ? 0 : sub),
53
53
  dm[i][j - 1] + ins,
54
- dm[i - 1][j] + del
54
+ dm[i - 1][j] + del,
55
55
  ].min
56
56
  end
57
57
  end