rubygems-update 3.0.6 → 3.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. checksums.yaml +4 -4
  2. data/{History.txt → CHANGELOG.md} +1100 -436
  3. data/CODE_OF_CONDUCT.md +55 -19
  4. data/CONTRIBUTING.md +37 -10
  5. data/MAINTAINERS.txt +1 -6
  6. data/Manifest.txt +104 -64
  7. data/POLICIES.md +6 -12
  8. data/README.md +6 -6
  9. data/Rakefile +121 -111
  10. data/bin/gem +0 -6
  11. data/bin/update_rubygems +2 -2
  12. data/bundler/CHANGELOG.md +1788 -1251
  13. data/bundler/LICENSE.md +18 -19
  14. data/bundler/README.md +9 -10
  15. data/bundler/UPGRADING.md +215 -0
  16. data/bundler/bundler.gemspec +9 -26
  17. data/bundler/exe/bundle +22 -3
  18. data/bundler/lib/bundler.rb +233 -94
  19. data/bundler/lib/bundler/build_metadata.rb +5 -13
  20. data/bundler/lib/bundler/capistrano.rb +4 -4
  21. data/bundler/lib/bundler/cli.rb +221 -148
  22. data/bundler/lib/bundler/cli/add.rb +28 -16
  23. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  24. data/bundler/lib/bundler/cli/cache.rb +24 -17
  25. data/bundler/lib/bundler/cli/clean.rb +1 -1
  26. data/bundler/lib/bundler/cli/common.rb +25 -12
  27. data/bundler/lib/bundler/cli/config.rb +161 -86
  28. data/bundler/lib/bundler/cli/console.rb +1 -1
  29. data/bundler/lib/bundler/cli/doctor.rb +5 -5
  30. data/bundler/lib/bundler/cli/exec.rb +8 -20
  31. data/bundler/lib/bundler/cli/fund.rb +36 -0
  32. data/bundler/lib/bundler/cli/gem.rb +125 -32
  33. data/bundler/lib/bundler/cli/info.rb +29 -6
  34. data/bundler/lib/bundler/cli/init.rb +2 -2
  35. data/bundler/lib/bundler/cli/inject.rb +1 -1
  36. data/bundler/lib/bundler/cli/install.rb +27 -23
  37. data/bundler/lib/bundler/cli/issue.rb +5 -5
  38. data/bundler/lib/bundler/cli/list.rb +12 -10
  39. data/bundler/lib/bundler/cli/open.rb +10 -6
  40. data/bundler/lib/bundler/cli/outdated.rb +134 -109
  41. data/bundler/lib/bundler/cli/plugin.rb +19 -2
  42. data/bundler/lib/bundler/cli/pristine.rb +6 -1
  43. data/bundler/lib/bundler/cli/show.rb +2 -2
  44. data/bundler/lib/bundler/cli/update.rb +34 -12
  45. data/bundler/lib/bundler/compact_index_client.rb +26 -10
  46. data/bundler/lib/bundler/compact_index_client/cache.rb +6 -14
  47. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  48. data/bundler/lib/bundler/compact_index_client/updater.rb +8 -20
  49. data/bundler/lib/bundler/current_ruby.rb +9 -7
  50. data/bundler/lib/bundler/definition.rb +133 -132
  51. data/bundler/lib/bundler/dep_proxy.rb +16 -9
  52. data/bundler/lib/bundler/dependency.rb +19 -14
  53. data/bundler/lib/bundler/deployment.rb +1 -1
  54. data/bundler/lib/bundler/dsl.rb +54 -71
  55. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  56. data/bundler/lib/bundler/env.rb +9 -14
  57. data/bundler/lib/bundler/environment_preserver.rb +26 -3
  58. data/bundler/lib/bundler/errors.rb +1 -0
  59. data/bundler/lib/bundler/feature_flag.rb +19 -34
  60. data/bundler/lib/bundler/fetcher.rb +19 -16
  61. data/bundler/lib/bundler/fetcher/base.rb +1 -1
  62. data/bundler/lib/bundler/fetcher/compact_index.rb +27 -13
  63. data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
  64. data/bundler/lib/bundler/fetcher/downloader.rb +6 -3
  65. data/bundler/lib/bundler/fetcher/index.rb +8 -7
  66. data/bundler/lib/bundler/friendly_errors.rb +27 -19
  67. data/bundler/lib/bundler/gem_helper.rb +68 -37
  68. data/bundler/lib/bundler/gem_helpers.rb +38 -29
  69. data/bundler/lib/bundler/gem_tasks.rb +1 -1
  70. data/bundler/lib/bundler/gem_version_promoter.rb +5 -5
  71. data/bundler/lib/bundler/graph.rb +3 -3
  72. data/bundler/lib/bundler/index.rb +12 -7
  73. data/bundler/lib/bundler/injector.rb +32 -12
  74. data/bundler/lib/bundler/inline.rb +41 -30
  75. data/bundler/lib/bundler/installer.rb +41 -60
  76. data/bundler/lib/bundler/installer/gem_installer.rb +8 -4
  77. data/bundler/lib/bundler/installer/parallel_installer.rb +20 -26
  78. data/bundler/lib/bundler/installer/standalone.rb +18 -4
  79. data/bundler/lib/bundler/lazy_specification.rb +41 -27
  80. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  81. data/bundler/lib/bundler/lockfile_parser.rb +16 -33
  82. data/bundler/lib/bundler/{ssl_certs → man}/.document +0 -0
  83. data/bundler/lib/bundler/man/bundle-add.1 +66 -0
  84. data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +7 -1
  85. data/bundler/lib/bundler/man/bundle-binstubs.1 +42 -0
  86. data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +3 -5
  87. data/bundler/lib/bundler/man/bundle-cache.1 +55 -0
  88. data/bundler/{man/bundle-package.ronn → lib/bundler/man/bundle-cache.1.ronn} +15 -15
  89. data/bundler/lib/bundler/man/bundle-check.1 +31 -0
  90. data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  91. data/bundler/lib/bundler/man/bundle-clean.1 +24 -0
  92. data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
  93. data/bundler/lib/bundler/man/bundle-config.1 +488 -0
  94. data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +59 -67
  95. data/bundler/lib/bundler/man/bundle-doctor.1 +44 -0
  96. data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  97. data/bundler/lib/bundler/man/bundle-exec.1 +165 -0
  98. data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +1 -1
  99. data/bundler/lib/bundler/man/bundle-gem.1 +102 -0
  100. data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
  101. data/bundler/lib/bundler/man/bundle-info.1 +20 -0
  102. data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  103. data/bundler/lib/bundler/man/bundle-init.1 +25 -0
  104. data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +1 -1
  105. data/bundler/lib/bundler/man/bundle-inject.1 +33 -0
  106. data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
  107. data/bundler/lib/bundler/man/bundle-install.1 +338 -0
  108. data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +34 -7
  109. data/bundler/lib/bundler/man/bundle-list.1 +50 -0
  110. data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  111. data/bundler/lib/bundler/man/bundle-lock.1 +84 -0
  112. data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  113. data/bundler/lib/bundler/man/bundle-open.1 +32 -0
  114. data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
  115. data/bundler/lib/bundler/man/bundle-outdated.1 +155 -0
  116. data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
  117. data/bundler/lib/bundler/man/bundle-platform.1 +61 -0
  118. data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
  119. data/bundler/lib/bundler/man/bundle-pristine.1 +34 -0
  120. data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  121. data/bundler/lib/bundler/man/bundle-remove.1 +31 -0
  122. data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  123. data/bundler/lib/bundler/man/bundle-show.1 +23 -0
  124. data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
  125. data/bundler/lib/bundler/man/bundle-update.1 +394 -0
  126. data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +3 -3
  127. data/bundler/lib/bundler/man/bundle-viz.1 +39 -0
  128. data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
  129. data/bundler/lib/bundler/man/bundle.1 +136 -0
  130. data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +2 -2
  131. data/bundler/lib/bundler/man/gemfile.5 +686 -0
  132. data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +16 -20
  133. data/bundler/lib/bundler/man/index.txt +25 -0
  134. data/bundler/lib/bundler/match_platform.rb +1 -1
  135. data/bundler/lib/bundler/mirror.rb +5 -5
  136. data/bundler/lib/bundler/plugin.rb +75 -36
  137. data/bundler/lib/bundler/plugin/api.rb +1 -1
  138. data/bundler/lib/bundler/plugin/api/source.rb +12 -7
  139. data/bundler/lib/bundler/plugin/dsl.rb +1 -1
  140. data/bundler/lib/bundler/plugin/index.rb +24 -4
  141. data/bundler/lib/bundler/plugin/installer.rb +33 -22
  142. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
  143. data/bundler/lib/bundler/plugin/source_list.rb +5 -1
  144. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  145. data/bundler/lib/bundler/remote_specification.rb +5 -4
  146. data/bundler/lib/bundler/resolver.rb +191 -87
  147. data/bundler/lib/bundler/resolver/spec_group.rb +76 -48
  148. data/bundler/lib/bundler/retry.rb +3 -3
  149. data/bundler/lib/bundler/ruby_version.rb +5 -20
  150. data/bundler/lib/bundler/rubygems_ext.rb +76 -72
  151. data/bundler/lib/bundler/rubygems_gem_installer.rb +47 -13
  152. data/bundler/lib/bundler/rubygems_integration.rb +159 -444
  153. data/bundler/lib/bundler/runtime.rb +6 -23
  154. data/bundler/lib/bundler/settings.rb +67 -93
  155. data/bundler/lib/bundler/setup.rb +11 -12
  156. data/bundler/lib/bundler/shared_helpers.rb +54 -80
  157. data/bundler/lib/bundler/similarity_detector.rb +3 -3
  158. data/bundler/lib/bundler/source.rb +12 -6
  159. data/bundler/lib/bundler/source/git.rb +47 -38
  160. data/bundler/lib/bundler/source/git/git_proxy.rb +101 -102
  161. data/bundler/lib/bundler/source/metadata.rb +7 -6
  162. data/bundler/lib/bundler/source/path.rb +20 -11
  163. data/bundler/lib/bundler/source/path/installer.rb +10 -10
  164. data/bundler/lib/bundler/source/rubygems.rb +56 -29
  165. data/bundler/lib/bundler/source/rubygems/remote.rb +3 -4
  166. data/bundler/lib/bundler/source_list.rb +32 -30
  167. data/bundler/lib/bundler/spec_set.rb +37 -25
  168. data/bundler/lib/bundler/stub_specification.rb +40 -34
  169. data/bundler/lib/bundler/templates/Executable.bundler +23 -14
  170. data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  171. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  172. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +16 -2
  173. data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -5
  174. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
  175. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  176. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  177. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  178. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
  179. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  180. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  181. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  182. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +18 -31
  183. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  184. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  185. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  186. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  187. data/bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
  188. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  189. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  190. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -1
  191. data/bundler/lib/bundler/ui.rb +3 -3
  192. data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
  193. data/bundler/lib/bundler/ui/shell.rb +7 -11
  194. data/bundler/lib/bundler/uri_credentials_filter.rb +10 -4
  195. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +161 -0
  196. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +66 -0
  197. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +176 -0
  198. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  199. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +273 -147
  200. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +5 -6
  201. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  202. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +36 -4
  203. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
  204. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
  205. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
  206. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
  207. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
  208. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
  209. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +3 -3
  210. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +39 -11
  211. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +4 -4
  212. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  213. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
  214. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +53 -51
  215. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
  216. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +302 -462
  217. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
  218. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
  219. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  220. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +16 -9
  221. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +28 -13
  222. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
  223. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +3 -2
  224. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +7 -17
  225. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +20 -9
  226. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +19 -8
  227. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +63 -43
  228. data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +21 -14
  229. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +78 -0
  230. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
  231. data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -0
  232. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
  233. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +1 -1
  234. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +6 -6
  235. data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
  236. data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
  237. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +7 -3
  238. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +20 -7
  239. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +21 -5
  240. data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +1 -0
  241. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +15 -14
  242. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +4 -4
  243. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +65 -8
  244. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +10 -2
  245. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -3
  246. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +18 -2
  247. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  248. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  249. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +104 -0
  250. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +744 -0
  251. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +94 -0
  252. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
  253. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1568 -0
  254. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +88 -0
  255. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
  256. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
  257. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +21 -0
  258. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +294 -0
  259. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
  260. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +125 -0
  261. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
  262. data/bundler/lib/bundler/vendored_fileutils.rb +1 -6
  263. data/bundler/lib/bundler/vendored_molinillo.rb +1 -1
  264. data/bundler/lib/bundler/vendored_persistent.rb +7 -12
  265. data/bundler/lib/bundler/vendored_thor.rb +2 -2
  266. data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
  267. data/bundler/lib/bundler/vendored_uri.rb +4 -0
  268. data/bundler/lib/bundler/version.rb +1 -20
  269. data/bundler/lib/bundler/version_ranges.rb +51 -5
  270. data/bundler/lib/bundler/vlad.rb +2 -2
  271. data/bundler/lib/bundler/worker.rb +2 -4
  272. data/bundler/lib/bundler/yaml_serializer.rb +3 -4
  273. data/lib/rubygems.rb +198 -222
  274. data/lib/rubygems/available_set.rb +4 -5
  275. data/lib/rubygems/basic_specification.rb +32 -19
  276. data/lib/rubygems/bundler_version_finder.rb +19 -9
  277. data/lib/rubygems/command.rb +73 -21
  278. data/lib/rubygems/command_manager.rb +5 -12
  279. data/lib/rubygems/commands/build_command.rb +51 -18
  280. data/lib/rubygems/commands/cert_command.rb +2 -11
  281. data/lib/rubygems/commands/check_command.rb +0 -2
  282. data/lib/rubygems/commands/cleanup_command.rb +17 -13
  283. data/lib/rubygems/commands/contents_command.rb +7 -9
  284. data/lib/rubygems/commands/dependency_command.rb +9 -10
  285. data/lib/rubygems/commands/environment_command.rb +1 -6
  286. data/lib/rubygems/commands/fetch_command.rb +2 -4
  287. data/lib/rubygems/commands/generate_index_command.rb +3 -2
  288. data/lib/rubygems/commands/help_command.rb +4 -4
  289. data/lib/rubygems/commands/info_command.rb +9 -4
  290. data/lib/rubygems/commands/install_command.rb +12 -54
  291. data/lib/rubygems/commands/list_command.rb +8 -7
  292. data/lib/rubygems/commands/lock_command.rb +3 -5
  293. data/lib/rubygems/commands/mirror_command.rb +0 -1
  294. data/lib/rubygems/commands/open_command.rb +1 -4
  295. data/lib/rubygems/commands/outdated_command.rb +0 -1
  296. data/lib/rubygems/commands/owner_command.rb +10 -10
  297. data/lib/rubygems/commands/pristine_command.rb +13 -9
  298. data/lib/rubygems/commands/push_command.rb +12 -51
  299. data/lib/rubygems/commands/query_command.rb +14 -330
  300. data/lib/rubygems/commands/rdoc_command.rb +0 -1
  301. data/lib/rubygems/commands/search_command.rb +7 -7
  302. data/lib/rubygems/commands/server_command.rb +3 -1
  303. data/lib/rubygems/commands/setup_command.rb +143 -101
  304. data/lib/rubygems/commands/signin_command.rb +0 -1
  305. data/lib/rubygems/commands/signout_command.rb +0 -2
  306. data/lib/rubygems/commands/sources_command.rb +22 -6
  307. data/lib/rubygems/commands/specification_command.rb +8 -3
  308. data/lib/rubygems/commands/stale_command.rb +1 -1
  309. data/lib/rubygems/commands/uninstall_command.rb +2 -3
  310. data/lib/rubygems/commands/unpack_command.rb +3 -32
  311. data/lib/rubygems/commands/update_command.rb +73 -28
  312. data/lib/rubygems/commands/which_command.rb +0 -1
  313. data/lib/rubygems/commands/yank_command.rb +10 -7
  314. data/lib/rubygems/compatibility.rb +4 -4
  315. data/lib/rubygems/config_file.rb +48 -27
  316. data/lib/rubygems/core_ext/kernel_gem.rb +7 -6
  317. data/lib/rubygems/core_ext/kernel_require.rb +44 -6
  318. data/lib/rubygems/core_ext/kernel_warn.rb +22 -13
  319. data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
  320. data/lib/rubygems/defaults.rb +110 -23
  321. data/lib/rubygems/dependency.rb +28 -14
  322. data/lib/rubygems/dependency_installer.rb +11 -166
  323. data/lib/rubygems/dependency_list.rb +17 -18
  324. data/lib/rubygems/deprecate.rb +51 -6
  325. data/lib/rubygems/doctor.rb +4 -4
  326. data/lib/rubygems/errors.rb +5 -7
  327. data/lib/rubygems/exceptions.rb +2 -24
  328. data/lib/rubygems/ext.rb +6 -6
  329. data/lib/rubygems/ext/build_error.rb +2 -0
  330. data/lib/rubygems/ext/builder.rb +45 -82
  331. data/lib/rubygems/ext/cmake_builder.rb +6 -7
  332. data/lib/rubygems/ext/configure_builder.rb +5 -8
  333. data/lib/rubygems/ext/ext_conf_builder.rb +27 -23
  334. data/lib/rubygems/ext/rake_builder.rb +4 -6
  335. data/lib/rubygems/gem_runner.rb +3 -10
  336. data/lib/rubygems/gemcutter_utilities.rb +111 -37
  337. data/lib/rubygems/indexer.rb +9 -26
  338. data/lib/rubygems/install_update_options.rb +7 -7
  339. data/lib/rubygems/installer.rb +91 -98
  340. data/lib/rubygems/installer_test_case.rb +104 -42
  341. data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
  342. data/lib/rubygems/local_remote_options.rb +1 -1
  343. data/lib/rubygems/mock_gem_ui.rb +1 -4
  344. data/lib/rubygems/name_tuple.rb +4 -7
  345. data/lib/rubygems/openssl.rb +7 -0
  346. data/lib/rubygems/package.rb +49 -32
  347. data/lib/rubygems/package/digest_io.rb +0 -2
  348. data/lib/rubygems/package/file_source.rb +0 -2
  349. data/lib/rubygems/package/io_source.rb +0 -2
  350. data/lib/rubygems/package/old.rb +1 -3
  351. data/lib/rubygems/package/tar_header.rb +4 -6
  352. data/lib/rubygems/package/tar_reader.rb +15 -12
  353. data/lib/rubygems/package/tar_reader/entry.rb +0 -3
  354. data/lib/rubygems/package/tar_test_case.rb +2 -4
  355. data/lib/rubygems/package/tar_writer.rb +6 -16
  356. data/lib/rubygems/package_task.rb +1 -7
  357. data/lib/rubygems/path_support.rb +2 -2
  358. data/lib/rubygems/platform.rb +22 -16
  359. data/lib/rubygems/query_utils.rb +353 -0
  360. data/lib/rubygems/rdoc.rb +0 -12
  361. data/lib/rubygems/remote_fetcher.rb +33 -59
  362. data/lib/rubygems/request.rb +11 -14
  363. data/lib/rubygems/request/connection_pools.rb +3 -7
  364. data/lib/rubygems/request/http_pool.rb +0 -1
  365. data/lib/rubygems/request_set.rb +10 -23
  366. data/lib/rubygems/request_set/gem_dependency_api.rb +9 -11
  367. data/lib/rubygems/request_set/lockfile.rb +13 -12
  368. data/lib/rubygems/request_set/lockfile/parser.rb +2 -2
  369. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -1
  370. data/lib/rubygems/requirement.rb +36 -35
  371. data/lib/rubygems/resolver.rb +20 -16
  372. data/lib/rubygems/resolver/activation_request.rb +27 -51
  373. data/lib/rubygems/resolver/api_set.rb +31 -24
  374. data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
  375. data/lib/rubygems/resolver/api_specification.rb +24 -10
  376. data/lib/rubygems/resolver/best_set.rb +4 -6
  377. data/lib/rubygems/resolver/composed_set.rb +3 -5
  378. data/lib/rubygems/resolver/conflict.rb +2 -9
  379. data/lib/rubygems/resolver/current_set.rb +0 -2
  380. data/lib/rubygems/resolver/dependency_request.rb +1 -3
  381. data/lib/rubygems/resolver/git_set.rb +0 -2
  382. data/lib/rubygems/resolver/git_specification.rb +0 -2
  383. data/lib/rubygems/resolver/index_set.rb +1 -3
  384. data/lib/rubygems/resolver/index_specification.rb +32 -2
  385. data/lib/rubygems/resolver/installed_specification.rb +0 -2
  386. data/lib/rubygems/resolver/installer_set.rb +63 -16
  387. data/lib/rubygems/resolver/local_specification.rb +0 -2
  388. data/lib/rubygems/resolver/lock_set.rb +3 -5
  389. data/lib/rubygems/resolver/lock_specification.rb +2 -4
  390. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  391. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  392. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +8 -0
  393. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -6
  394. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  395. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
  396. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
  397. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
  398. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
  399. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
  400. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
  401. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
  402. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +51 -12
  403. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +76 -8
  404. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  405. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +12 -0
  406. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  407. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +510 -165
  408. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  409. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
  410. data/lib/rubygems/resolver/requirement_list.rb +0 -1
  411. data/lib/rubygems/resolver/set.rb +0 -2
  412. data/lib/rubygems/resolver/source_set.rb +0 -2
  413. data/lib/rubygems/resolver/spec_specification.rb +14 -2
  414. data/lib/rubygems/resolver/specification.rb +13 -2
  415. data/lib/rubygems/resolver/vendor_set.rb +0 -2
  416. data/lib/rubygems/resolver/vendor_specification.rb +0 -2
  417. data/lib/rubygems/s3_uri_signer.rb +15 -13
  418. data/lib/rubygems/safe_yaml.rb +4 -4
  419. data/lib/rubygems/security.rb +27 -34
  420. data/lib/rubygems/security/policy.rb +4 -8
  421. data/lib/rubygems/security/signer.rb +8 -9
  422. data/lib/rubygems/security/trust_dir.rb +1 -3
  423. data/lib/rubygems/server.rb +20 -16
  424. data/lib/rubygems/source.rb +30 -13
  425. data/lib/rubygems/source/git.rb +7 -8
  426. data/lib/rubygems/source/installed.rb +0 -2
  427. data/lib/rubygems/source/local.rb +2 -4
  428. data/lib/rubygems/source/lock.rb +0 -2
  429. data/lib/rubygems/source/specific_file.rb +0 -2
  430. data/lib/rubygems/source/vendor.rb +0 -2
  431. data/lib/rubygems/source_list.rb +6 -6
  432. data/lib/rubygems/spec_fetcher.rb +22 -34
  433. data/lib/rubygems/specification.rb +207 -278
  434. data/lib/rubygems/specification_policy.rb +135 -57
  435. data/{bundler/lib/bundler/ssl_certs/index.rubygems.org → lib/rubygems/ssl_certs/rubygems.org}/GlobalSignRootCA.pem +0 -0
  436. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  437. data/lib/rubygems/stub_specification.rb +4 -5
  438. data/lib/rubygems/test_case.rb +221 -341
  439. data/lib/rubygems/test_utilities.rb +22 -18
  440. data/lib/rubygems/text.rb +2 -3
  441. data/lib/rubygems/uninstaller.rb +49 -30
  442. data/lib/rubygems/uri_formatter.rb +2 -4
  443. data/lib/rubygems/uri_parser.rb +34 -0
  444. data/lib/rubygems/uri_parsing.rb +23 -0
  445. data/lib/rubygems/user_interaction.rb +3 -20
  446. data/lib/rubygems/util.rb +20 -44
  447. data/lib/rubygems/util/licenses.rb +400 -400
  448. data/lib/rubygems/validator.rb +9 -31
  449. data/lib/rubygems/version.rb +29 -21
  450. data/lib/rubygems/version_option.rb +6 -0
  451. data/rubygems-update.gemspec +4 -11
  452. data/setup.rb +2 -7
  453. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  454. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  455. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  456. data/test/rubygems/rubygems_plugin.rb +0 -2
  457. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  458. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  459. data/test/rubygems/test_bundled_ca.rb +42 -45
  460. data/test/rubygems/test_config.rb +0 -2
  461. data/test/rubygems/test_deprecate.rb +41 -5
  462. data/test/rubygems/test_gem.rb +405 -236
  463. data/test/rubygems/test_gem_available_set.rb +5 -6
  464. data/test/rubygems/test_gem_bundler_version_finder.rb +20 -2
  465. data/test/rubygems/test_gem_command.rb +144 -9
  466. data/test/rubygems/test_gem_command_manager.rb +40 -17
  467. data/test/rubygems/test_gem_commands_build_command.rb +386 -13
  468. data/test/rubygems/test_gem_commands_cert_command.rb +18 -6
  469. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  470. data/test/rubygems/test_gem_commands_cleanup_command.rb +35 -10
  471. data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
  472. data/test/rubygems/test_gem_commands_dependency_command.rb +1 -3
  473. data/test/rubygems/test_gem_commands_environment_command.rb +21 -33
  474. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  475. data/test/rubygems/test_gem_commands_generate_index_command.rb +32 -2
  476. data/test/rubygems/test_gem_commands_help_command.rb +16 -8
  477. data/test/rubygems/test_gem_commands_info_command.rb +6 -7
  478. data/test/rubygems/test_gem_commands_install_command.rb +368 -34
  479. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  480. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  481. data/test/rubygems/test_gem_commands_mirror.rb +1 -2
  482. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  483. data/test/rubygems/test_gem_commands_outdated_command.rb +18 -1
  484. data/test/rubygems/test_gem_commands_owner_command.rb +62 -9
  485. data/test/rubygems/test_gem_commands_pristine_command.rb +148 -16
  486. data/test/rubygems/test_gem_commands_push_command.rb +94 -21
  487. data/test/rubygems/test_gem_commands_query_command.rb +35 -10
  488. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  489. data/test/rubygems/test_gem_commands_server_command.rb +6 -4
  490. data/test/rubygems/test_gem_commands_setup_command.rb +228 -128
  491. data/test/rubygems/test_gem_commands_signin_command.rb +36 -11
  492. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  493. data/test/rubygems/test_gem_commands_sources_command.rb +193 -9
  494. data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
  495. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  496. data/test/rubygems/test_gem_commands_uninstall_command.rb +108 -52
  497. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  498. data/test/rubygems/test_gem_commands_update_command.rb +201 -29
  499. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  500. data/test/rubygems/test_gem_commands_yank_command.rb +86 -5
  501. data/test/rubygems/test_gem_config_file.rb +25 -13
  502. data/test/rubygems/test_gem_dependency.rb +6 -2
  503. data/test/rubygems/test_gem_dependency_installer.rb +169 -252
  504. data/test/rubygems/test_gem_dependency_list.rb +31 -26
  505. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  506. data/test/rubygems/test_gem_doctor.rb +28 -2
  507. data/test/rubygems/test_gem_ext_builder.rb +51 -44
  508. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
  509. data/test/rubygems/test_gem_ext_configure_builder.rb +6 -14
  510. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +21 -29
  511. data/test/rubygems/test_gem_ext_rake_builder.rb +39 -22
  512. data/test/rubygems/test_gem_gem_runner.rb +47 -2
  513. data/test/rubygems/test_gem_gemcutter_utilities.rb +16 -13
  514. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  515. data/test/rubygems/test_gem_indexer.rb +40 -55
  516. data/test/rubygems/test_gem_install_update_options.rb +45 -21
  517. data/test/rubygems/test_gem_installer.rb +661 -338
  518. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  519. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  520. data/test/rubygems/test_gem_package.rb +132 -45
  521. data/test/rubygems/test_gem_package_old.rb +56 -55
  522. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  523. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  524. data/test/rubygems/test_gem_package_tar_reader_entry.rb +6 -7
  525. data/test/rubygems/test_gem_package_tar_writer.rb +20 -12
  526. data/test/rubygems/test_gem_package_task.rb +46 -13
  527. data/test/rubygems/test_gem_path_support.rb +17 -13
  528. data/test/rubygems/test_gem_platform.rb +74 -7
  529. data/test/rubygems/test_gem_rdoc.rb +0 -1
  530. data/test/rubygems/test_gem_remote_fetcher.rb +223 -209
  531. data/test/rubygems/test_gem_request.rb +30 -19
  532. data/test/rubygems/test_gem_request_connection_pools.rb +2 -2
  533. data/test/rubygems/test_gem_request_set.rb +104 -29
  534. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +4 -6
  535. data/test/rubygems/test_gem_request_set_lockfile.rb +4 -5
  536. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -10
  537. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -118
  538. data/test/rubygems/test_gem_requirement.rb +50 -4
  539. data/test/rubygems/test_gem_resolver.rb +73 -31
  540. data/test/rubygems/test_gem_resolver_activation_request.rb +3 -34
  541. data/test/rubygems/test_gem_resolver_api_set.rb +60 -59
  542. data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
  543. data/test/rubygems/test_gem_resolver_best_set.rb +27 -6
  544. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  545. data/test/rubygems/test_gem_resolver_conflict.rb +1 -7
  546. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  547. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  548. data/test/rubygems/test_gem_resolver_git_specification.rb +1 -2
  549. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  550. data/test/rubygems/test_gem_resolver_index_specification.rb +7 -4
  551. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -3
  552. data/test/rubygems/test_gem_resolver_installer_set.rb +10 -10
  553. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  554. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  555. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  556. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  557. data/test/rubygems/test_gem_resolver_specification.rb +0 -2
  558. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
  559. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  560. data/test/rubygems/test_gem_security.rb +27 -25
  561. data/test/rubygems/test_gem_security_policy.rb +7 -12
  562. data/test/rubygems/test_gem_security_signer.rb +11 -12
  563. data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
  564. data/test/rubygems/test_gem_server.rb +13 -12
  565. data/test/rubygems/test_gem_silent_ui.rb +0 -1
  566. data/test/rubygems/test_gem_source.rb +32 -17
  567. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
  568. data/test/rubygems/test_gem_source_git.rb +12 -18
  569. data/test/rubygems/test_gem_source_installed.rb +11 -13
  570. data/test/rubygems/test_gem_source_list.rb +1 -1
  571. data/test/rubygems/test_gem_source_local.rb +8 -9
  572. data/test/rubygems/test_gem_source_lock.rb +17 -19
  573. data/test/rubygems/test_gem_source_specific_file.rb +9 -10
  574. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  575. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  576. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  577. data/test/rubygems/test_gem_specification.rb +363 -245
  578. data/test/rubygems/test_gem_stream_ui.rb +3 -1
  579. data/test/rubygems/test_gem_stub_specification.rb +6 -7
  580. data/test/rubygems/test_gem_text.rb +1 -2
  581. data/test/rubygems/test_gem_uninstaller.rb +165 -22
  582. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  583. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  584. data/test/rubygems/test_gem_util.rb +17 -15
  585. data/test/rubygems/test_gem_validator.rb +4 -7
  586. data/test/rubygems/test_gem_version.rb +23 -10
  587. data/test/rubygems/test_gem_version_option.rb +1 -3
  588. data/test/rubygems/test_kernel.rb +25 -9
  589. data/test/rubygems/test_project_sanity.rb +20 -0
  590. data/test/rubygems/test_remote_fetch_error.rb +1 -2
  591. data/test/rubygems/test_require.rb +394 -56
  592. data/test/test_changelog_generator.rb +17 -0
  593. metadata +109 -155
  594. data/.rubocop.yml +0 -67
  595. data/.travis.yml +0 -38
  596. data/appveyor.yml +0 -43
  597. data/bundler/CODE_OF_CONDUCT.md +0 -42
  598. data/bundler/CONTRIBUTING.md +0 -17
  599. data/bundler/exe/bundle_ruby +0 -60
  600. data/bundler/lib/bundler/cli/package.rb +0 -49
  601. data/bundler/lib/bundler/compatibility_guard.rb +0 -14
  602. data/bundler/lib/bundler/gem_remote_fetcher.rb +0 -43
  603. data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
  604. data/bundler/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  605. data/bundler/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  606. data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +0 -4
  607. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  608. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
  609. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
  610. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +0 -12
  611. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -129
  612. data/lib/rubygems/source_local.rb +0 -7
  613. data/lib/rubygems/source_specific_file.rb +0 -6
  614. data/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
  615. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  616. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  617. data/lib/ubygems.rb +0 -14
  618. data/util/CL2notes +0 -55
  619. data/util/ci +0 -82
  620. data/util/cops/deprecations.rb +0 -52
  621. data/util/create_certs.rb +0 -171
  622. data/util/create_certs.sh +0 -27
  623. data/util/create_encrypted_key.rb +0 -16
  624. data/util/generate_spdx_license_list.rb +0 -61
  625. data/util/patch_with_prs.rb +0 -77
  626. data/util/rubocop +0 -8
  627. data/util/update_bundled_ca_certificates.rb +0 -139
  628. data/util/update_changelog.rb +0 -67
@@ -34,14 +34,7 @@ module Bundler
34
34
  spec.load_paths.reject {|path| $LOAD_PATH.include?(path) }
35
35
  end.reverse.flatten
36
36
 
37
- # See Gem::Specification#add_self_to_load_path (since RubyGems 1.8)
38
- if insert_index = Bundler.rubygems.load_path_insert_index
39
- # Gem directories must come after -I and ENV['RUBYLIB']
40
- $LOAD_PATH.insert(insert_index, *load_paths)
41
- else
42
- # We are probably testing in core, -I and RUBYLIB don't apply
43
- $LOAD_PATH.unshift(*load_paths)
44
- end
37
+ Bundler.rubygems.add_to_load_path(load_paths)
45
38
 
46
39
  setup_manpath
47
40
 
@@ -50,14 +43,6 @@ module Bundler
50
43
  self
51
44
  end
52
45
 
53
- REQUIRE_ERRORS = [
54
- /^no such file to load -- (.+)$/i,
55
- /^Missing \w+ (?:file\s*)?([^\s]+.rb)$/i,
56
- /^Missing API definition file in (.+)$/i,
57
- /^cannot load such file -- (.+)$/i,
58
- /^dlopen\([^)]*\): Library not loaded: (.+)$/i,
59
- ].freeze
60
-
61
46
  def require(*groups)
62
47
  groups.map!(&:to_sym)
63
48
  groups = [:default] if groups.empty?
@@ -86,16 +71,14 @@ module Bundler
86
71
  end
87
72
  end
88
73
  rescue LoadError => e
89
- REQUIRE_ERRORS.find {|r| r =~ e.message }
90
- raise if dep.autorequire || $1 != required_file
74
+ raise if dep.autorequire || e.path != required_file
91
75
 
92
76
  if dep.autorequire.nil? && dep.name.include?("-")
93
77
  begin
94
78
  namespaced_file = dep.name.tr("-", "/")
95
79
  Kernel.require namespaced_file
96
80
  rescue LoadError => e
97
- REQUIRE_ERRORS.find {|r| r =~ e.message }
98
- raise if $1 != namespaced_file
81
+ raise if e.path != namespaced_file
99
82
  end
100
83
  end
101
84
  end
@@ -163,7 +146,7 @@ module Bundler
163
146
  gem_dirs = Dir["#{Gem.dir}/gems/*"]
164
147
  gem_files = Dir["#{Gem.dir}/cache/*.gem"]
165
148
  gemspec_files = Dir["#{Gem.dir}/specifications/*.gemspec"]
166
- extension_dirs = Dir["#{Gem.dir}/extensions/*/*/*"]
149
+ extension_dirs = Dir["#{Gem.dir}/extensions/*/*/*"] + Dir["#{Gem.dir}/bundler/gems/extensions/*/*/*"]
167
150
  spec_gem_paths = []
168
151
  # need to keep git sources around
169
152
  spec_git_paths = @definition.spec_git_paths
@@ -172,7 +155,7 @@ module Bundler
172
155
  spec_cache_paths = []
173
156
  spec_gemspec_paths = []
174
157
  spec_extension_paths = []
175
- specs.each do |spec|
158
+ Bundler.rubygems.add_default_gems_to(specs).values.each do |spec|
176
159
  spec_gem_paths << spec.full_gem_path
177
160
  # need to check here in case gems are nested like for the rails git repo
178
161
  md = %r{(.+bundler/gems/.+-[a-f0-9]{7,12})}.match(spec.full_gem_path)
@@ -220,7 +203,7 @@ module Bundler
220
203
  output
221
204
  end
222
205
 
223
- private
206
+ private
224
207
 
225
208
  def prune_gem_cache(resolve, cache_path)
226
209
  cached = Dir["#{cache_path}/*.gem"]
@@ -1,64 +1,51 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "uri"
4
-
5
3
  module Bundler
6
4
  class Settings
7
- autoload :Mirror, "bundler/mirror"
8
- autoload :Mirrors, "bundler/mirror"
9
- autoload :Validator, "bundler/settings/validator"
5
+ autoload :Mirror, File.expand_path("mirror", __dir__)
6
+ autoload :Mirrors, File.expand_path("mirror", __dir__)
7
+ autoload :Validator, File.expand_path("settings/validator", __dir__)
10
8
 
11
9
  BOOL_KEYS = %w[
12
- allow_bundler_dependency_conflicts
13
10
  allow_deployment_source_credential_changes
14
11
  allow_offline_install
15
12
  auto_clean_without_path
16
13
  auto_install
17
- auto_config_jobs
18
14
  cache_all
19
15
  cache_all_platforms
20
- cache_command_is_package
21
- console_command
22
16
  default_install_uses_path
23
17
  deployment
24
18
  deployment_means_frozen
25
19
  disable_checksum_validation
26
20
  disable_exec_load
27
21
  disable_local_branch_check
22
+ disable_local_revision_check
28
23
  disable_multisource
29
- disable_platform_warnings
30
24
  disable_shared_gems
31
25
  disable_version_check
32
- error_on_stderr
33
26
  force_ruby_platform
34
27
  forget_cli_options
35
28
  frozen
36
29
  gem.coc
37
30
  gem.mit
38
- global_path_appends_ruby_scope
39
31
  global_gem_cache
40
32
  ignore_messages
41
33
  init_gems_rb
42
- list_command
43
- lockfile_uses_separate_rubygems_sources
44
- major_deprecations
45
34
  no_install
46
35
  no_prune
47
36
  only_update_to_newer_versions
48
37
  path_relative_to_cwd
49
38
  path.system
50
39
  plugins
51
- prefer_gems_rb
40
+ prefer_patch
52
41
  print_only_version_number
53
42
  setup_makes_kernel_gem_public
43
+ silence_deprecations
54
44
  silence_root_warning
55
- skip_default_git_sources
56
- specific_platform
57
45
  suppress_install_using_messages
58
46
  unlock_source_unlocks_spec
59
47
  update_requires_all_flag
60
48
  use_gem_version_promoter_for_major_updates
61
- viz_command
62
49
  ].freeze
63
50
 
64
51
  NUMBER_KEYS = %w[
@@ -75,28 +62,25 @@ module Bundler
75
62
  ].freeze
76
63
 
77
64
  DEFAULT_CONFIG = {
78
- :disable_version_check => true,
79
- :redirect => 5,
80
- :retry => 3,
81
- :timeout => 10,
65
+ "BUNDLE_SILENCE_DEPRECATIONS" => false,
66
+ "BUNDLE_DISABLE_VERSION_CHECK" => true,
67
+ "BUNDLE_PREFER_PATCH" => false,
68
+ "BUNDLE_REDIRECT" => 5,
69
+ "BUNDLE_RETRY" => 3,
70
+ "BUNDLE_TIMEOUT" => 10,
82
71
  }.freeze
83
72
 
84
73
  def initialize(root = nil)
85
74
  @root = root
86
75
  @local_config = load_config(local_config_file)
76
+ @env_config = ENV.to_h.select {|key, _value| key =~ /\ABUNDLE_.+/ }
87
77
  @global_config = load_config(global_config_file)
88
78
  @temporary = {}
89
79
  end
90
80
 
91
81
  def [](name)
92
82
  key = key_for(name)
93
- value = @temporary.fetch(key) do
94
- @local_config.fetch(key) do
95
- ENV.fetch(key) do
96
- @global_config.fetch(key) do
97
- DEFAULT_CONFIG.fetch(name) do
98
- nil
99
- end end end end end
83
+ value = configs.values.map {|config| config[key] }.compact.first
100
84
 
101
85
  converted_value(value, name)
102
86
  end
@@ -106,18 +90,6 @@ module Bundler
106
90
  temporary(key => value)
107
91
  value
108
92
  else
109
- command = if value.nil?
110
- "bundle config --delete #{key}"
111
- else
112
- "bundle config #{key} #{Array(value).join(":")}"
113
- end
114
-
115
- Bundler::SharedHelpers.major_deprecation 2,\
116
- "flags passed to commands " \
117
- "will no longer be automatically remembered. Instead please set flags " \
118
- "you want remembered between commands using `bundle config " \
119
- "<setting name> <setting value>`, i.e. `#{command}`"
120
-
121
93
  set_local(key, value)
122
94
  end
123
95
  end
@@ -151,9 +123,7 @@ module Bundler
151
123
  end
152
124
 
153
125
  def all
154
- env_keys = ENV.keys.grep(/\ABUNDLE_.+/)
155
-
156
- keys = @temporary.keys | @global_config.keys | @local_config.keys | env_keys
126
+ keys = @temporary.keys | @global_config.keys | @local_config.keys | @env_config.keys
157
127
 
158
128
  keys.map do |key|
159
129
  key.sub(/^BUNDLE_/, "").gsub(/__/, ".").downcase
@@ -169,7 +139,11 @@ module Bundler
169
139
  end
170
140
 
171
141
  def mirror_for(uri)
172
- uri = URI(uri.to_s) unless uri.is_a?(URI)
142
+ if uri.is_a?(String)
143
+ require_relative "vendored_uri"
144
+ uri = Bundler::URI(uri)
145
+ end
146
+
173
147
  gem_mirrors.for(uri.to_s).uri
174
148
  end
175
149
 
@@ -186,13 +160,11 @@ module Bundler
186
160
 
187
161
  def locations(key)
188
162
  key = key_for(key)
189
- locations = {}
190
- locations[:temporary] = @temporary[key] if @temporary.key?(key)
191
- locations[:local] = @local_config[key] if @local_config.key?(key)
192
- locations[:env] = ENV[key] if ENV[key]
193
- locations[:global] = @global_config[key] if @global_config.key?(key)
194
- locations[:default] = DEFAULT_CONFIG[key] if DEFAULT_CONFIG.key?(key)
195
- locations
163
+ configs.keys.inject({}) do |partial_locations, level|
164
+ value_on_level = configs[level][key]
165
+ partial_locations[level] = value_on_level unless value_on_level.nil?
166
+ partial_locations
167
+ end
196
168
  end
197
169
 
198
170
  def pretty_values_for(exposed_key)
@@ -200,50 +172,51 @@ module Bundler
200
172
 
201
173
  locations = []
202
174
 
203
- if @temporary.key?(key)
204
- locations << "Set for the current command: #{converted_value(@temporary[key], exposed_key).inspect}"
175
+ if value = @temporary[key]
176
+ locations << "Set for the current command: #{converted_value(value, exposed_key).inspect}"
205
177
  end
206
178
 
207
- if @local_config.key?(key)
208
- locations << "Set for your local app (#{local_config_file}): #{converted_value(@local_config[key], exposed_key).inspect}"
179
+ if value = @local_config[key]
180
+ locations << "Set for your local app (#{local_config_file}): #{converted_value(value, exposed_key).inspect}"
209
181
  end
210
182
 
211
- if value = ENV[key]
183
+ if value = @env_config[key]
212
184
  locations << "Set via #{key}: #{converted_value(value, exposed_key).inspect}"
213
185
  end
214
186
 
215
- if @global_config.key?(key)
216
- locations << "Set for the current user (#{global_config_file}): #{converted_value(@global_config[key], exposed_key).inspect}"
187
+ if value = @global_config[key]
188
+ locations << "Set for the current user (#{global_config_file}): #{converted_value(value, exposed_key).inspect}"
217
189
  end
218
190
 
219
191
  return ["You have not configured a value for `#{exposed_key}`"] if locations.empty?
220
192
  locations
221
193
  end
222
194
 
223
- # for legacy reasons, in Bundler 1, the ruby scope isnt appended when the setting comes from ENV or the global config,
224
- # nor do we respect :disable_shared_gems
195
+ # for legacy reasons, in Bundler 2, we do not respect :disable_shared_gems
225
196
  def path
226
- key = key_for(:path)
227
- path = ENV[key] || @global_config[key]
228
- if path && !@temporary.key?(key) && !@local_config.key?(key)
229
- return Path.new(path, Bundler.feature_flag.global_path_appends_ruby_scope?, false, false)
197
+ configs.each do |_level, settings|
198
+ path = value_for("path", settings)
199
+ path_system = value_for("path.system", settings)
200
+ disabled_shared_gems = value_for("disable_shared_gems", settings)
201
+ next if path.nil? && path_system.nil? && disabled_shared_gems.nil?
202
+ system_path = path_system || (disabled_shared_gems == false)
203
+ return Path.new(path, system_path)
230
204
  end
231
205
 
232
- system_path = self["path.system"] || (self[:disable_shared_gems] == false)
233
- Path.new(self[:path], true, system_path, Bundler.feature_flag.default_install_uses_path?)
206
+ Path.new(nil, false)
234
207
  end
235
208
 
236
- Path = Struct.new(:explicit_path, :append_ruby_scope, :system_path, :default_install_uses_path) do
209
+ Path = Struct.new(:explicit_path, :system_path) do
237
210
  def path
238
211
  path = base_path
239
- path = File.join(path, Bundler.ruby_scope) if append_ruby_scope && !use_system_gems?
212
+ path = File.join(path, Bundler.ruby_scope) unless use_system_gems?
240
213
  path
241
214
  end
242
215
 
243
216
  def use_system_gems?
244
217
  return true if system_path
245
218
  return false if explicit_path
246
- !default_install_uses_path
219
+ !Bundler.feature_flag.default_install_uses_path?
247
220
  end
248
221
 
249
222
  def base_path
@@ -296,9 +269,9 @@ module Bundler
296
269
 
297
270
  def validate!
298
271
  all.each do |raw_key|
299
- [@local_config, ENV, @global_config].each do |settings|
300
- value = converted_value(settings[key_for(raw_key)], raw_key)
301
- Validator.validate!(raw_key, value, settings.to_hash.dup)
272
+ [@local_config, @env_config, @global_config].each do |settings|
273
+ value = value_for(raw_key, settings)
274
+ Validator.validate!(raw_key, value, settings.dup)
302
275
  end
303
276
  end
304
277
  end
@@ -309,7 +282,21 @@ module Bundler
309
282
  "BUNDLE_#{key}"
310
283
  end
311
284
 
312
- private
285
+ private
286
+
287
+ def configs
288
+ {
289
+ :temporary => @temporary,
290
+ :local => @local_config,
291
+ :env => @env_config,
292
+ :global => @global_config,
293
+ :default => DEFAULT_CONFIG,
294
+ }
295
+ end
296
+
297
+ def value_for(name, config)
298
+ converted_value(config[key_for(name)], name)
299
+ end
313
300
 
314
301
  def parent_setting_for(name)
315
302
  split_specific_setting_for(name)[0]
@@ -371,7 +358,7 @@ module Bundler
371
358
  return unless file
372
359
  SharedHelpers.filesystem_access(file) do |p|
373
360
  FileUtils.mkdir_p(p.dirname)
374
- require "bundler/yaml_serializer"
361
+ require_relative "yaml_serializer"
375
362
  p.open("w") {|f| f.write(YAMLSerializer.dump(hash)) }
376
363
  end
377
364
  end
@@ -406,26 +393,12 @@ module Bundler
406
393
  Pathname.new(@root).join("config") if @root
407
394
  end
408
395
 
409
- CONFIG_REGEX = %r{ # rubocop:disable Style/RegexpLiteral
410
- ^
411
- (BUNDLE_.+):\s # the key
412
- (?: !\s)? # optional exclamation mark found with ruby 1.9.3
413
- (['"]?) # optional opening quote
414
- (.* # contents of the value
415
- (?: # optionally, up until the next key
416
- (\n(?!BUNDLE).+)*
417
- )
418
- )
419
- \2 # matching closing quote
420
- $
421
- }xo
422
-
423
396
  def load_config(config_file)
424
397
  return {} if !config_file || ignore_config?
425
398
  SharedHelpers.filesystem_access(config_file, :read) do |file|
426
399
  valid_file = file.exist? && !file.size.zero?
427
400
  return {} unless valid_file
428
- require "bundler/yaml_serializer"
401
+ require_relative "yaml_serializer"
429
402
  YAMLSerializer.load file.read
430
403
  end
431
404
  end
@@ -441,7 +414,7 @@ module Bundler
441
414
  (https?.*?) # URI
442
415
  (\.#{Regexp.union(PER_URI_OPTIONS)})? # optional suffix key
443
416
  \z
444
- /ix
417
+ /ix.freeze
445
418
 
446
419
  # TODO: duplicates Rubygems#normalize_uri
447
420
  # TODO: is this the correct place to validate mirror URIs?
@@ -453,7 +426,8 @@ module Bundler
453
426
  suffix = $3
454
427
  end
455
428
  uri = "#{uri}/" unless uri.end_with?("/")
456
- uri = URI(uri)
429
+ require_relative "vendored_uri"
430
+ uri = Bundler::URI(uri)
457
431
  unless uri.absolute?
458
432
  raise ArgumentError, format("Gem sources must be absolute. You provided '%s'.", uri)
459
433
  end
@@ -1,28 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/shared_helpers"
3
+ require_relative "shared_helpers"
4
4
 
5
5
  if Bundler::SharedHelpers.in_bundle?
6
- require "bundler"
6
+ require_relative "../bundler"
7
7
 
8
8
  if STDOUT.tty? || ENV["BUNDLER_FORCE_TTY"]
9
9
  begin
10
- Bundler.setup
10
+ Bundler.ui.silence { Bundler.setup }
11
11
  rescue Bundler::BundlerError => e
12
- puts "\e[31m#{e.message}\e[0m"
13
- puts e.backtrace.join("\n") if ENV["DEBUG"]
12
+ Bundler.ui.warn "\e[31m#{e.message}\e[0m"
13
+ Bundler.ui.warn e.backtrace.join("\n") if ENV["DEBUG"]
14
14
  if e.is_a?(Bundler::GemNotFound)
15
- puts "\e[33mRun `bundle install` to install missing gems.\e[0m"
15
+ Bundler.ui.warn "\e[33mRun `bundle install` to install missing gems.\e[0m"
16
16
  end
17
17
  exit e.status_code
18
18
  end
19
19
  else
20
- Bundler.setup
20
+ Bundler.ui.silence { Bundler.setup }
21
21
  end
22
22
 
23
- # Add bundler to the load path after disabling system gems
24
- bundler_lib = File.expand_path("../..", __FILE__)
25
- $LOAD_PATH.unshift(bundler_lib) unless $LOAD_PATH.include?(bundler_lib)
26
-
27
- Bundler.ui = nil
23
+ # We might be in the middle of shelling out to rubygems
24
+ # (RUBYOPT=-rbundler/setup), so we need to give rubygems the opportunity of
25
+ # not being silent.
26
+ Gem::DefaultUserInteraction.ui = nil
28
27
  end
@@ -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
@@ -139,34 +124,32 @@ module Bundler
139
124
  namespace.const_get(constant_name)
140
125
  end
141
126
 
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}"
127
+ def major_deprecation(major_version, message, print_caller_location: false)
128
+ if print_caller_location
129
+ caller_location = caller_locations(2, 2).first
130
+ message = "#{message} (called at #{caller_location.path}:#{caller_location.lineno})"
131
+ end
132
+
133
+ bundler_major_version = Bundler.bundler_major_version
134
+ if bundler_major_version > major_version
135
+ require_relative "errors"
136
+ raise DeprecatedError, "[REMOVED] #{message}"
146
137
  end
147
138
 
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}")
139
+ return unless bundler_major_version >= major_version && prints_major_deprecations?
140
+ Bundler.ui.warn("[DEPRECATED] #{message}")
152
141
  end
153
142
 
154
143
  def print_major_deprecations!
155
144
  multiple_gemfiles = search_up(".") do |dir|
156
145
  gemfiles = gemfile_names.select {|gf| File.file? File.expand_path(gf, dir) }
157
146
  next if gemfiles.empty?
158
- break false if gemfiles.size == 1
147
+ break gemfiles.size != 1
159
148
  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}")
149
+ return unless multiple_gemfiles
150
+ message = "Multiple gemfiles (gems.rb and Gemfile) detected. " \
151
+ "Make sure you remove Gemfile and Gemfile.lock since bundler is ignoring them in favor of gems.rb and gems.rb.locked."
152
+ Bundler.ui.warn message
170
153
  end
171
154
 
172
155
  def trap(signal, override = false, &block)
@@ -211,11 +194,11 @@ module Bundler
211
194
  return @md5_available if defined?(@md5_available)
212
195
  @md5_available = begin
213
196
  require "openssl"
214
- OpenSSL::Digest::MD5.digest("")
197
+ ::OpenSSL::Digest.digest("MD5", "")
215
198
  true
216
199
  rescue LoadError
217
200
  true
218
- rescue OpenSSL::Digest::DigestError
201
+ rescue ::OpenSSL::Digest::DigestError
219
202
  false
220
203
  end
221
204
  end
@@ -229,7 +212,7 @@ module Bundler
229
212
  filesystem_access(gemfile_path) {|g| File.open(g, "w") {|file| file.puts contents } }
230
213
  end
231
214
 
232
- private
215
+ private
233
216
 
234
217
  def validate_bundle_path
235
218
  path_separator = Bundler.rubygems.path_separator
@@ -243,16 +226,14 @@ module Bundler
243
226
  raise Bundler::PathError, message
244
227
  end
245
228
 
246
- def find_gemfile(order_matters = false)
229
+ def find_gemfile
247
230
  given = ENV["BUNDLE_GEMFILE"]
248
231
  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)
232
+ find_file(*gemfile_names)
252
233
  end
253
234
 
254
235
  def gemfile_names
255
- ["Gemfile", "gems.rb"]
236
+ ["gems.rb", "Gemfile"]
256
237
  end
257
238
 
258
239
  def find_file(*names)
@@ -269,14 +250,14 @@ module Bundler
269
250
 
270
251
  def search_up(*names)
271
252
  previous = nil
272
- current = File.expand_path(SharedHelpers.pwd).untaint
253
+ current = File.expand_path(SharedHelpers.pwd).tap{|x| x.untaint if RUBY_VERSION < "2.7" }
273
254
 
274
255
  until !File.directory?(current) || current == previous
275
256
  if ENV["BUNDLE_SPEC_RUN"]
276
257
  # avoid stepping above the tmp directory when testing
277
- gemspec = if ENV["BUNDLE_RUBY"] && ENV["BUNDLE_GEM"]
258
+ gemspec = if ENV["GEM_COMMAND"]
278
259
  # for Ruby Core
279
- "lib/bundler.gemspec"
260
+ "lib/bundler/bundler.gemspec"
280
261
  else
281
262
  "bundler.gemspec"
282
263
  end
@@ -306,21 +287,17 @@ module Bundler
306
287
  public :set_env
307
288
 
308
289
  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
290
+ # bundler exe & lib folders have same root folder, typical gem installation
291
+ exe_file = File.expand_path("../../../exe/bundle", __FILE__)
292
+
293
+ # for Ruby core repository testing
294
+ exe_file = File.expand_path("../../../libexec/bundle", __FILE__) unless File.exist?(exe_file)
321
295
 
322
- # Set BUNDLE_GEMFILE
323
- Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", find_gemfile(:order_matters).to_s
296
+ # bundler is a default gem, exe path is separate
297
+ exe_file = Bundler.rubygems.bin_path("bundler", "bundle", VERSION) unless File.exist?(exe_file)
298
+
299
+ Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", exe_file
300
+ Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", find_gemfile.to_s
324
301
  Bundler::SharedHelpers.set_env "BUNDLER_VERSION", Bundler::VERSION
325
302
  end
326
303
 
@@ -333,14 +310,15 @@ module Bundler
333
310
 
334
311
  def set_rubyopt
335
312
  rubyopt = [ENV["RUBYOPT"]].compact
336
- return if !rubyopt.empty? && rubyopt.first =~ %r{-rbundler/setup}
337
- rubyopt.unshift %(-rbundler/setup)
313
+ setup_require = "-r#{File.expand_path("setup", __dir__)}"
314
+ return if !rubyopt.empty? && rubyopt.first =~ /#{setup_require}/
315
+ rubyopt.unshift setup_require
338
316
  Bundler::SharedHelpers.set_env "RUBYOPT", rubyopt.join(" ")
339
317
  end
340
318
 
341
319
  def set_rubylib
342
320
  rubylib = (ENV["RUBYLIB"] || "").split(File::PATH_SEPARATOR)
343
- rubylib.unshift bundler_ruby_lib
321
+ rubylib.unshift bundler_ruby_lib unless RbConfig::CONFIG["rubylibdir"] == bundler_ruby_lib
344
322
  Bundler::SharedHelpers.set_env "RUBYLIB", rubylib.uniq.join(File::PATH_SEPARATOR)
345
323
  end
346
324
 
@@ -349,9 +327,6 @@ module Bundler
349
327
  end
350
328
 
351
329
  def clean_load_path
352
- # handle 1.9 where system gems are always on the load path
353
- return unless defined?(::Gem)
354
-
355
330
  bundler_lib = bundler_ruby_lib
356
331
 
357
332
  loaded_gem_paths = Bundler.rubygems.loaded_gem_paths
@@ -371,10 +346,9 @@ module Bundler
371
346
  end
372
347
 
373
348
  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"
349
+ require_relative "../bundler"
350
+ return false if Bundler.settings[:silence_deprecations]
351
+ require_relative "deprecate"
378
352
  return false if Bundler::Deprecate.skip
379
353
  true
380
354
  end