rubygems-update 3.1.6 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (553) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +55 -19
  3. data/CONTRIBUTING.md +24 -10
  4. data/History.txt +362 -186
  5. data/Manifest.txt +41 -74
  6. data/POLICIES.md +2 -9
  7. data/README.md +1 -1
  8. data/Rakefile +41 -79
  9. data/bin/update_rubygems +1 -1
  10. data/bundler/CHANGELOG.md +1563 -1426
  11. data/bundler/README.md +6 -8
  12. data/bundler/UPGRADING.md +18 -32
  13. data/bundler/bundler.gemspec +3 -3
  14. data/bundler/exe/bundle +3 -0
  15. data/bundler/lib/bundler.rb +25 -7
  16. data/bundler/lib/bundler/build_metadata.rb +4 -12
  17. data/bundler/lib/bundler/cli.rb +58 -21
  18. data/bundler/lib/bundler/cli/add.rb +1 -1
  19. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  20. data/bundler/lib/bundler/cli/cache.rb +1 -7
  21. data/bundler/lib/bundler/cli/clean.rb +1 -1
  22. data/bundler/lib/bundler/cli/common.rb +14 -0
  23. data/bundler/lib/bundler/cli/console.rb +1 -1
  24. data/bundler/lib/bundler/cli/doctor.rb +1 -1
  25. data/bundler/lib/bundler/cli/exec.rb +4 -4
  26. data/bundler/lib/bundler/cli/fund.rb +36 -0
  27. data/bundler/lib/bundler/cli/gem.rb +84 -11
  28. data/bundler/lib/bundler/cli/info.rb +15 -4
  29. data/bundler/lib/bundler/cli/init.rb +2 -2
  30. data/bundler/lib/bundler/cli/inject.rb +1 -1
  31. data/bundler/lib/bundler/cli/install.rb +9 -16
  32. data/bundler/lib/bundler/cli/issue.rb +2 -2
  33. data/bundler/lib/bundler/cli/list.rb +12 -10
  34. data/bundler/lib/bundler/cli/outdated.rb +88 -67
  35. data/bundler/lib/bundler/cli/plugin.rb +10 -0
  36. data/bundler/lib/bundler/cli/pristine.rb +5 -0
  37. data/bundler/lib/bundler/cli/show.rb +1 -1
  38. data/bundler/lib/bundler/cli/update.rb +2 -0
  39. data/bundler/lib/bundler/compact_index_client.rb +1 -1
  40. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  41. data/bundler/lib/bundler/compact_index_client/updater.rb +5 -5
  42. data/bundler/lib/bundler/definition.rb +47 -61
  43. data/bundler/lib/bundler/dep_proxy.rb +1 -1
  44. data/bundler/lib/bundler/dependency.rb +0 -9
  45. data/bundler/lib/bundler/dsl.rb +5 -9
  46. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  47. data/bundler/lib/bundler/env.rb +1 -1
  48. data/bundler/lib/bundler/environment_preserver.rb +26 -2
  49. data/bundler/lib/bundler/errors.rb +1 -0
  50. data/bundler/lib/bundler/feature_flag.rb +0 -3
  51. data/bundler/lib/bundler/fetcher.rb +4 -3
  52. data/bundler/lib/bundler/fetcher/base.rb +1 -1
  53. data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
  54. data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
  55. data/bundler/lib/bundler/fetcher/index.rb +3 -4
  56. data/bundler/lib/bundler/friendly_errors.rb +22 -13
  57. data/bundler/lib/bundler/gem_helper.rb +32 -17
  58. data/bundler/lib/bundler/gem_helpers.rb +6 -1
  59. data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
  60. data/bundler/lib/bundler/graph.rb +1 -1
  61. data/bundler/lib/bundler/index.rb +6 -2
  62. data/bundler/lib/bundler/injector.rb +22 -4
  63. data/bundler/lib/bundler/inline.rb +1 -1
  64. data/bundler/lib/bundler/installer.rb +35 -32
  65. data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
  66. data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
  67. data/bundler/lib/bundler/installer/standalone.rb +2 -2
  68. data/bundler/lib/bundler/lazy_specification.rb +20 -9
  69. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  70. data/bundler/lib/bundler/lockfile_parser.rb +1 -1
  71. data/bundler/lib/bundler/man/.document +1 -0
  72. data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
  73. data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
  74. data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
  75. data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  76. data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
  77. data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
  78. data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  79. data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
  80. data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
  81. data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  82. data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
  83. data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
  84. data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
  85. data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  86. data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  87. data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
  88. data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
  89. data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
  90. data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  91. data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  92. data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
  93. data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
  94. data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
  95. data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
  96. data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
  97. data/bundler/lib/bundler/mirror.rb +2 -2
  98. data/bundler/lib/bundler/plugin.rb +30 -5
  99. data/bundler/lib/bundler/plugin/api/source.rb +1 -1
  100. data/bundler/lib/bundler/plugin/dsl.rb +1 -1
  101. data/bundler/lib/bundler/plugin/index.rb +10 -1
  102. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  103. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
  104. data/bundler/lib/bundler/plugin/source_list.rb +1 -1
  105. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  106. data/bundler/lib/bundler/remote_specification.rb +5 -2
  107. data/bundler/lib/bundler/resolver.rb +32 -10
  108. data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
  109. data/bundler/lib/bundler/retry.rb +1 -1
  110. data/bundler/lib/bundler/ruby_version.rb +1 -1
  111. data/bundler/lib/bundler/rubygems_ext.rb +53 -9
  112. data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
  113. data/bundler/lib/bundler/rubygems_integration.rb +25 -54
  114. data/bundler/lib/bundler/runtime.rb +4 -14
  115. data/bundler/lib/bundler/settings.rb +49 -46
  116. data/bundler/lib/bundler/shared_helpers.rb +2 -2
  117. data/bundler/lib/bundler/similarity_detector.rb +1 -1
  118. data/bundler/lib/bundler/source.rb +1 -1
  119. data/bundler/lib/bundler/source/git.rb +5 -5
  120. data/bundler/lib/bundler/source/git/git_proxy.rb +57 -60
  121. data/bundler/lib/bundler/source/path.rb +7 -3
  122. data/bundler/lib/bundler/source/path/installer.rb +8 -10
  123. data/bundler/lib/bundler/source/rubygems.rb +13 -16
  124. data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
  125. data/bundler/lib/bundler/source_list.rb +2 -2
  126. data/bundler/lib/bundler/spec_set.rb +2 -1
  127. data/bundler/lib/bundler/stub_specification.rb +17 -5
  128. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  129. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
  130. data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
  131. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
  132. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  133. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  134. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  135. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
  136. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  137. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  138. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  139. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +14 -6
  140. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
  141. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  142. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  143. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  144. data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  145. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  146. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  147. data/bundler/lib/bundler/ui/shell.rb +5 -5
  148. data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
  149. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
  150. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
  151. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
  152. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
  153. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  154. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +38 -40
  155. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +75 -189
  156. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
  157. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  158. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  159. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  160. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  161. data/bundler/lib/bundler/vendored_persistent.rb +0 -7
  162. data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
  163. data/bundler/lib/bundler/version.rb +1 -1
  164. data/bundler/lib/bundler/worker.rb +1 -1
  165. data/bundler/lib/bundler/yaml_serializer.rb +1 -1
  166. data/bundler/man/bundle-add.1 +1 -1
  167. data/bundler/man/bundle-binstubs.1 +5 -3
  168. data/bundler/man/bundle-cache.1 +1 -1
  169. data/bundler/man/bundle-check.1 +1 -1
  170. data/bundler/man/bundle-clean.1 +1 -1
  171. data/bundler/man/bundle-config.1 +16 -25
  172. data/bundler/man/bundle-doctor.1 +1 -1
  173. data/bundler/man/bundle-exec.1 +1 -1
  174. data/bundler/man/bundle-gem.1 +25 -3
  175. data/bundler/man/bundle-info.1 +1 -1
  176. data/bundler/man/bundle-init.1 +1 -1
  177. data/bundler/man/bundle-inject.1 +1 -1
  178. data/bundler/man/bundle-install.1 +30 -3
  179. data/bundler/man/bundle-list.1 +7 -7
  180. data/bundler/man/bundle-lock.1 +1 -1
  181. data/bundler/man/bundle-open.1 +1 -1
  182. data/bundler/man/bundle-outdated.1 +1 -1
  183. data/bundler/man/bundle-platform.1 +1 -1
  184. data/bundler/man/bundle-pristine.1 +1 -1
  185. data/bundler/man/bundle-remove.1 +1 -1
  186. data/bundler/man/bundle-show.1 +1 -1
  187. data/bundler/man/bundle-update.1 +1 -1
  188. data/bundler/man/bundle-viz.1 +1 -1
  189. data/bundler/man/bundle.1 +1 -1
  190. data/bundler/man/gemfile.5 +4 -4
  191. data/lib/rubygems.rb +71 -150
  192. data/lib/rubygems/available_set.rb +4 -6
  193. data/lib/rubygems/basic_specification.rb +11 -9
  194. data/lib/rubygems/bundler_version_finder.rb +14 -9
  195. data/lib/rubygems/command.rb +16 -16
  196. data/lib/rubygems/command_manager.rb +5 -6
  197. data/lib/rubygems/commands/build_command.rb +40 -20
  198. data/lib/rubygems/commands/cert_command.rb +2 -10
  199. data/lib/rubygems/commands/check_command.rb +0 -2
  200. data/lib/rubygems/commands/cleanup_command.rb +11 -7
  201. data/lib/rubygems/commands/contents_command.rb +4 -6
  202. data/lib/rubygems/commands/dependency_command.rb +6 -8
  203. data/lib/rubygems/commands/environment_command.rb +1 -3
  204. data/lib/rubygems/commands/fetch_command.rb +2 -4
  205. data/lib/rubygems/commands/generate_index_command.rb +0 -2
  206. data/lib/rubygems/commands/help_command.rb +3 -3
  207. data/lib/rubygems/commands/info_command.rb +8 -5
  208. data/lib/rubygems/commands/install_command.rb +3 -5
  209. data/lib/rubygems/commands/list_command.rb +8 -7
  210. data/lib/rubygems/commands/lock_command.rb +1 -3
  211. data/lib/rubygems/commands/mirror_command.rb +0 -2
  212. data/lib/rubygems/commands/open_command.rb +0 -4
  213. data/lib/rubygems/commands/outdated_command.rb +0 -2
  214. data/lib/rubygems/commands/owner_command.rb +9 -3
  215. data/lib/rubygems/commands/pristine_command.rb +11 -5
  216. data/lib/rubygems/commands/push_command.rb +10 -46
  217. data/lib/rubygems/commands/query_command.rb +14 -344
  218. data/lib/rubygems/commands/rdoc_command.rb +0 -2
  219. data/lib/rubygems/commands/search_command.rb +7 -7
  220. data/lib/rubygems/commands/server_command.rb +3 -1
  221. data/lib/rubygems/commands/setup_command.rb +131 -58
  222. data/lib/rubygems/commands/signin_command.rb +0 -2
  223. data/lib/rubygems/commands/signout_command.rb +0 -2
  224. data/lib/rubygems/commands/sources_command.rb +6 -4
  225. data/lib/rubygems/commands/specification_command.rb +8 -4
  226. data/lib/rubygems/commands/stale_command.rb +1 -3
  227. data/lib/rubygems/commands/uninstall_command.rb +1 -3
  228. data/lib/rubygems/commands/unpack_command.rb +1 -3
  229. data/lib/rubygems/commands/update_command.rb +59 -14
  230. data/lib/rubygems/commands/which_command.rb +0 -2
  231. data/lib/rubygems/commands/yank_command.rb +4 -6
  232. data/lib/rubygems/config_file.rb +11 -4
  233. data/lib/rubygems/core_ext/kernel_require.rb +5 -2
  234. data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
  235. data/lib/rubygems/defaults.rb +101 -7
  236. data/lib/rubygems/dependency.rb +3 -8
  237. data/lib/rubygems/dependency_installer.rb +5 -78
  238. data/lib/rubygems/dependency_list.rb +7 -9
  239. data/lib/rubygems/deprecate.rb +46 -1
  240. data/lib/rubygems/doctor.rb +4 -4
  241. data/lib/rubygems/errors.rb +3 -14
  242. data/lib/rubygems/exceptions.rb +2 -33
  243. data/lib/rubygems/ext.rb +6 -6
  244. data/lib/rubygems/ext/build_error.rb +2 -0
  245. data/lib/rubygems/ext/builder.rb +14 -35
  246. data/lib/rubygems/ext/cmake_builder.rb +5 -7
  247. data/lib/rubygems/ext/configure_builder.rb +4 -6
  248. data/lib/rubygems/ext/ext_conf_builder.rb +21 -19
  249. data/lib/rubygems/ext/rake_builder.rb +3 -5
  250. data/lib/rubygems/gem_runner.rb +3 -10
  251. data/lib/rubygems/gemcutter_utilities.rb +91 -15
  252. data/lib/rubygems/indexer.rb +1 -22
  253. data/lib/rubygems/install_update_options.rb +7 -7
  254. data/lib/rubygems/installer.rb +59 -57
  255. data/lib/rubygems/installer_test_case.rb +25 -11
  256. data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
  257. data/lib/rubygems/local_remote_options.rb +1 -1
  258. data/lib/rubygems/mock_gem_ui.rb +0 -6
  259. data/lib/rubygems/name_tuple.rb +3 -7
  260. data/lib/rubygems/openssl.rb +7 -0
  261. data/lib/rubygems/package.rb +14 -25
  262. data/lib/rubygems/package/digest_io.rb +0 -2
  263. data/lib/rubygems/package/file_source.rb +0 -2
  264. data/lib/rubygems/package/io_source.rb +0 -2
  265. data/lib/rubygems/package/old.rb +1 -3
  266. data/lib/rubygems/package/tar_header.rb +4 -6
  267. data/lib/rubygems/package/tar_reader.rb +0 -3
  268. data/lib/rubygems/package/tar_reader/entry.rb +0 -3
  269. data/lib/rubygems/package/tar_test_case.rb +2 -4
  270. data/lib/rubygems/package/tar_writer.rb +2 -12
  271. data/lib/rubygems/package_task.rb +1 -7
  272. data/lib/rubygems/path_support.rb +1 -3
  273. data/lib/rubygems/platform.rb +21 -12
  274. data/lib/rubygems/psych_tree.rb +0 -2
  275. data/lib/rubygems/query_utils.rb +353 -0
  276. data/lib/rubygems/rdoc.rb +0 -12
  277. data/lib/rubygems/remote_fetcher.rb +10 -27
  278. data/lib/rubygems/request.rb +4 -11
  279. data/lib/rubygems/request/connection_pools.rb +1 -5
  280. data/lib/rubygems/request/http_pool.rb +0 -2
  281. data/lib/rubygems/request/https_pool.rb +0 -2
  282. data/lib/rubygems/request_set.rb +5 -7
  283. data/lib/rubygems/request_set/gem_dependency_api.rb +5 -7
  284. data/lib/rubygems/request_set/lockfile.rb +8 -12
  285. data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
  286. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
  287. data/lib/rubygems/requirement.rb +20 -21
  288. data/lib/rubygems/resolver.rb +8 -11
  289. data/lib/rubygems/resolver/activation_request.rb +9 -3
  290. data/lib/rubygems/resolver/api_set.rb +3 -5
  291. data/lib/rubygems/resolver/api_specification.rb +20 -7
  292. data/lib/rubygems/resolver/best_set.rb +0 -2
  293. data/lib/rubygems/resolver/composed_set.rb +3 -5
  294. data/lib/rubygems/resolver/conflict.rb +2 -4
  295. data/lib/rubygems/resolver/current_set.rb +0 -2
  296. data/lib/rubygems/resolver/dependency_request.rb +1 -3
  297. data/lib/rubygems/resolver/git_set.rb +0 -2
  298. data/lib/rubygems/resolver/git_specification.rb +0 -2
  299. data/lib/rubygems/resolver/index_set.rb +1 -3
  300. data/lib/rubygems/resolver/index_specification.rb +11 -2
  301. data/lib/rubygems/resolver/installed_specification.rb +0 -2
  302. data/lib/rubygems/resolver/installer_set.rb +4 -7
  303. data/lib/rubygems/resolver/local_specification.rb +0 -2
  304. data/lib/rubygems/resolver/lock_set.rb +2 -4
  305. data/lib/rubygems/resolver/lock_specification.rb +0 -2
  306. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  307. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  308. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
  309. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
  310. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  311. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
  312. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
  313. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
  314. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
  315. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
  316. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
  317. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
  318. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
  319. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
  320. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  321. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
  322. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  323. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
  324. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  325. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
  326. data/lib/rubygems/resolver/requirement_list.rb +0 -2
  327. data/lib/rubygems/resolver/set.rb +0 -2
  328. data/lib/rubygems/resolver/source_set.rb +0 -2
  329. data/lib/rubygems/resolver/spec_specification.rb +0 -2
  330. data/lib/rubygems/resolver/specification.rb +1 -3
  331. data/lib/rubygems/resolver/stats.rb +0 -2
  332. data/lib/rubygems/resolver/vendor_set.rb +0 -2
  333. data/lib/rubygems/resolver/vendor_specification.rb +0 -2
  334. data/lib/rubygems/s3_uri_signer.rb +2 -8
  335. data/lib/rubygems/safe_yaml.rb +4 -4
  336. data/lib/rubygems/security.rb +27 -34
  337. data/lib/rubygems/security/policy.rb +4 -8
  338. data/lib/rubygems/security/signer.rb +5 -7
  339. data/lib/rubygems/security/trust_dir.rb +1 -3
  340. data/lib/rubygems/server.rb +9 -11
  341. data/lib/rubygems/source.rb +13 -7
  342. data/lib/rubygems/source/git.rb +7 -8
  343. data/lib/rubygems/source/installed.rb +0 -2
  344. data/lib/rubygems/source/local.rb +2 -4
  345. data/lib/rubygems/source/lock.rb +0 -2
  346. data/lib/rubygems/source/specific_file.rb +0 -2
  347. data/lib/rubygems/source/vendor.rb +0 -2
  348. data/lib/rubygems/source_list.rb +4 -7
  349. data/lib/rubygems/spec_fetcher.rb +19 -18
  350. data/lib/rubygems/specification.rb +101 -118
  351. data/lib/rubygems/specification_policy.rb +79 -29
  352. data/lib/rubygems/stub_specification.rb +1 -5
  353. data/lib/rubygems/syck_hack.rb +0 -2
  354. data/lib/rubygems/test_case.rb +78 -122
  355. data/lib/rubygems/test_utilities.rb +6 -14
  356. data/lib/rubygems/uninstaller.rb +35 -16
  357. data/lib/rubygems/uri_formatter.rb +2 -3
  358. data/lib/rubygems/uri_parser.rb +0 -2
  359. data/lib/rubygems/user_interaction.rb +1 -26
  360. data/lib/rubygems/util.rb +8 -2
  361. data/lib/rubygems/util/licenses.rb +4 -6
  362. data/lib/rubygems/util/list.rb +0 -2
  363. data/lib/rubygems/validator.rb +1 -3
  364. data/lib/rubygems/version.rb +4 -6
  365. data/lib/rubygems/version_option.rb +6 -0
  366. data/rubygems-update.gemspec +2 -2
  367. data/setup.rb +2 -7
  368. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
  369. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  370. data/test/rubygems/rubygems_plugin.rb +0 -2
  371. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  372. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -2
  373. data/test/rubygems/test_bundled_ca.rb +41 -48
  374. data/test/rubygems/test_config.rb +0 -2
  375. data/test/rubygems/test_deprecate.rb +40 -7
  376. data/test/rubygems/test_gem.rb +82 -79
  377. data/test/rubygems/test_gem_available_set.rb +3 -5
  378. data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
  379. data/test/rubygems/test_gem_command.rb +24 -7
  380. data/test/rubygems/test_gem_command_manager.rb +36 -5
  381. data/test/rubygems/test_gem_commands_build_command.rb +233 -15
  382. data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
  383. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  384. data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
  385. data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
  386. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
  387. data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
  388. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  389. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
  390. data/test/rubygems/test_gem_commands_help_command.rb +15 -4
  391. data/test/rubygems/test_gem_commands_info_command.rb +6 -8
  392. data/test/rubygems/test_gem_commands_install_command.rb +32 -34
  393. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  394. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  395. data/test/rubygems/test_gem_commands_mirror.rb +1 -3
  396. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  397. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
  398. data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
  399. data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
  400. data/test/rubygems/test_gem_commands_push_command.rb +38 -9
  401. data/test/rubygems/test_gem_commands_query_command.rb +12 -12
  402. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  403. data/test/rubygems/test_gem_commands_server_command.rb +0 -2
  404. data/test/rubygems/test_gem_commands_setup_command.rb +165 -124
  405. data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
  406. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  407. data/test/rubygems/test_gem_commands_sources_command.rb +60 -2
  408. data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
  409. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  410. data/test/rubygems/test_gem_commands_uninstall_command.rb +1 -3
  411. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  412. data/test/rubygems/test_gem_commands_update_command.rb +116 -7
  413. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  414. data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
  415. data/test/rubygems/test_gem_config_file.rb +7 -12
  416. data/test/rubygems/test_gem_dependency.rb +0 -2
  417. data/test/rubygems/test_gem_dependency_installer.rb +90 -193
  418. data/test/rubygems/test_gem_dependency_list.rb +10 -12
  419. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  420. data/test/rubygems/test_gem_doctor.rb +28 -2
  421. data/test/rubygems/test_gem_ext_builder.rb +26 -47
  422. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
  423. data/test/rubygems/test_gem_ext_configure_builder.rb +4 -20
  424. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
  425. data/test/rubygems/test_gem_ext_rake_builder.rb +14 -24
  426. data/test/rubygems/test_gem_gem_runner.rb +44 -1
  427. data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
  428. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  429. data/test/rubygems/test_gem_indexer.rb +9 -15
  430. data/test/rubygems/test_gem_install_update_options.rb +14 -4
  431. data/test/rubygems/test_gem_installer.rb +256 -59
  432. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  433. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  434. data/test/rubygems/test_gem_package.rb +38 -31
  435. data/test/rubygems/test_gem_package_old.rb +4 -6
  436. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  437. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  438. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
  439. data/test/rubygems/test_gem_package_tar_writer.rb +4 -6
  440. data/test/rubygems/test_gem_package_task.rb +46 -13
  441. data/test/rubygems/test_gem_path_support.rb +0 -2
  442. data/test/rubygems/test_gem_platform.rb +63 -6
  443. data/test/rubygems/test_gem_rdoc.rb +0 -2
  444. data/test/rubygems/test_gem_remote_fetcher.rb +168 -211
  445. data/test/rubygems/test_gem_request.rb +13 -17
  446. data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
  447. data/test/rubygems/test_gem_request_set.rb +20 -22
  448. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
  449. data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
  450. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
  451. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
  452. data/test/rubygems/test_gem_requirement.rb +10 -4
  453. data/test/rubygems/test_gem_resolver.rb +6 -8
  454. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
  455. data/test/rubygems/test_gem_resolver_api_set.rb +11 -13
  456. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
  457. data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
  458. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  459. data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
  460. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  461. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  462. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
  463. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  464. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
  465. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
  466. data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
  467. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  468. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  469. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  470. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  471. data/test/rubygems/test_gem_resolver_specification.rb +0 -4
  472. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
  473. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  474. data/test/rubygems/test_gem_security.rb +22 -24
  475. data/test/rubygems/test_gem_security_policy.rb +7 -12
  476. data/test/rubygems/test_gem_security_signer.rb +10 -12
  477. data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
  478. data/test/rubygems/test_gem_server.rb +10 -14
  479. data/test/rubygems/test_gem_silent_ui.rb +0 -2
  480. data/test/rubygems/test_gem_source.rb +17 -16
  481. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
  482. data/test/rubygems/test_gem_source_git.rb +12 -13
  483. data/test/rubygems/test_gem_source_installed.rb +7 -9
  484. data/test/rubygems/test_gem_source_list.rb +1 -2
  485. data/test/rubygems/test_gem_source_local.rb +8 -10
  486. data/test/rubygems/test_gem_source_lock.rb +10 -12
  487. data/test/rubygems/test_gem_source_specific_file.rb +7 -9
  488. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  489. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  490. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  491. data/test/rubygems/test_gem_specification.rb +156 -125
  492. data/test/rubygems/test_gem_stream_ui.rb +3 -3
  493. data/test/rubygems/test_gem_stub_specification.rb +4 -6
  494. data/test/rubygems/test_gem_text.rb +1 -3
  495. data/test/rubygems/test_gem_uninstaller.rb +134 -12
  496. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  497. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  498. data/test/rubygems/test_gem_util.rb +7 -7
  499. data/test/rubygems/test_gem_validator.rb +1 -3
  500. data/test/rubygems/test_gem_version.rb +1 -3
  501. data/test/rubygems/test_gem_version_option.rb +1 -3
  502. data/test/rubygems/test_kernel.rb +10 -14
  503. data/test/rubygems/test_project_sanity.rb +7 -2
  504. data/test/rubygems/test_remote_fetch_error.rb +0 -2
  505. data/test/rubygems/test_require.rb +191 -60
  506. metadata +60 -94
  507. data/.bundle/config +0 -2
  508. data/.rubocop.yml +0 -91
  509. data/Gemfile +0 -8
  510. data/Gemfile.lock +0 -43
  511. data/bundler/CODE_OF_CONDUCT.md +0 -136
  512. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  513. data/bundler/man/bundle-add.1.txt +0 -58
  514. data/bundler/man/bundle-binstubs.1.txt +0 -48
  515. data/bundler/man/bundle-cache.1.txt +0 -78
  516. data/bundler/man/bundle-check.1.txt +0 -33
  517. data/bundler/man/bundle-clean.1.txt +0 -26
  518. data/bundler/man/bundle-config.1.txt +0 -528
  519. data/bundler/man/bundle-doctor.1.txt +0 -44
  520. data/bundler/man/bundle-exec.1.txt +0 -178
  521. data/bundler/man/bundle-gem.1.txt +0 -91
  522. data/bundler/man/bundle-info.1.txt +0 -21
  523. data/bundler/man/bundle-init.1.txt +0 -34
  524. data/bundler/man/bundle-inject.1.txt +0 -32
  525. data/bundler/man/bundle-install.1.txt +0 -401
  526. data/bundler/man/bundle-list.1.txt +0 -43
  527. data/bundler/man/bundle-lock.1.txt +0 -93
  528. data/bundler/man/bundle-open.1.txt +0 -29
  529. data/bundler/man/bundle-outdated.1.txt +0 -131
  530. data/bundler/man/bundle-platform.1.txt +0 -57
  531. data/bundler/man/bundle-pristine.1.txt +0 -44
  532. data/bundler/man/bundle-remove.1.txt +0 -34
  533. data/bundler/man/bundle-show.1.txt +0 -27
  534. data/bundler/man/bundle-update.1.txt +0 -390
  535. data/bundler/man/bundle-viz.1.txt +0 -39
  536. data/bundler/man/bundle.1.txt +0 -116
  537. data/bundler/man/gemfile.5.txt +0 -649
  538. data/lib/rubygems/source_local.rb +0 -7
  539. data/lib/rubygems/source_specific_file.rb +0 -6
  540. data/lib/ubygems.rb +0 -14
  541. data/tmp/.keep +0 -0
  542. data/util/CL2notes +0 -55
  543. data/util/bisect +0 -10
  544. data/util/ci.sh +0 -62
  545. data/util/cops/deprecations.rb +0 -52
  546. data/util/create_certs.rb +0 -171
  547. data/util/create_certs.sh +0 -27
  548. data/util/create_encrypted_key.rb +0 -16
  549. data/util/generate_spdx_license_list.rb +0 -63
  550. data/util/patch_with_prs.rb +0 -77
  551. data/util/rubocop +0 -8
  552. data/util/update_bundled_ca_certificates.rb +0 -137
  553. data/util/update_changelog.rb +0 -64
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-DOCTOR" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-DOCTOR" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-EXEC" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-EXEC" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-exec\fR \- Execute a command in the context of the bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-GEM" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-GEM" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
@@ -64,8 +64,30 @@ Add an MIT license to a \fBLICENSE\.txt\fR file in the root of the generated pro
64
64
  Do not create a \fBLICENSE\.txt\fR (overrides \fB\-\-mit\fR specified in the global config)\.
65
65
  .
66
66
  .TP
67
- \fB\-t\fR, \fB\-\-test=minitest\fR, \fB\-\-test=rspec\fR
68
- Specify the test framework that Bundler should use when generating the project\. Acceptable values are \fBminitest\fR and \fBrspec\fR\. The \fBGEM_NAME\.gemspec\fR will be configured and a skeleton test/spec directory will be created based on this option\. If this option is unspecified, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\. If no option is specified, the default testing framework is RSpec\.
67
+ \fB\-t\fR, \fB\-\-test=minitest\fR, \fB\-\-test=rspec\fR, \fB\-\-test=test\-unit\fR
68
+ Specify the test framework that Bundler should use when generating the project\. Acceptable values are \fBminitest\fR, \fBrspec\fR and \fBtest\-unit\fR\. The \fBGEM_NAME\.gemspec\fR will be configured and a skeleton test/spec directory will be created based on this option\. Given no option is specified:
69
+ .
70
+ .IP
71
+ When Bundler is configured to generate tests, this defaults to Bundler\'s global config setting \fBgem\.test\fR\.
72
+ .
73
+ .IP
74
+ When Bundler is configured to not generate tests, an interactive prompt will be displayed and the answer will be used for the current rubygem project\.
75
+ .
76
+ .IP
77
+ When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
78
+ .
79
+ .TP
80
+ \fB\-\-ci\fR, \fB\-\-ci=github\fR, \fB\-\-ci=travis\fR, \fB\-\-ci=gitlab\fR, \fB\-\-ci=circle\fR
81
+ Specify the continuous integration service that Bundler should use when generating the project\. Acceptable values are \fBgithub\fR, \fBtravis\fR, \fBgitlab\fR and \fBcircle\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
82
+ .
83
+ .IP
84
+ When Bundler is configured to generate CI files, this defaults to Bundler\'s global config setting \fBgem\.ci\fR\.
85
+ .
86
+ .IP
87
+ When Bundler is configured to not generate CI files, an interactive prompt will be displayed and the answer will be used for the current rubygem project\.
88
+ .
89
+ .IP
90
+ When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
69
91
  .
70
92
  .TP
71
93
  \fB\-e\fR, \fB\-\-edit[=EDITOR]\fR
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INFO" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-INFO" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-info\fR \- Show information for the given gem in your bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INIT" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-INIT" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-init\fR \- Generates a Gemfile into the current working directory
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INJECT" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-INJECT" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INSTALL" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-INSTALL" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
@@ -19,7 +19,7 @@ If a \fBGemfile\.lock\fR does exist, and you have not updated your Gemfile(5), B
19
19
  If a \fBGemfile\.lock\fR does exist, and you have updated your Gemfile(5), Bundler will use the dependencies in the \fBGemfile\.lock\fR for all gems that you did not update, but will re\-resolve the dependencies of gems that you did update\. You can find more information about this update process below under \fICONSERVATIVE UPDATING\fR\.
20
20
  .
21
21
  .SH "OPTIONS"
22
- To apply any of \fB\-\-binstubs\fR, \fB\-\-deployment\fR, \fB\-\-path\fR, or \fB\-\-without\fR every time \fBbundle install\fR is run, use \fBbundle config\fR (see bundle\-config(1))\.
22
+ The \fB\-\-clean\fR, \fB\-\-deployment\fR, \fB\-\-frozen\fR, \fB\-\-no\-prune\fR, \fB\-\-path\fR, \fB\-\-shebang\fR, \fB\-\-system\fR, \fB\-\-without\fR and \fB\-\-with\fR options are deprecated because they only make sense if they are applied to every subsequent \fBbundle install\fR run automatically and that requires \fBbundler\fR to silently remember them\. Since \fBbundler\fR will no longer remember CLI flags in future versions, \fBbundle config\fR (see bundle\-config(1)) should be used to apply them permanently\.
23
23
  .
24
24
  .TP
25
25
  \fB\-\-binstubs[=<directory>]\fR
@@ -32,10 +32,16 @@ Creates a directory (defaults to \fB~/bin\fR) and places any executables from th
32
32
  \fB\-\-clean\fR
33
33
  On finishing the installation Bundler is going to remove any gems not present in the current Gemfile(5)\. Don\'t worry, gems currently in use will not be removed\.
34
34
  .
35
+ .IP
36
+ This option is deprecated in favor of the \fBclean\fR setting\.
37
+ .
35
38
  .TP
36
39
  \fB\-\-deployment\fR
37
40
  In \fIdeployment mode\fR, Bundler will \'roll\-out\' the bundle for production or CI use\. Please check carefully if you want to have this option enabled in your development environment\.
38
41
  .
42
+ .IP
43
+ This option is deprecated in favor of the \fBdeployment\fR setting\.
44
+ .
39
45
  .TP
40
46
  \fB\-\-redownload\fR
41
47
  Force download every gem, even if the required versions are already available locally\.
@@ -44,6 +50,9 @@ Force download every gem, even if the required versions are already available lo
44
50
  \fB\-\-frozen\fR
45
51
  Do not allow the Gemfile\.lock to be updated after this install\. Exits non\-zero if there are going to be changes to the Gemfile\.lock\.
46
52
  .
53
+ .IP
54
+ This option is deprecated in favor of the \fBfrozen\fR setting\.
55
+ .
47
56
  .TP
48
57
  \fB\-\-full\-index\fR
49
58
  Bundler will not call Rubygems\' API endpoint (default) but download and cache a (currently big) index file of all gems\. Performance can be improved for large bundles that seldom change by enabling this option\.
@@ -58,7 +67,7 @@ The maximum number of parallel download and install jobs\. The default is \fB1\f
58
67
  .
59
68
  .TP
60
69
  \fB\-\-local\fR
61
- Do not attempt to connect to \fBrubygems\.org\fR\. Instead, Bundler will use the gems already present in Rubygems\' cache or in \fBvendor/cache\fR\. Note that if a appropriate platform\-specific gem exists on \fBrubygems\.org\fR it will not be found\.
70
+ Do not attempt to connect to \fBrubygems\.org\fR\. Instead, Bundler will use the gems already present in Rubygems\' cache or in \fBvendor/cache\fR\. Note that if an appropriate platform\-specific gem exists on \fBrubygems\.org\fR it will not be found\.
62
71
  .
63
72
  .TP
64
73
  \fB\-\-no\-cache\fR
@@ -68,10 +77,16 @@ Do not update the cache in \fBvendor/cache\fR with the newly bundled gems\. This
68
77
  \fB\-\-no\-prune\fR
69
78
  Don\'t remove stale gems from the cache when the installation finishes\.
70
79
  .
80
+ .IP
81
+ This option is deprecated in favor of the \fBno_prune\fR setting\.
82
+ .
71
83
  .TP
72
84
  \fB\-\-path=<path>\fR
73
85
  The location to install the specified gems to\. This defaults to Rubygems\' setting\. Bundler shares this location with Rubygems, \fBgem install \.\.\.\fR will have gem installed there, too\. Therefore, gems installed without a \fB\-\-path \.\.\.\fR setting will show up by calling \fBgem list\fR\. Accordingly, gems installed to other locations will not get listed\.
74
86
  .
87
+ .IP
88
+ This option is deprecated in favor of the \fBpath\fR setting\.
89
+ .
75
90
  .TP
76
91
  \fB\-\-quiet\fR
77
92
  Do not print progress information to the standard output\. Instead, Bundler will exit using a status code (\fB$?\fR)\.
@@ -84,6 +99,9 @@ Retry failed network or git requests for \fInumber\fR times\.
84
99
  \fB\-\-shebang=<ruby\-executable>\fR
85
100
  Uses the specified ruby executable (usually \fBruby\fR) to execute the scripts created with \fB\-\-binstubs\fR\. In addition, if you use \fB\-\-binstubs\fR together with \fB\-\-shebang jruby\fR these executables will be changed to execute \fBjruby\fR instead\.
86
101
  .
102
+ .IP
103
+ This option is deprecated in favor of the \fBshebang\fR setting\.
104
+ .
87
105
  .TP
88
106
  \fB\-\-standalone[=<list>]\fR
89
107
  Makes a bundle that can work without depending on Rubygems or Bundler at runtime\. A space separated list of groups to install has to be specified\. Bundler creates a directory named \fBbundle\fR and installs the bundle there\. It also generates a \fBbundle/bundler/setup\.rb\fR file to replace Bundler\'s own setup in the manner required\. Using this option implicitly sets \fBpath\fR, which is a [remembered option][REMEMBERED OPTIONS]\.
@@ -92,6 +110,9 @@ Makes a bundle that can work without depending on Rubygems or Bundler at runtime
92
110
  \fB\-\-system\fR
93
111
  Installs the gems specified in the bundle to the system\'s Rubygems location\. This overrides any previous configuration of \fB\-\-path\fR\.
94
112
  .
113
+ .IP
114
+ This option is deprecated in favor of the \fBsystem\fR setting\.
115
+ .
95
116
  .TP
96
117
  \fB\-\-trust\-policy=[<policy>]\fR
97
118
  Apply the Rubygems security policy \fIpolicy\fR, where policy is one of \fBHighSecurity\fR, \fBMediumSecurity\fR, \fBLowSecurity\fR, \fBAlmostNoSecurity\fR, or \fBNoSecurity\fR\. For more details, please see the Rubygems signing documentation linked below in \fISEE ALSO\fR\.
@@ -100,10 +121,16 @@ Apply the Rubygems security policy \fIpolicy\fR, where policy is one of \fBHighS
100
121
  \fB\-\-with=<list>\fR
101
122
  A space\-separated list of groups referencing gems to install\. If an optional group is given it is installed\. If a group is given that is in the remembered list of groups given to \-\-without, it is removed from that list\.
102
123
  .
124
+ .IP
125
+ This option is deprecated in favor of the \fBwith\fR setting\.
126
+ .
103
127
  .TP
104
128
  \fB\-\-without=<list>\fR
105
129
  A space\-separated list of groups referencing gems to skip during installation\. If a group is given that is in the remembered list of groups given to \-\-with, it is removed from that list\.
106
130
  .
131
+ .IP
132
+ This option is deprecated in favor of the \fBwithout\fR setting\.
133
+ .
107
134
  .SH "DEPLOYMENT MODE"
108
135
  Bundler\'s defaults are optimized for development\. To switch to defaults optimized for deployment and for CI, use the \fB\-\-deployment\fR flag\. Do not activate deployment mode on development machines, as it will cause an error when the Gemfile(5) is modified\.
109
136
  .
@@ -1,13 +1,13 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-LIST" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-LIST" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-list\fR \- List all the gems in the bundle
8
8
  .
9
9
  .SH "SYNOPSIS"
10
- \fBbundle list\fR [\-\-name\-only] [\-\-paths] [\-\-without\-group=GROUP] [\-\-only\-group=GROUP]
10
+ \fBbundle list\fR [\-\-name\-only] [\-\-paths] [\-\-without\-group=GROUP[ GROUP\.\.\.]] [\-\-only\-group=GROUP[ GROUP\.\.\.]]
11
11
  .
12
12
  .SH "DESCRIPTION"
13
13
  Prints a list of all the gems in the bundle including their version\.
@@ -28,7 +28,7 @@ bundle list \-\-without\-group test
28
28
  bundle list \-\-only\-group dev
29
29
  .
30
30
  .P
31
- bundle list \-\-only\-group dev \-\-paths
31
+ bundle list \-\-only\-group dev test \-\-paths
32
32
  .
33
33
  .SH "OPTIONS"
34
34
  .
@@ -41,10 +41,10 @@ Print only the name of each gem\.
41
41
  Print the path to each gem in the bundle\.
42
42
  .
43
43
  .TP
44
- \fB\-\-without\-group\fR
45
- Print all gems expect from a group\.
44
+ \fB\-\-without\-group=<list>\fR
45
+ A space\-separated list of groups of gems to skip during printing\.
46
46
  .
47
47
  .TP
48
- \fB\-\-only\-group\fR
49
- Print gems from a particular group\.
48
+ \fB\-\-only\-group=<list>\fR
49
+ A space\-separated list of groups of gems to print\.
50
50
 
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-LOCK" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-LOCK" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-OPEN" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-OPEN" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-open\fR \- Opens the source directory for a gem in your bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-OUTDATED" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-OUTDATED" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-outdated\fR \- List installed gems with newer versions available
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-PLATFORM" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-PLATFORM" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-platform\fR \- Displays platform compatibility information
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-PRISTINE" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-PRISTINE" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-REMOVE" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-REMOVE" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-remove\fR \- Removes gems from the Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-SHOW" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-SHOW" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-UPDATE" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-UPDATE" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-update\fR \- Update your gems to the latest available versions
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-VIZ" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-VIZ" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile
data/bundler/man/bundle.1 CHANGED
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE" "1" "January 2020" "" ""
4
+ .TH "BUNDLE" "1" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\fR \- Ruby Dependency Management
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "GEMFILE" "5" "January 2020" "" ""
4
+ .TH "GEMFILE" "5" "November 2020" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
@@ -150,7 +150,7 @@ gem "RedCloth", ">= 4\.1\.0", "< 4\.2\.0"
150
150
  .IP "" 0
151
151
  .
152
152
  .SS "REQUIRE AS"
153
- Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring via \fBBundler\.require\fR\. You may pass an array with multiple files or \fBtrue\fR if file you want \fBrequired\fR has same name as \fIgem\fR or \fBfalse\fR to prevent any file from being autorequired\.
153
+ Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring via \fBBundler\.require\fR\. You may pass an array with multiple files or \fBtrue\fR if the file you want \fBrequired\fR has the same name as \fIgem\fR or \fBfalse\fR to prevent any file from being autorequired\.
154
154
  .
155
155
  .IP "" 4
156
156
  .
@@ -227,8 +227,8 @@ To specify multiple groups to ignore, specify a list of groups separated by spac
227
227
  .
228
228
  .nf
229
229
 
230
- bundle config set without test
231
- bundle config set without development test
230
+ bundle config set \-\-local without test
231
+ bundle config set \-\-local without development test
232
232
  .
233
233
  .fi
234
234
  .
data/lib/rubygems.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # -*- ruby -*-
3
2
  #--
4
3
  # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
5
4
  # All rights reserved.
@@ -9,7 +8,7 @@
9
8
  require 'rbconfig'
10
9
 
11
10
  module Gem
12
- VERSION = "3.1.6".freeze
11
+ VERSION = "3.2.0".freeze
13
12
  end
14
13
 
15
14
  # Must be first since it unloads the prelude from 1.9.2
@@ -43,10 +42,10 @@ require 'rubygems/errors'
43
42
  #
44
43
  # == RubyGems Plugins
45
44
  #
46
- # As of RubyGems 1.3.2, RubyGems will load plugins installed in gems or
45
+ # RubyGems will load plugins in the latest version of each installed gem or
47
46
  # $LOAD_PATH. Plugins must be named 'rubygems_plugin' (.rb, .so, etc) and
48
- # placed at the root of your gem's #require_path. Plugins are discovered via
49
- # Gem::find_files and then loaded.
47
+ # placed at the root of your gem's #require_path. Plugins are installed at a
48
+ # special location and loaded on boot.
50
49
  #
51
50
  # For an example plugin, see the {Graph gem}[https://github.com/seattlerb/graph]
52
51
  # which adds a `gem graph` command.
@@ -120,6 +119,10 @@ module Gem
120
119
  # to avoid deprecation warnings in Ruby 2.7.
121
120
  UNTAINT = RUBY_VERSION < '2.7' ? :untaint.to_sym : proc{}
122
121
 
122
+ # When https://bugs.ruby-lang.org/issues/17259 is available, there is no need to override Kernel#warn
123
+ KERNEL_WARN_IGNORES_INTERNAL_ENTRIES = RUBY_ENGINE == "truffleruby" ||
124
+ (RUBY_ENGINE == "ruby" && RUBY_VERSION >= '3.0')
125
+
123
126
  ##
124
127
  # An Array of Regexps that match windows Ruby platforms.
125
128
 
@@ -148,6 +151,7 @@ module Gem
148
151
  doc
149
152
  extensions
150
153
  gems
154
+ plugins
151
155
  specifications
152
156
  ].freeze
153
157
 
@@ -317,6 +321,13 @@ module Gem
317
321
  Gem.default_bindir
318
322
  end
319
323
 
324
+ ##
325
+ # The path were rubygems plugins are to be installed.
326
+
327
+ def self.plugindir(install_dir=Gem.dir)
328
+ File.join install_dir, 'plugins'
329
+ end
330
+
320
331
  ##
321
332
  # Reset the +dir+ and +path+ values. The next time +dir+ or +path+
322
333
  # is requested, the values will be calculated from scratch. This is
@@ -329,13 +340,6 @@ module Gem
329
340
  Gem::Security.reset if defined?(Gem::Security)
330
341
  end
331
342
 
332
- ##
333
- # The path to standard location of the user's .gemrc file.
334
-
335
- def self.config_file
336
- @config_file ||= File.join Gem.user_home, '.gemrc'
337
- end
338
-
339
343
  ##
340
344
  # The standard configuration object for gems.
341
345
 
@@ -393,11 +397,11 @@ module Gem
393
397
  target[k] = v
394
398
  when Array
395
399
  unless Gem::Deprecate.skip
396
- warn <<-eowarn
400
+ warn <<-EOWARN
397
401
  Array values in the parameter to `Gem.paths=` are deprecated.
398
402
  Please use a String or nil.
399
403
  An Array (#{env.inspect}) was passed in from #{caller[3]}
400
- eowarn
404
+ EOWARN
401
405
  end
402
406
  target[k] = v.join File::PATH_SEPARATOR
403
407
  end
@@ -411,8 +415,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
411
415
 
412
416
  ##
413
417
  # The path where gems are to be installed.
414
- #--
415
- # FIXME deprecate these once everything else has been done -ebh
416
418
 
417
419
  def self.dir
418
420
  paths.home
@@ -465,7 +467,10 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
465
467
  subdirs.each do |name|
466
468
  subdir = File.join dir, name
467
469
  next if File.exist? subdir
468
- FileUtils.mkdir_p subdir, **options rescue nil
470
+ begin
471
+ FileUtils.mkdir_p subdir, **options
472
+ rescue Errno::EACCES
473
+ end
469
474
  end
470
475
  ensure
471
476
  File.umask old_umask
@@ -502,7 +507,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
502
507
 
503
508
  gem_specifications = @gemdeps ? Gem.loaded_specs.values : Gem::Specification.stubs
504
509
 
505
- files.concat gem_specifications.map { |spec|
510
+ files.concat gem_specifications.map {|spec|
506
511
  spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
507
512
  }.flatten
508
513
 
@@ -517,7 +522,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
517
522
  glob_with_suffixes = "#{glob}#{Gem.suffix_pattern}"
518
523
  $LOAD_PATH.map do |load_path|
519
524
  Gem::Util.glob_files_in_dir(glob_with_suffixes, load_path)
520
- end.flatten.select { |file| File.file? file.tap(&Gem::UNTAINT) }
525
+ end.flatten.select {|file| File.file? file.tap(&Gem::UNTAINT) }
521
526
  end
522
527
 
523
528
  ##
@@ -537,7 +542,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
537
542
 
538
543
  files = find_files_from_load_path glob if check_load_path
539
544
 
540
- files.concat Gem::Specification.latest_specs(true).map { |spec|
545
+ files.concat Gem::Specification.latest_specs(true).map {|spec|
541
546
  spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
542
547
  }.flatten
543
548
 
@@ -548,83 +553,12 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
548
553
  return files
549
554
  end
550
555
 
551
- ##
552
- # Finds the user's home directory.
553
- #--
554
- # Some comments from the ruby-talk list regarding finding the home
555
- # directory:
556
- #
557
- # I have HOME, USERPROFILE and HOMEDRIVE + HOMEPATH. Ruby seems
558
- # to be depending on HOME in those code samples. I propose that
559
- # it should fallback to USERPROFILE and HOMEDRIVE + HOMEPATH (at
560
- # least on Win32).
561
- #++
562
- #--
563
- #
564
- #++
565
-
566
- def self.find_home
567
- Dir.home.dup
568
- rescue
569
- if Gem.win_platform?
570
- File.expand_path File.join(ENV['HOMEDRIVE'] || ENV['SystemDrive'], '/')
571
- else
572
- File.expand_path "/"
573
- end
574
- end
575
-
576
- private_class_method :find_home
577
-
578
- # TODO: remove in RubyGems 4.0
579
-
580
- ##
581
- # Zlib::GzipReader wrapper that unzips +data+.
582
-
583
- def self.gunzip(data)
584
- Gem::Util.gunzip data
585
- end
586
-
587
- class << self
588
-
589
- extend Gem::Deprecate
590
- deprecate :gunzip, "Gem::Util.gunzip", 2018, 12
591
-
592
- end
593
-
594
- ##
595
- # Zlib::GzipWriter wrapper that zips +data+.
596
-
597
- def self.gzip(data)
598
- Gem::Util.gzip data
599
- end
600
-
601
- class << self
602
-
603
- extend Gem::Deprecate
604
- deprecate :gzip, "Gem::Util.gzip", 2018, 12
605
-
606
- end
607
-
608
- ##
609
- # A Zlib::Inflate#inflate wrapper
610
-
611
- def self.inflate(data)
612
- Gem::Util.inflate data
613
- end
614
-
615
- class << self
616
-
617
- extend Gem::Deprecate
618
- deprecate :inflate, "Gem::Util.inflate", 2018, 12
619
-
620
- end
621
-
622
556
  ##
623
557
  # Top level install helper method. Allows you to install gems interactively:
624
558
  #
625
559
  # % irb
626
560
  # >> Gem.install "minitest"
627
- # Fetching: minitest-3.0.1.gem (100%)
561
+ # Fetching: minitest-5.14.0.gem (100%)
628
562
  # => [#<Gem::Specification:0x1013b4528 @name="minitest", ...>]
629
563
 
630
564
  def self.install(name, version = Gem::Requirement.default, *options)
@@ -687,14 +621,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
687
621
 
688
622
  def self.load_yaml
689
623
  return if @yaml_loaded
690
- return unless defined?(gem)
691
-
692
- begin
693
- gem 'psych', '>= 2.0.0'
694
- rescue Gem::LoadError
695
- # It's OK if the user does not have the psych gem installed. We will
696
- # attempt to require the stdlib version
697
- end
698
624
 
699
625
  begin
700
626
  # Try requiring the gem version *or* stdlib version of psych.
@@ -909,8 +835,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
909
835
 
910
836
  def self.ruby
911
837
  if @ruby.nil?
912
- @ruby = File.join(RbConfig::CONFIG['bindir'],
913
- "#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}")
838
+ @ruby = RbConfig.ruby
914
839
 
915
840
  @ruby = "\"#{@ruby}\"" if @ruby =~ /\s/
916
841
  end
@@ -1023,21 +948,38 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1023
948
  @suffix_pattern ||= "{#{suffixes.join(',')}}"
1024
949
  end
1025
950
 
951
+ ##
952
+ # Regexp for require-able path suffixes.
953
+
1026
954
  def self.suffix_regexp
1027
955
  @suffix_regexp ||= /#{Regexp.union(suffixes)}\z/
1028
956
  end
1029
957
 
958
+ ##
959
+ # Glob pattern for require-able plugin suffixes.
960
+
961
+ def self.plugin_suffix_pattern
962
+ @plugin_suffix_pattern ||= "_plugin#{suffix_pattern}"
963
+ end
964
+
965
+ ##
966
+ # Regexp for require-able plugin suffixes.
967
+
968
+ def self.plugin_suffix_regexp
969
+ @plugin_suffix_regexp ||= /_plugin#{suffix_regexp}\z/
970
+ end
971
+
1030
972
  ##
1031
973
  # Suffixes for require-able paths.
1032
974
 
1033
975
  def self.suffixes
1034
976
  @suffixes ||= ['',
1035
977
  '.rb',
1036
- *%w(DLEXT DLEXT2).map do |key|
978
+ *%w[DLEXT DLEXT2].map do |key|
1037
979
  val = RbConfig::CONFIG[key]
1038
980
  next unless val and not val.empty?
1039
981
  ".#{val}"
1040
- end
982
+ end,
1041
983
  ].compact.uniq
1042
984
  end
1043
985
 
@@ -1074,24 +1016,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1074
1016
  paths.flatten!
1075
1017
  paths.compact!
1076
1018
  hash = { "GEM_HOME" => home, "GEM_PATH" => paths.empty? ? home : paths.join(File::PATH_SEPARATOR) }
1077
- hash.delete_if { |_, v| v.nil? }
1019
+ hash.delete_if {|_, v| v.nil? }
1078
1020
  self.paths = hash
1079
1021
  end
1080
1022
 
1081
- ##
1082
- # The home directory for the user.
1083
-
1084
- def self.user_home
1085
- @user_home ||= find_home.tap(&Gem::UNTAINT)
1086
- end
1087
-
1088
1023
  ##
1089
1024
  # Is this a windows platform?
1090
1025
 
1091
1026
  def self.win_platform?
1092
1027
  if @@win_platform.nil?
1093
1028
  ruby_platform = RbConfig::CONFIG['host_os']
1094
- @@win_platform = !!WIN_PATTERNS.find { |r| ruby_platform =~ r }
1029
+ @@win_platform = !!WIN_PATTERNS.find {|r| ruby_platform =~ r }
1095
1030
  end
1096
1031
 
1097
1032
  @@win_platform
@@ -1125,35 +1060,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1125
1060
  end
1126
1061
 
1127
1062
  ##
1128
- # Find the 'rubygems_plugin' files in the latest installed gems and load
1129
- # them
1063
+ # Find rubygems plugin files in the standard location and load them
1130
1064
 
1131
1065
  def self.load_plugins
1132
- # Remove this env var by at least 3.0
1133
- if ENV['RUBYGEMS_LOAD_ALL_PLUGINS']
1134
- load_plugin_files find_files('rubygems_plugin', false)
1135
- else
1136
- load_plugin_files find_latest_files('rubygems_plugin', false)
1137
- end
1066
+ load_plugin_files Gem::Util.glob_files_in_dir("*#{Gem.plugin_suffix_pattern}", plugindir)
1138
1067
  end
1139
1068
 
1140
1069
  ##
1141
1070
  # Find all 'rubygems_plugin' files in $LOAD_PATH and load them
1142
1071
 
1143
1072
  def self.load_env_plugins
1144
- path = "rubygems_plugin"
1145
-
1146
- files = []
1147
- glob = "#{path}#{Gem.suffix_pattern}"
1148
- $LOAD_PATH.each do |load_path|
1149
- globbed = Gem::Util.glob_files_in_dir(glob, load_path)
1150
-
1151
- globbed.each do |load_path_file|
1152
- files << load_path_file if File.file?(load_path_file.tap(&Gem::UNTAINT))
1153
- end
1154
- end
1155
-
1156
- load_plugin_files files
1073
+ load_plugin_files find_files_from_load_path("rubygems_plugin")
1157
1074
  end
1158
1075
 
1159
1076
  ##
@@ -1186,7 +1103,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1186
1103
 
1187
1104
  if path == "-"
1188
1105
  Gem::Util.traverse_parents Dir.pwd do |directory|
1189
- dep_file = GEM_DEP_FILES.find { |f| File.file?(f) }
1106
+ dep_file = GEM_DEP_FILES.find {|f| File.file?(f) }
1190
1107
 
1191
1108
  next unless dep_file
1192
1109
 
@@ -1228,18 +1145,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1228
1145
  end
1229
1146
  end
1230
1147
 
1231
- class << self
1232
-
1233
- ##
1234
- # TODO remove with RubyGems 4.0
1235
-
1236
- alias detect_gemdeps use_gemdeps # :nodoc:
1237
-
1238
- extend Gem::Deprecate
1239
- deprecate :detect_gemdeps, "Gem.use_gemdeps", 2018, 12
1240
-
1241
- end
1242
-
1243
1148
  ##
1244
1149
  # If the SOURCE_DATE_EPOCH environment variable is set, returns it's value.
1245
1150
  # Otherwise, returns the time that `Gem.source_date_epoch_string` was
@@ -1284,6 +1189,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1284
1189
  # methods, and then we switch over to `class << self` here. Pick one or the
1285
1190
  # other.
1286
1191
  class << self
1192
+ ##
1193
+ # RubyGems distributors (like operating system package managers) can
1194
+ # disable RubyGems update by setting this to error message printed to
1195
+ # end-users on gem update --system instead of actual update.
1196
+ attr_accessor :disable_system_update_message
1287
1197
 
1288
1198
  ##
1289
1199
  # Hash of loaded Gem::Specification keyed by name
@@ -1309,7 +1219,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1309
1219
  #
1310
1220
 
1311
1221
  def register_default_spec(spec)
1312
- extended_require_paths = spec.require_paths.map {|f| f + "/"}
1222
+ extended_require_paths = spec.require_paths.map {|f| f + "/" }
1313
1223
  new_format = extended_require_paths.any? {|path| spec.files.any? {|f| f.start_with? path } }
1314
1224
 
1315
1225
  if new_format
@@ -1323,6 +1233,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1323
1233
  next unless $~
1324
1234
  end
1325
1235
 
1236
+ spec.activate if already_loaded?(file)
1237
+
1326
1238
  @path_to_default_spec_map[file] = spec
1327
1239
  @path_to_default_spec_map[file.sub(suffix_regexp, "")] = spec
1328
1240
  end
@@ -1388,6 +1300,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1388
1300
 
1389
1301
  attr_reader :pre_uninstall_hooks
1390
1302
 
1303
+ private
1304
+
1305
+ def already_loaded?(file)
1306
+ $LOADED_FEATURES.any? do |feature_path|
1307
+ feature_path.end_with?(file) && default_gem_load_paths.any? {|load_path_entry| feature_path == "#{load_path_entry}/#{file}" }
1308
+ end
1309
+ end
1310
+
1311
+ def default_gem_load_paths
1312
+ @default_gem_load_paths ||= $LOAD_PATH[load_path_insert_index..-1]
1313
+ end
1391
1314
  end
1392
1315
 
1393
1316
  ##
@@ -1413,8 +1336,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1413
1336
  autoload :Specification, File.expand_path('rubygems/specification', __dir__)
1414
1337
  autoload :Util, File.expand_path('rubygems/util', __dir__)
1415
1338
  autoload :Version, File.expand_path('rubygems/version', __dir__)
1416
-
1417
- require "rubygems/specification"
1418
1339
  end
1419
1340
 
1420
1341
  require 'rubygems/exceptions'