rubygems-update 3.1.4 → 3.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (557) 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 +401 -232
  5. data/Manifest.txt +43 -77
  6. data/POLICIES.md +6 -12
  7. data/README.md +1 -1
  8. data/Rakefile +57 -81
  9. data/bin/update_rubygems +1 -1
  10. data/bundler/CHANGELOG.md +1570 -1425
  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 +35 -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 +87 -66
  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 +49 -72
  43. data/bundler/lib/bundler/dep_proxy.rb +1 -1
  44. data/bundler/lib/bundler/dependency.rb +3 -10
  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 +34 -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 +35 -18
  108. data/bundler/lib/bundler/resolver/spec_group.rb +28 -11
  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 -55
  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 -7
  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 +82 -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 +83 -159
  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 +29 -36
  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 +4 -6
  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 +15 -12
  341. data/lib/rubygems/source.rb +14 -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/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
  353. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  354. data/lib/rubygems/stub_specification.rb +1 -5
  355. data/lib/rubygems/syck_hack.rb +0 -2
  356. data/lib/rubygems/test_case.rb +79 -122
  357. data/lib/rubygems/test_utilities.rb +6 -14
  358. data/lib/rubygems/uninstaller.rb +35 -16
  359. data/lib/rubygems/uri_formatter.rb +2 -3
  360. data/lib/rubygems/uri_parser.rb +0 -2
  361. data/lib/rubygems/user_interaction.rb +1 -26
  362. data/lib/rubygems/util.rb +8 -2
  363. data/lib/rubygems/util/licenses.rb +4 -6
  364. data/lib/rubygems/util/list.rb +0 -2
  365. data/lib/rubygems/validator.rb +1 -3
  366. data/lib/rubygems/version.rb +4 -6
  367. data/lib/rubygems/version_option.rb +6 -0
  368. data/rubygems-update.gemspec +2 -2
  369. data/setup.rb +2 -7
  370. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
  371. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  372. data/test/rubygems/rubygems_plugin.rb +0 -2
  373. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  374. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -2
  375. data/test/rubygems/test_bundled_ca.rb +42 -45
  376. data/test/rubygems/test_config.rb +0 -2
  377. data/test/rubygems/test_deprecate.rb +40 -7
  378. data/test/rubygems/test_gem.rb +82 -79
  379. data/test/rubygems/test_gem_available_set.rb +3 -5
  380. data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
  381. data/test/rubygems/test_gem_command.rb +24 -7
  382. data/test/rubygems/test_gem_command_manager.rb +36 -5
  383. data/test/rubygems/test_gem_commands_build_command.rb +233 -15
  384. data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
  385. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  386. data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
  387. data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
  388. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
  389. data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
  390. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  391. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
  392. data/test/rubygems/test_gem_commands_help_command.rb +15 -4
  393. data/test/rubygems/test_gem_commands_info_command.rb +6 -8
  394. data/test/rubygems/test_gem_commands_install_command.rb +32 -34
  395. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  396. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  397. data/test/rubygems/test_gem_commands_mirror.rb +1 -3
  398. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  399. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
  400. data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
  401. data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
  402. data/test/rubygems/test_gem_commands_push_command.rb +38 -9
  403. data/test/rubygems/test_gem_commands_query_command.rb +12 -12
  404. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  405. data/test/rubygems/test_gem_commands_server_command.rb +0 -2
  406. data/test/rubygems/test_gem_commands_setup_command.rb +165 -124
  407. data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
  408. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  409. data/test/rubygems/test_gem_commands_sources_command.rb +60 -2
  410. data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
  411. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  412. data/test/rubygems/test_gem_commands_uninstall_command.rb +1 -3
  413. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  414. data/test/rubygems/test_gem_commands_update_command.rb +116 -7
  415. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  416. data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
  417. data/test/rubygems/test_gem_config_file.rb +7 -12
  418. data/test/rubygems/test_gem_dependency.rb +0 -2
  419. data/test/rubygems/test_gem_dependency_installer.rb +90 -193
  420. data/test/rubygems/test_gem_dependency_list.rb +10 -12
  421. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  422. data/test/rubygems/test_gem_doctor.rb +28 -2
  423. data/test/rubygems/test_gem_ext_builder.rb +26 -47
  424. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
  425. data/test/rubygems/test_gem_ext_configure_builder.rb +4 -20
  426. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
  427. data/test/rubygems/test_gem_ext_rake_builder.rb +14 -24
  428. data/test/rubygems/test_gem_gem_runner.rb +44 -1
  429. data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
  430. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  431. data/test/rubygems/test_gem_indexer.rb +9 -15
  432. data/test/rubygems/test_gem_install_update_options.rb +14 -4
  433. data/test/rubygems/test_gem_installer.rb +256 -59
  434. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  435. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  436. data/test/rubygems/test_gem_package.rb +38 -31
  437. data/test/rubygems/test_gem_package_old.rb +4 -6
  438. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  439. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  440. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
  441. data/test/rubygems/test_gem_package_tar_writer.rb +4 -6
  442. data/test/rubygems/test_gem_package_task.rb +46 -13
  443. data/test/rubygems/test_gem_path_support.rb +0 -2
  444. data/test/rubygems/test_gem_platform.rb +63 -6
  445. data/test/rubygems/test_gem_rdoc.rb +0 -2
  446. data/test/rubygems/test_gem_remote_fetcher.rb +168 -211
  447. data/test/rubygems/test_gem_request.rb +13 -17
  448. data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
  449. data/test/rubygems/test_gem_request_set.rb +20 -22
  450. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
  451. data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
  452. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
  453. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
  454. data/test/rubygems/test_gem_requirement.rb +10 -4
  455. data/test/rubygems/test_gem_resolver.rb +6 -8
  456. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
  457. data/test/rubygems/test_gem_resolver_api_set.rb +40 -13
  458. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
  459. data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
  460. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  461. data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
  462. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  463. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  464. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
  465. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  466. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
  467. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
  468. data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
  469. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  470. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  471. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  472. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  473. data/test/rubygems/test_gem_resolver_specification.rb +0 -4
  474. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
  475. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  476. data/test/rubygems/test_gem_security.rb +22 -24
  477. data/test/rubygems/test_gem_security_policy.rb +7 -12
  478. data/test/rubygems/test_gem_security_signer.rb +10 -12
  479. data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
  480. data/test/rubygems/test_gem_server.rb +10 -14
  481. data/test/rubygems/test_gem_silent_ui.rb +0 -2
  482. data/test/rubygems/test_gem_source.rb +17 -16
  483. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
  484. data/test/rubygems/test_gem_source_git.rb +12 -13
  485. data/test/rubygems/test_gem_source_installed.rb +7 -9
  486. data/test/rubygems/test_gem_source_list.rb +1 -2
  487. data/test/rubygems/test_gem_source_local.rb +8 -10
  488. data/test/rubygems/test_gem_source_lock.rb +10 -12
  489. data/test/rubygems/test_gem_source_specific_file.rb +7 -9
  490. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  491. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  492. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  493. data/test/rubygems/test_gem_specification.rb +156 -125
  494. data/test/rubygems/test_gem_stream_ui.rb +3 -3
  495. data/test/rubygems/test_gem_stub_specification.rb +4 -6
  496. data/test/rubygems/test_gem_text.rb +1 -3
  497. data/test/rubygems/test_gem_uninstaller.rb +134 -12
  498. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  499. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  500. data/test/rubygems/test_gem_util.rb +7 -7
  501. data/test/rubygems/test_gem_validator.rb +1 -3
  502. data/test/rubygems/test_gem_version.rb +1 -3
  503. data/test/rubygems/test_gem_version_option.rb +1 -3
  504. data/test/rubygems/test_kernel.rb +25 -10
  505. data/test/rubygems/test_project_sanity.rb +7 -2
  506. data/test/rubygems/test_remote_fetch_error.rb +0 -2
  507. data/test/rubygems/test_require.rb +291 -56
  508. metadata +64 -99
  509. data/.bundle/config +0 -2
  510. data/.rubocop.yml +0 -91
  511. data/Gemfile +0 -8
  512. data/Gemfile.lock +0 -43
  513. data/bundler/CODE_OF_CONDUCT.md +0 -136
  514. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  515. data/bundler/man/bundle-add.1.txt +0 -58
  516. data/bundler/man/bundle-binstubs.1.txt +0 -48
  517. data/bundler/man/bundle-cache.1.txt +0 -78
  518. data/bundler/man/bundle-check.1.txt +0 -33
  519. data/bundler/man/bundle-clean.1.txt +0 -26
  520. data/bundler/man/bundle-config.1.txt +0 -528
  521. data/bundler/man/bundle-doctor.1.txt +0 -44
  522. data/bundler/man/bundle-exec.1.txt +0 -178
  523. data/bundler/man/bundle-gem.1.txt +0 -91
  524. data/bundler/man/bundle-info.1.txt +0 -21
  525. data/bundler/man/bundle-init.1.txt +0 -34
  526. data/bundler/man/bundle-inject.1.txt +0 -32
  527. data/bundler/man/bundle-install.1.txt +0 -401
  528. data/bundler/man/bundle-list.1.txt +0 -43
  529. data/bundler/man/bundle-lock.1.txt +0 -93
  530. data/bundler/man/bundle-open.1.txt +0 -29
  531. data/bundler/man/bundle-outdated.1.txt +0 -131
  532. data/bundler/man/bundle-platform.1.txt +0 -57
  533. data/bundler/man/bundle-pristine.1.txt +0 -44
  534. data/bundler/man/bundle-remove.1.txt +0 -34
  535. data/bundler/man/bundle-show.1.txt +0 -27
  536. data/bundler/man/bundle-update.1.txt +0 -390
  537. data/bundler/man/bundle-viz.1.txt +0 -39
  538. data/bundler/man/bundle.1.txt +0 -116
  539. data/bundler/man/gemfile.5.txt +0 -649
  540. data/lib/rubygems/source_local.rb +0 -7
  541. data/lib/rubygems/source_specific_file.rb +0 -6
  542. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  543. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  544. data/lib/ubygems.rb +0 -14
  545. data/tmp/.keep +0 -0
  546. data/util/CL2notes +0 -55
  547. data/util/bisect +0 -10
  548. data/util/ci.sh +0 -62
  549. data/util/cops/deprecations.rb +0 -52
  550. data/util/create_certs.rb +0 -171
  551. data/util/create_certs.sh +0 -27
  552. data/util/create_encrypted_key.rb +0 -16
  553. data/util/generate_spdx_license_list.rb +0 -63
  554. data/util/patch_with_prs.rb +0 -77
  555. data/util/rubocop +0 -8
  556. data/util/update_bundled_ca_certificates.rb +0 -139
  557. 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
@@ -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
  .
@@ -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.4".freeze
11
+ VERSION = "3.2.1".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)
@@ -659,22 +593,25 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
659
593
 
660
594
  index = $LOAD_PATH.index RbConfig::CONFIG['sitelibdir']
661
595
 
662
- index
596
+ index || 0
597
+ end
598
+
599
+ ##
600
+ # The number of paths in the `$LOAD_PATH` from activated gems. Used to
601
+ # prioritize `-I` and `ENV['RUBYLIB`]` entries during `require`.
602
+
603
+ def self.activated_gem_paths
604
+ @activated_gem_paths ||= 0
663
605
  end
664
606
 
665
607
  ##
666
608
  # Add a list of paths to the $LOAD_PATH at the proper place.
667
609
 
668
610
  def self.add_to_load_path(*paths)
669
- insert_index = load_path_insert_index
611
+ @activated_gem_paths = activated_gem_paths + paths.size
670
612
 
671
- if insert_index
672
- # gem directories must come after -I and ENV['RUBYLIB']
673
- $LOAD_PATH.insert(insert_index, *paths)
674
- else
675
- # we are probably testing in core, -I and RUBYLIB don't apply
676
- $LOAD_PATH.unshift(*paths)
677
- end
613
+ # gem directories must come after -I and ENV['RUBYLIB']
614
+ $LOAD_PATH.insert(Gem.load_path_insert_index, *paths)
678
615
  end
679
616
 
680
617
  @yaml_loaded = false
@@ -684,14 +621,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
684
621
 
685
622
  def self.load_yaml
686
623
  return if @yaml_loaded
687
- return unless defined?(gem)
688
-
689
- begin
690
- gem 'psych', '>= 2.0.0'
691
- rescue Gem::LoadError
692
- # It's OK if the user does not have the psych gem installed. We will
693
- # attempt to require the stdlib version
694
- end
695
624
 
696
625
  begin
697
626
  # Try requiring the gem version *or* stdlib version of psych.
@@ -906,8 +835,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
906
835
 
907
836
  def self.ruby
908
837
  if @ruby.nil?
909
- @ruby = File.join(RbConfig::CONFIG['bindir'],
910
- "#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}")
838
+ @ruby = RbConfig.ruby
911
839
 
912
840
  @ruby = "\"#{@ruby}\"" if @ruby =~ /\s/
913
841
  end
@@ -1020,21 +948,38 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1020
948
  @suffix_pattern ||= "{#{suffixes.join(',')}}"
1021
949
  end
1022
950
 
951
+ ##
952
+ # Regexp for require-able path suffixes.
953
+
1023
954
  def self.suffix_regexp
1024
955
  @suffix_regexp ||= /#{Regexp.union(suffixes)}\z/
1025
956
  end
1026
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
+
1027
972
  ##
1028
973
  # Suffixes for require-able paths.
1029
974
 
1030
975
  def self.suffixes
1031
976
  @suffixes ||= ['',
1032
977
  '.rb',
1033
- *%w(DLEXT DLEXT2).map do |key|
978
+ *%w[DLEXT DLEXT2].map do |key|
1034
979
  val = RbConfig::CONFIG[key]
1035
980
  next unless val and not val.empty?
1036
981
  ".#{val}"
1037
- end
982
+ end,
1038
983
  ].compact.uniq
1039
984
  end
1040
985
 
@@ -1071,24 +1016,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1071
1016
  paths.flatten!
1072
1017
  paths.compact!
1073
1018
  hash = { "GEM_HOME" => home, "GEM_PATH" => paths.empty? ? home : paths.join(File::PATH_SEPARATOR) }
1074
- hash.delete_if { |_, v| v.nil? }
1019
+ hash.delete_if {|_, v| v.nil? }
1075
1020
  self.paths = hash
1076
1021
  end
1077
1022
 
1078
- ##
1079
- # The home directory for the user.
1080
-
1081
- def self.user_home
1082
- @user_home ||= find_home.tap(&Gem::UNTAINT)
1083
- end
1084
-
1085
1023
  ##
1086
1024
  # Is this a windows platform?
1087
1025
 
1088
1026
  def self.win_platform?
1089
1027
  if @@win_platform.nil?
1090
1028
  ruby_platform = RbConfig::CONFIG['host_os']
1091
- @@win_platform = !!WIN_PATTERNS.find { |r| ruby_platform =~ r }
1029
+ @@win_platform = !!WIN_PATTERNS.find {|r| ruby_platform =~ r }
1092
1030
  end
1093
1031
 
1094
1032
  @@win_platform
@@ -1122,35 +1060,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1122
1060
  end
1123
1061
 
1124
1062
  ##
1125
- # Find the 'rubygems_plugin' files in the latest installed gems and load
1126
- # them
1063
+ # Find rubygems plugin files in the standard location and load them
1127
1064
 
1128
1065
  def self.load_plugins
1129
- # Remove this env var by at least 3.0
1130
- if ENV['RUBYGEMS_LOAD_ALL_PLUGINS']
1131
- load_plugin_files find_files('rubygems_plugin', false)
1132
- else
1133
- load_plugin_files find_latest_files('rubygems_plugin', false)
1134
- end
1066
+ load_plugin_files Gem::Util.glob_files_in_dir("*#{Gem.plugin_suffix_pattern}", plugindir)
1135
1067
  end
1136
1068
 
1137
1069
  ##
1138
1070
  # Find all 'rubygems_plugin' files in $LOAD_PATH and load them
1139
1071
 
1140
1072
  def self.load_env_plugins
1141
- path = "rubygems_plugin"
1142
-
1143
- files = []
1144
- glob = "#{path}#{Gem.suffix_pattern}"
1145
- $LOAD_PATH.each do |load_path|
1146
- globbed = Gem::Util.glob_files_in_dir(glob, load_path)
1147
-
1148
- globbed.each do |load_path_file|
1149
- files << load_path_file if File.file?(load_path_file.tap(&Gem::UNTAINT))
1150
- end
1151
- end
1152
-
1153
- load_plugin_files files
1073
+ load_plugin_files find_files_from_load_path("rubygems_plugin")
1154
1074
  end
1155
1075
 
1156
1076
  ##
@@ -1183,7 +1103,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1183
1103
 
1184
1104
  if path == "-"
1185
1105
  Gem::Util.traverse_parents Dir.pwd do |directory|
1186
- dep_file = GEM_DEP_FILES.find { |f| File.file?(f) }
1106
+ dep_file = GEM_DEP_FILES.find {|f| File.file?(f) }
1187
1107
 
1188
1108
  next unless dep_file
1189
1109
 
@@ -1225,18 +1145,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1225
1145
  end
1226
1146
  end
1227
1147
 
1228
- class << self
1229
-
1230
- ##
1231
- # TODO remove with RubyGems 4.0
1232
-
1233
- alias detect_gemdeps use_gemdeps # :nodoc:
1234
-
1235
- extend Gem::Deprecate
1236
- deprecate :detect_gemdeps, "Gem.use_gemdeps", 2018, 12
1237
-
1238
- end
1239
-
1240
1148
  ##
1241
1149
  # If the SOURCE_DATE_EPOCH environment variable is set, returns it's value.
1242
1150
  # Otherwise, returns the time that `Gem.source_date_epoch_string` was
@@ -1281,6 +1189,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1281
1189
  # methods, and then we switch over to `class << self` here. Pick one or the
1282
1190
  # other.
1283
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
1284
1197
 
1285
1198
  ##
1286
1199
  # Hash of loaded Gem::Specification keyed by name
@@ -1306,7 +1219,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1306
1219
  #
1307
1220
 
1308
1221
  def register_default_spec(spec)
1309
- extended_require_paths = spec.require_paths.map {|f| f + "/"}
1222
+ extended_require_paths = spec.require_paths.map {|f| f + "/" }
1310
1223
  new_format = extended_require_paths.any? {|path| spec.files.any? {|f| f.start_with? path } }
1311
1224
 
1312
1225
  if new_format
@@ -1320,6 +1233,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1320
1233
  next unless $~
1321
1234
  end
1322
1235
 
1236
+ spec.activate if already_loaded?(file)
1237
+
1323
1238
  @path_to_default_spec_map[file] = spec
1324
1239
  @path_to_default_spec_map[file.sub(suffix_regexp, "")] = spec
1325
1240
  end
@@ -1385,6 +1300,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1385
1300
 
1386
1301
  attr_reader :pre_uninstall_hooks
1387
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
1388
1314
  end
1389
1315
 
1390
1316
  ##
@@ -1410,8 +1336,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1410
1336
  autoload :Specification, File.expand_path('rubygems/specification', __dir__)
1411
1337
  autoload :Util, File.expand_path('rubygems/util', __dir__)
1412
1338
  autoload :Version, File.expand_path('rubygems/version', __dir__)
1413
-
1414
- require "rubygems/specification"
1415
1339
  end
1416
1340
 
1417
1341
  require 'rubygems/exceptions'