rubygems-update 3.1.1 → 3.2.0.rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +55 -19
  3. data/CONTRIBUTING.md +25 -11
  4. data/History.txt +389 -144
  5. data/Manifest.txt +37 -73
  6. data/POLICIES.md +2 -9
  7. data/README.md +5 -5
  8. data/Rakefile +47 -82
  9. data/bin/update_rubygems +2 -2
  10. data/bundler/CHANGELOG.md +1546 -1414
  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 +21 -7
  16. data/bundler/lib/bundler/build_metadata.rb +4 -12
  17. data/bundler/lib/bundler/cli.rb +54 -20
  18. data/bundler/lib/bundler/cli/add.rb +1 -1
  19. data/bundler/lib/bundler/cli/cache.rb +1 -7
  20. data/bundler/lib/bundler/cli/clean.rb +1 -1
  21. data/bundler/lib/bundler/cli/common.rb +14 -0
  22. data/bundler/lib/bundler/cli/console.rb +1 -1
  23. data/bundler/lib/bundler/cli/doctor.rb +1 -1
  24. data/bundler/lib/bundler/cli/exec.rb +4 -13
  25. data/bundler/lib/bundler/cli/fund.rb +36 -0
  26. data/bundler/lib/bundler/cli/gem.rb +84 -11
  27. data/bundler/lib/bundler/cli/info.rb +15 -4
  28. data/bundler/lib/bundler/cli/init.rb +2 -2
  29. data/bundler/lib/bundler/cli/inject.rb +1 -1
  30. data/bundler/lib/bundler/cli/install.rb +12 -18
  31. data/bundler/lib/bundler/cli/issue.rb +2 -2
  32. data/bundler/lib/bundler/cli/list.rb +12 -10
  33. data/bundler/lib/bundler/cli/outdated.rb +89 -66
  34. data/bundler/lib/bundler/cli/plugin.rb +10 -0
  35. data/bundler/lib/bundler/cli/pristine.rb +5 -0
  36. data/bundler/lib/bundler/cli/show.rb +1 -1
  37. data/bundler/lib/bundler/cli/update.rb +2 -0
  38. data/bundler/lib/bundler/compact_index_client.rb +1 -1
  39. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  40. data/bundler/lib/bundler/definition.rb +51 -60
  41. data/bundler/lib/bundler/dep_proxy.rb +1 -1
  42. data/bundler/lib/bundler/dependency.rb +0 -9
  43. data/bundler/lib/bundler/dsl.rb +5 -9
  44. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  45. data/bundler/lib/bundler/environment_preserver.rb +26 -2
  46. data/bundler/lib/bundler/errors.rb +1 -0
  47. data/bundler/lib/bundler/feature_flag.rb +0 -2
  48. data/bundler/lib/bundler/fetcher.rb +4 -3
  49. data/bundler/lib/bundler/fetcher/base.rb +1 -1
  50. data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
  51. data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
  52. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  53. data/bundler/lib/bundler/friendly_errors.rb +7 -13
  54. data/bundler/lib/bundler/gem_helper.rb +33 -19
  55. data/bundler/lib/bundler/gem_helpers.rb +6 -1
  56. data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
  57. data/bundler/lib/bundler/graph.rb +1 -1
  58. data/bundler/lib/bundler/index.rb +1 -1
  59. data/bundler/lib/bundler/injector.rb +15 -4
  60. data/bundler/lib/bundler/inline.rb +2 -2
  61. data/bundler/lib/bundler/installer.rb +30 -29
  62. data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
  63. data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
  64. data/bundler/lib/bundler/installer/standalone.rb +2 -2
  65. data/bundler/lib/bundler/lazy_specification.rb +19 -6
  66. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  67. data/bundler/lib/bundler/lockfile_parser.rb +1 -1
  68. data/bundler/lib/bundler/mirror.rb +2 -2
  69. data/bundler/lib/bundler/plugin.rb +30 -5
  70. data/bundler/lib/bundler/plugin/index.rb +10 -1
  71. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  72. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
  73. data/bundler/lib/bundler/plugin/source_list.rb +1 -1
  74. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  75. data/bundler/lib/bundler/remote_specification.rb +5 -2
  76. data/bundler/lib/bundler/resolver.rb +32 -9
  77. data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
  78. data/bundler/lib/bundler/retry.rb +1 -1
  79. data/bundler/lib/bundler/ruby_version.rb +1 -1
  80. data/bundler/lib/bundler/rubygems_ext.rb +53 -9
  81. data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
  82. data/bundler/lib/bundler/rubygems_integration.rb +31 -54
  83. data/bundler/lib/bundler/runtime.rb +4 -14
  84. data/bundler/lib/bundler/settings.rb +49 -45
  85. data/bundler/lib/bundler/setup.rb +5 -0
  86. data/bundler/lib/bundler/shared_helpers.rb +2 -2
  87. data/bundler/lib/bundler/similarity_detector.rb +1 -1
  88. data/bundler/lib/bundler/source.rb +1 -1
  89. data/bundler/lib/bundler/source/git.rb +5 -5
  90. data/bundler/lib/bundler/source/git/git_proxy.rb +56 -59
  91. data/bundler/lib/bundler/source/path.rb +7 -3
  92. data/bundler/lib/bundler/source/path/installer.rb +8 -10
  93. data/bundler/lib/bundler/source/rubygems.rb +13 -16
  94. data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
  95. data/bundler/lib/bundler/source_list.rb +2 -2
  96. data/bundler/lib/bundler/spec_set.rb +1 -1
  97. data/bundler/lib/bundler/stub_specification.rb +17 -5
  98. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  99. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
  100. data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -1
  101. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
  102. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  103. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  104. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  105. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
  106. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  107. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +2 -0
  108. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  109. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -6
  110. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
  111. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  112. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  113. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  114. data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  115. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  116. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  117. data/bundler/lib/bundler/ui/shell.rb +5 -5
  118. data/bundler/lib/bundler/uri_credentials_filter.rb +1 -1
  119. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -212
  120. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
  121. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  122. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  123. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  124. data/bundler/lib/bundler/vendored_persistent.rb +0 -7
  125. data/bundler/lib/bundler/version.rb +1 -1
  126. data/bundler/lib/bundler/worker.rb +1 -1
  127. data/bundler/lib/bundler/yaml_serializer.rb +1 -1
  128. data/bundler/man/bundle-add.1 +1 -1
  129. data/bundler/man/{bundle-add.ronn → bundle-add.1.ronn} +0 -0
  130. data/bundler/man/bundle-binstubs.1 +5 -3
  131. data/bundler/man/{bundle-binstubs.ronn → bundle-binstubs.1.ronn} +2 -4
  132. data/bundler/man/bundle-cache.1 +1 -1
  133. data/bundler/man/{bundle-cache.ronn → bundle-cache.1.ronn} +0 -0
  134. data/bundler/man/bundle-check.1 +1 -1
  135. data/bundler/man/{bundle-check.ronn → bundle-check.1.ronn} +0 -0
  136. data/bundler/man/bundle-clean.1 +1 -1
  137. data/bundler/man/{bundle-clean.ronn → bundle-clean.1.ronn} +0 -0
  138. data/bundler/man/bundle-config.1 +16 -22
  139. data/bundler/man/{bundle-config.ronn → bundle-config.1.ronn} +19 -22
  140. data/bundler/man/bundle-doctor.1 +1 -1
  141. data/bundler/man/{bundle-doctor.ronn → bundle-doctor.1.ronn} +0 -0
  142. data/bundler/man/bundle-exec.1 +1 -1
  143. data/bundler/man/{bundle-exec.ronn → bundle-exec.1.ronn} +0 -0
  144. data/bundler/man/bundle-gem.1 +25 -3
  145. data/bundler/man/{bundle-gem.ronn → bundle-gem.1.ronn} +30 -7
  146. data/bundler/man/bundle-info.1 +1 -1
  147. data/bundler/man/{bundle-info.ronn → bundle-info.1.ronn} +0 -0
  148. data/bundler/man/bundle-init.1 +1 -1
  149. data/bundler/man/{bundle-init.ronn → bundle-init.1.ronn} +0 -0
  150. data/bundler/man/bundle-inject.1 +1 -1
  151. data/bundler/man/{bundle-inject.ronn → bundle-inject.1.ronn} +0 -0
  152. data/bundler/man/bundle-install.1 +29 -2
  153. data/bundler/man/{bundle-install.ronn → bundle-install.1.ronn} +24 -2
  154. data/bundler/man/bundle-list.1 +7 -7
  155. data/bundler/man/{bundle-list.ronn → bundle-list.1.ronn} +6 -6
  156. data/bundler/man/bundle-lock.1 +1 -1
  157. data/bundler/man/{bundle-lock.ronn → bundle-lock.1.ronn} +0 -0
  158. data/bundler/man/bundle-open.1 +1 -1
  159. data/bundler/man/{bundle-open.ronn → bundle-open.1.ronn} +0 -0
  160. data/bundler/man/bundle-outdated.1 +1 -1
  161. data/bundler/man/{bundle-outdated.ronn → bundle-outdated.1.ronn} +0 -0
  162. data/bundler/man/bundle-platform.1 +1 -1
  163. data/bundler/man/{bundle-platform.ronn → bundle-platform.1.ronn} +0 -0
  164. data/bundler/man/bundle-pristine.1 +1 -1
  165. data/bundler/man/{bundle-pristine.ronn → bundle-pristine.1.ronn} +0 -0
  166. data/bundler/man/bundle-remove.1 +1 -1
  167. data/bundler/man/{bundle-remove.ronn → bundle-remove.1.ronn} +0 -0
  168. data/bundler/man/bundle-show.1 +1 -1
  169. data/bundler/man/{bundle-show.ronn → bundle-show.1.ronn} +0 -0
  170. data/bundler/man/bundle-update.1 +1 -1
  171. data/bundler/man/{bundle-update.ronn → bundle-update.1.ronn} +0 -0
  172. data/bundler/man/bundle-viz.1 +1 -1
  173. data/bundler/man/{bundle-viz.ronn → bundle-viz.1.ronn} +0 -0
  174. data/bundler/man/bundle.1 +1 -1
  175. data/bundler/man/{bundle.ronn → bundle.1.ronn} +0 -0
  176. data/bundler/man/gemfile.5 +4 -4
  177. data/bundler/man/gemfile.5.ronn +4 -4
  178. data/lib/rubygems.rb +133 -186
  179. data/lib/rubygems/available_set.rb +4 -6
  180. data/lib/rubygems/basic_specification.rb +12 -10
  181. data/lib/rubygems/bundler_version_finder.rb +14 -9
  182. data/lib/rubygems/command.rb +17 -17
  183. data/lib/rubygems/command_manager.rb +4 -5
  184. data/lib/rubygems/commands/build_command.rb +4 -1
  185. data/lib/rubygems/commands/cert_command.rb +1 -9
  186. data/lib/rubygems/commands/check_command.rb +0 -2
  187. data/lib/rubygems/commands/cleanup_command.rb +11 -7
  188. data/lib/rubygems/commands/contents_command.rb +4 -6
  189. data/lib/rubygems/commands/dependency_command.rb +6 -8
  190. data/lib/rubygems/commands/environment_command.rb +1 -3
  191. data/lib/rubygems/commands/fetch_command.rb +2 -4
  192. data/lib/rubygems/commands/generate_index_command.rb +0 -2
  193. data/lib/rubygems/commands/help_command.rb +2 -4
  194. data/lib/rubygems/commands/info_command.rb +8 -5
  195. data/lib/rubygems/commands/install_command.rb +3 -5
  196. data/lib/rubygems/commands/list_command.rb +8 -7
  197. data/lib/rubygems/commands/lock_command.rb +1 -3
  198. data/lib/rubygems/commands/mirror_command.rb +0 -2
  199. data/lib/rubygems/commands/open_command.rb +0 -4
  200. data/lib/rubygems/commands/outdated_command.rb +0 -2
  201. data/lib/rubygems/commands/owner_command.rb +0 -2
  202. data/lib/rubygems/commands/pristine_command.rb +10 -4
  203. data/lib/rubygems/commands/push_command.rb +4 -44
  204. data/lib/rubygems/commands/query_command.rb +6 -353
  205. data/lib/rubygems/commands/rdoc_command.rb +0 -2
  206. data/lib/rubygems/commands/search_command.rb +7 -7
  207. data/lib/rubygems/commands/server_command.rb +0 -2
  208. data/lib/rubygems/commands/setup_command.rb +156 -48
  209. data/lib/rubygems/commands/signin_command.rb +0 -2
  210. data/lib/rubygems/commands/signout_command.rb +0 -2
  211. data/lib/rubygems/commands/sources_command.rb +3 -5
  212. data/lib/rubygems/commands/specification_command.rb +2 -4
  213. data/lib/rubygems/commands/stale_command.rb +1 -3
  214. data/lib/rubygems/commands/uninstall_command.rb +2 -4
  215. data/lib/rubygems/commands/unpack_command.rb +1 -3
  216. data/lib/rubygems/commands/update_command.rb +59 -14
  217. data/lib/rubygems/commands/which_command.rb +0 -2
  218. data/lib/rubygems/commands/yank_command.rb +0 -2
  219. data/lib/rubygems/config_file.rb +11 -4
  220. data/lib/rubygems/core_ext/kernel_require.rb +26 -36
  221. data/lib/rubygems/core_ext/kernel_warn.rb +6 -6
  222. data/lib/rubygems/defaults.rb +99 -5
  223. data/lib/rubygems/dependency.rb +2 -7
  224. data/lib/rubygems/dependency_installer.rb +1 -75
  225. data/lib/rubygems/dependency_list.rb +7 -9
  226. data/lib/rubygems/deprecate.rb +46 -1
  227. data/lib/rubygems/doctor.rb +4 -4
  228. data/lib/rubygems/errors.rb +3 -14
  229. data/lib/rubygems/exceptions.rb +2 -33
  230. data/lib/rubygems/ext.rb +6 -6
  231. data/lib/rubygems/ext/build_error.rb +2 -0
  232. data/lib/rubygems/ext/builder.rb +4 -4
  233. data/lib/rubygems/ext/cmake_builder.rb +1 -3
  234. data/lib/rubygems/ext/configure_builder.rb +0 -2
  235. data/lib/rubygems/ext/ext_conf_builder.rb +6 -9
  236. data/lib/rubygems/ext/rake_builder.rb +0 -2
  237. data/lib/rubygems/gem_runner.rb +3 -10
  238. data/lib/rubygems/gemcutter_utilities.rb +1 -1
  239. data/lib/rubygems/indexer.rb +1 -21
  240. data/lib/rubygems/install_update_options.rb +5 -5
  241. data/lib/rubygems/installer.rb +47 -48
  242. data/lib/rubygems/installer_test_case.rb +18 -5
  243. data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
  244. data/lib/rubygems/local_remote_options.rb +1 -1
  245. data/lib/rubygems/mock_gem_ui.rb +0 -6
  246. data/lib/rubygems/name_tuple.rb +2 -6
  247. data/lib/rubygems/openssl.rb +7 -0
  248. data/lib/rubygems/package.rb +11 -23
  249. data/lib/rubygems/package/digest_io.rb +0 -2
  250. data/lib/rubygems/package/file_source.rb +0 -2
  251. data/lib/rubygems/package/io_source.rb +0 -2
  252. data/lib/rubygems/package/old.rb +1 -3
  253. data/lib/rubygems/package/tar_header.rb +3 -5
  254. data/lib/rubygems/package/tar_reader.rb +0 -3
  255. data/lib/rubygems/package/tar_reader/entry.rb +0 -3
  256. data/lib/rubygems/package/tar_test_case.rb +1 -3
  257. data/lib/rubygems/package/tar_writer.rb +2 -12
  258. data/lib/rubygems/package_task.rb +1 -7
  259. data/lib/rubygems/path_support.rb +1 -3
  260. data/lib/rubygems/platform.rb +3 -5
  261. data/lib/rubygems/psych_tree.rb +0 -2
  262. data/lib/rubygems/query_utils.rb +362 -0
  263. data/lib/rubygems/rdoc.rb +0 -12
  264. data/lib/rubygems/remote_fetcher.rb +9 -25
  265. data/lib/rubygems/request.rb +1 -9
  266. data/lib/rubygems/request/connection_pools.rb +1 -5
  267. data/lib/rubygems/request/http_pool.rb +0 -2
  268. data/lib/rubygems/request/https_pool.rb +0 -2
  269. data/lib/rubygems/request_set.rb +5 -7
  270. data/lib/rubygems/request_set/gem_dependency_api.rb +2 -4
  271. data/lib/rubygems/request_set/lockfile.rb +8 -12
  272. data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
  273. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
  274. data/lib/rubygems/requirement.rb +20 -21
  275. data/lib/rubygems/resolver.rb +7 -10
  276. data/lib/rubygems/resolver/activation_request.rb +0 -2
  277. data/lib/rubygems/resolver/api_set.rb +4 -6
  278. data/lib/rubygems/resolver/api_specification.rb +16 -7
  279. data/lib/rubygems/resolver/best_set.rb +0 -2
  280. data/lib/rubygems/resolver/composed_set.rb +3 -5
  281. data/lib/rubygems/resolver/conflict.rb +1 -3
  282. data/lib/rubygems/resolver/current_set.rb +0 -2
  283. data/lib/rubygems/resolver/dependency_request.rb +0 -2
  284. data/lib/rubygems/resolver/git_set.rb +0 -2
  285. data/lib/rubygems/resolver/git_specification.rb +0 -2
  286. data/lib/rubygems/resolver/index_set.rb +1 -3
  287. data/lib/rubygems/resolver/index_specification.rb +0 -2
  288. data/lib/rubygems/resolver/installed_specification.rb +0 -2
  289. data/lib/rubygems/resolver/installer_set.rb +3 -5
  290. data/lib/rubygems/resolver/local_specification.rb +0 -2
  291. data/lib/rubygems/resolver/lock_set.rb +1 -3
  292. data/lib/rubygems/resolver/lock_specification.rb +0 -2
  293. data/lib/rubygems/resolver/requirement_list.rb +0 -2
  294. data/lib/rubygems/resolver/set.rb +0 -2
  295. data/lib/rubygems/resolver/source_set.rb +0 -2
  296. data/lib/rubygems/resolver/spec_specification.rb +0 -2
  297. data/lib/rubygems/resolver/specification.rb +0 -2
  298. data/lib/rubygems/resolver/stats.rb +0 -2
  299. data/lib/rubygems/resolver/vendor_set.rb +0 -2
  300. data/lib/rubygems/resolver/vendor_specification.rb +0 -2
  301. data/lib/rubygems/s3_uri_signer.rb +1 -7
  302. data/lib/rubygems/safe_yaml.rb +4 -4
  303. data/lib/rubygems/security.rb +26 -32
  304. data/lib/rubygems/security/policy.rb +3 -7
  305. data/lib/rubygems/security/signer.rb +4 -6
  306. data/lib/rubygems/security/trust_dir.rb +1 -3
  307. data/lib/rubygems/server.rb +9 -11
  308. data/lib/rubygems/source.rb +4 -4
  309. data/lib/rubygems/source/git.rb +7 -8
  310. data/lib/rubygems/source/installed.rb +0 -2
  311. data/lib/rubygems/source/local.rb +2 -4
  312. data/lib/rubygems/source/lock.rb +0 -2
  313. data/lib/rubygems/source/specific_file.rb +0 -2
  314. data/lib/rubygems/source/vendor.rb +0 -2
  315. data/lib/rubygems/source_list.rb +6 -7
  316. data/lib/rubygems/spec_fetcher.rb +18 -17
  317. data/lib/rubygems/specification.rb +107 -120
  318. data/lib/rubygems/specification_policy.rb +88 -30
  319. data/lib/rubygems/stub_specification.rb +0 -4
  320. data/lib/rubygems/syck_hack.rb +0 -2
  321. data/lib/rubygems/test_case.rb +122 -92
  322. data/lib/rubygems/test_utilities.rb +6 -14
  323. data/lib/rubygems/uninstaller.rb +35 -16
  324. data/lib/rubygems/uri_formatter.rb +0 -2
  325. data/lib/rubygems/uri_parser.rb +0 -2
  326. data/lib/rubygems/user_interaction.rb +1 -26
  327. data/lib/rubygems/util.rb +15 -3
  328. data/lib/rubygems/util/licenses.rb +4 -6
  329. data/lib/rubygems/util/list.rb +0 -2
  330. data/lib/rubygems/validator.rb +1 -3
  331. data/lib/rubygems/version.rb +5 -7
  332. data/rubygems-update.gemspec +2 -2
  333. data/setup.rb +2 -7
  334. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
  335. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  336. data/test/rubygems/rubygems_plugin.rb +0 -2
  337. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  338. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  339. data/test/rubygems/test_bundled_ca.rb +38 -45
  340. data/test/rubygems/test_config.rb +0 -2
  341. data/test/rubygems/test_deprecate.rb +40 -7
  342. data/test/rubygems/test_gem.rb +150 -103
  343. data/test/rubygems/test_gem_available_set.rb +3 -5
  344. data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
  345. data/test/rubygems/test_gem_command.rb +24 -7
  346. data/test/rubygems/test_gem_command_manager.rb +36 -5
  347. data/test/rubygems/test_gem_commands_build_command.rb +53 -10
  348. data/test/rubygems/test_gem_commands_cert_command.rb +2 -4
  349. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  350. data/test/rubygems/test_gem_commands_cleanup_command.rb +13 -4
  351. data/test/rubygems/test_gem_commands_contents_command.rb +48 -17
  352. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
  353. data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
  354. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  355. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
  356. data/test/rubygems/test_gem_commands_help_command.rb +0 -2
  357. data/test/rubygems/test_gem_commands_info_command.rb +6 -8
  358. data/test/rubygems/test_gem_commands_install_command.rb +31 -33
  359. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  360. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  361. data/test/rubygems/test_gem_commands_mirror.rb +1 -3
  362. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  363. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
  364. data/test/rubygems/test_gem_commands_owner_command.rb +11 -5
  365. data/test/rubygems/test_gem_commands_pristine_command.rb +41 -10
  366. data/test/rubygems/test_gem_commands_push_command.rb +7 -4
  367. data/test/rubygems/test_gem_commands_query_command.rb +9 -9
  368. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  369. data/test/rubygems/test_gem_commands_server_command.rb +0 -2
  370. data/test/rubygems/test_gem_commands_setup_command.rb +210 -118
  371. data/test/rubygems/test_gem_commands_signin_command.rb +6 -6
  372. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  373. data/test/rubygems/test_gem_commands_sources_command.rb +39 -3
  374. data/test/rubygems/test_gem_commands_specification_command.rb +18 -20
  375. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  376. data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
  377. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  378. data/test/rubygems/test_gem_commands_update_command.rb +116 -7
  379. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  380. data/test/rubygems/test_gem_commands_yank_command.rb +14 -8
  381. data/test/rubygems/test_gem_config_file.rb +7 -12
  382. data/test/rubygems/test_gem_dependency.rb +0 -2
  383. data/test/rubygems/test_gem_dependency_installer.rb +54 -191
  384. data/test/rubygems/test_gem_dependency_list.rb +8 -10
  385. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  386. data/test/rubygems/test_gem_doctor.rb +28 -2
  387. data/test/rubygems/test_gem_ext_builder.rb +16 -33
  388. data/test/rubygems/test_gem_ext_cmake_builder.rb +13 -14
  389. data/test/rubygems/test_gem_ext_configure_builder.rb +1 -11
  390. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -3
  391. data/test/rubygems/test_gem_ext_rake_builder.rb +9 -11
  392. data/test/rubygems/test_gem_gem_runner.rb +43 -1
  393. data/test/rubygems/test_gem_gemcutter_utilities.rb +5 -2
  394. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  395. data/test/rubygems/test_gem_indexer.rb +9 -15
  396. data/test/rubygems/test_gem_install_update_options.rb +0 -2
  397. data/test/rubygems/test_gem_installer.rb +192 -71
  398. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  399. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  400. data/test/rubygems/test_gem_package.rb +33 -31
  401. data/test/rubygems/test_gem_package_old.rb +0 -2
  402. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  403. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  404. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
  405. data/test/rubygems/test_gem_package_tar_writer.rb +8 -5
  406. data/test/rubygems/test_gem_package_task.rb +46 -13
  407. data/test/rubygems/test_gem_path_support.rb +0 -2
  408. data/test/rubygems/test_gem_platform.rb +0 -2
  409. data/test/rubygems/test_gem_rdoc.rb +0 -2
  410. data/test/rubygems/test_gem_remote_fetcher.rb +156 -195
  411. data/test/rubygems/test_gem_request.rb +11 -15
  412. data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
  413. data/test/rubygems/test_gem_request_set.rb +72 -22
  414. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
  415. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -2
  416. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
  417. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
  418. data/test/rubygems/test_gem_requirement.rb +10 -4
  419. data/test/rubygems/test_gem_resolver.rb +6 -8
  420. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
  421. data/test/rubygems/test_gem_resolver_api_set.rb +3 -5
  422. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
  423. data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
  424. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  425. data/test/rubygems/test_gem_resolver_conflict.rb +0 -2
  426. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  427. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  428. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
  429. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  430. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
  431. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
  432. data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
  433. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  434. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  435. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  436. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  437. data/test/rubygems/test_gem_resolver_specification.rb +0 -4
  438. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -2
  439. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  440. data/test/rubygems/test_gem_security.rb +20 -22
  441. data/test/rubygems/test_gem_security_policy.rb +5 -10
  442. data/test/rubygems/test_gem_security_signer.rb +8 -10
  443. data/test/rubygems/test_gem_security_trust_dir.rb +2 -4
  444. data/test/rubygems/test_gem_server.rb +10 -14
  445. data/test/rubygems/test_gem_silent_ui.rb +0 -2
  446. data/test/rubygems/test_gem_source.rb +12 -16
  447. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
  448. data/test/rubygems/test_gem_source_git.rb +12 -13
  449. data/test/rubygems/test_gem_source_installed.rb +7 -9
  450. data/test/rubygems/test_gem_source_list.rb +1 -2
  451. data/test/rubygems/test_gem_source_local.rb +8 -10
  452. data/test/rubygems/test_gem_source_lock.rb +10 -12
  453. data/test/rubygems/test_gem_source_specific_file.rb +7 -9
  454. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  455. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  456. data/test/rubygems/test_gem_specification.rb +179 -129
  457. data/test/rubygems/test_gem_stream_ui.rb +3 -3
  458. data/test/rubygems/test_gem_stub_specification.rb +4 -7
  459. data/test/rubygems/test_gem_text.rb +1 -3
  460. data/test/rubygems/test_gem_uninstaller.rb +133 -11
  461. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  462. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  463. data/test/rubygems/test_gem_util.rb +7 -7
  464. data/test/rubygems/test_gem_validator.rb +0 -2
  465. data/test/rubygems/test_gem_version.rb +1 -3
  466. data/test/rubygems/test_gem_version_option.rb +0 -2
  467. data/test/rubygems/test_kernel.rb +25 -10
  468. data/test/rubygems/test_project_sanity.rb +7 -2
  469. data/test/rubygems/test_remote_fetch_error.rb +0 -2
  470. data/test/rubygems/test_require.rb +241 -47
  471. metadata +59 -96
  472. data/.bundle/config +0 -2
  473. data/.rubocop.yml +0 -91
  474. data/Gemfile +0 -8
  475. data/Gemfile.lock +0 -43
  476. data/bundler/CODE_OF_CONDUCT.md +0 -136
  477. data/bundler/man/bundle-add.1.txt +0 -58
  478. data/bundler/man/bundle-binstubs.1.txt +0 -48
  479. data/bundler/man/bundle-cache.1.txt +0 -78
  480. data/bundler/man/bundle-check.1.txt +0 -33
  481. data/bundler/man/bundle-clean.1.txt +0 -26
  482. data/bundler/man/bundle-config.1.txt +0 -528
  483. data/bundler/man/bundle-doctor.1.txt +0 -44
  484. data/bundler/man/bundle-exec.1.txt +0 -178
  485. data/bundler/man/bundle-gem.1.txt +0 -91
  486. data/bundler/man/bundle-info.1.txt +0 -21
  487. data/bundler/man/bundle-init.1.txt +0 -34
  488. data/bundler/man/bundle-inject.1.txt +0 -32
  489. data/bundler/man/bundle-install.1.txt +0 -401
  490. data/bundler/man/bundle-list.1.txt +0 -43
  491. data/bundler/man/bundle-lock.1.txt +0 -93
  492. data/bundler/man/bundle-open.1.txt +0 -29
  493. data/bundler/man/bundle-outdated.1.txt +0 -131
  494. data/bundler/man/bundle-platform.1.txt +0 -57
  495. data/bundler/man/bundle-pristine.1.txt +0 -44
  496. data/bundler/man/bundle-remove.1.txt +0 -34
  497. data/bundler/man/bundle-show.1.txt +0 -27
  498. data/bundler/man/bundle-update.1.txt +0 -390
  499. data/bundler/man/bundle-viz.1.txt +0 -39
  500. data/bundler/man/bundle.1.txt +0 -116
  501. data/bundler/man/gemfile.5.txt +0 -649
  502. data/bundler/man/index.txt +0 -25
  503. data/lib/rubygems/source_local.rb +0 -7
  504. data/lib/rubygems/source_specific_file.rb +0 -6
  505. data/lib/ubygems.rb +0 -14
  506. data/tmp/.keep +0 -0
  507. data/util/CL2notes +0 -55
  508. data/util/bisect +0 -10
  509. data/util/ci.sh +0 -62
  510. data/util/cops/deprecations.rb +0 -52
  511. data/util/create_certs.rb +0 -171
  512. data/util/create_certs.sh +0 -27
  513. data/util/create_encrypted_key.rb +0 -16
  514. data/util/generate_spdx_license_list.rb +0 -63
  515. data/util/patch_with_prs.rb +0 -77
  516. data/util/rubocop +0 -8
  517. data/util/update_bundled_ca_certificates.rb +0 -139
  518. data/util/update_changelog.rb +0 -67
@@ -3,7 +3,6 @@ require 'rubygems/command'
3
3
  require 'rubygems/gemcutter_utilities'
4
4
 
5
5
  class Gem::Commands::SigninCommand < Gem::Command
6
-
7
6
  include Gem::GemcutterUtilities
8
7
 
9
8
  def initialize
@@ -31,5 +30,4 @@ class Gem::Commands::SigninCommand < Gem::Command
31
30
  def execute
32
31
  sign_in options[:host]
33
32
  end
34
-
35
33
  end
@@ -2,7 +2,6 @@
2
2
  require 'rubygems/command'
3
3
 
4
4
  class Gem::Commands::SignoutCommand < Gem::Command
5
-
6
5
  def initialize
7
6
  super 'signout', 'Sign out from all the current sessions.'
8
7
  end
@@ -29,5 +28,4 @@ class Gem::Commands::SignoutCommand < Gem::Command
29
28
  say 'You have successfully signed out from all sessions.'
30
29
  end
31
30
  end
32
-
33
31
  end
@@ -5,7 +5,6 @@ require 'rubygems/spec_fetcher'
5
5
  require 'rubygems/local_remote_options'
6
6
 
7
7
  class Gem::Commands::SourcesCommand < Gem::Command
8
-
9
8
  include Gem::LocalRemoteOptions
10
9
 
11
10
  def initialize
@@ -136,7 +135,7 @@ RubyGems has been configured to serve gems via the following URLs through
136
135
  its history:
137
136
 
138
137
  * http://gems.rubyforge.org (RubyGems 1.3.6 and earlier)
139
- * http://rubygems.org (RubyGems 1.3.7 through 1.8.25)
138
+ * https://rubygems.org/ (RubyGems 1.3.7 through 1.8.25)
140
139
  * https://rubygems.org (RubyGems 2.0.1 and newer)
141
140
 
142
141
  Since all of these sources point to the same set of gems you only need one
@@ -153,8 +152,8 @@ before it is added.
153
152
 
154
153
  To remove a source use the --remove argument:
155
154
 
156
- $ gem sources --remove http://rubygems.org
157
- http://rubygems.org removed from sources
155
+ $ gem sources --remove https://rubygems.org/
156
+ https://rubygems.org/ removed from sources
158
157
 
159
158
  EOF
160
159
  end
@@ -220,5 +219,4 @@ To remove a source use the --remove argument:
220
219
  say "*** Unable to remove #{desc} source cache ***"
221
220
  end
222
221
  end
223
-
224
222
  end
@@ -5,7 +5,6 @@ require 'rubygems/version_option'
5
5
  require 'rubygems/package'
6
6
 
7
7
  class Gem::Commands::SpecificationCommand < Gem::Command
8
-
9
8
  include Gem::LocalRemoteOptions
10
9
  include Gem::VersionOption
11
10
 
@@ -119,7 +118,7 @@ Specific fields in the specification can be extracted in YAML format:
119
118
  dep.prerelease = options[:prerelease]
120
119
  found, _ = Gem::SpecFetcher.fetcher.spec_for_dependency dep
121
120
 
122
- specs.push(*found.map { |spec,| spec })
121
+ specs.push(*found.map {|spec,| spec })
123
122
  end
124
123
 
125
124
  if specs.empty?
@@ -128,7 +127,7 @@ Specific fields in the specification can be extracted in YAML format:
128
127
  end
129
128
 
130
129
  unless options[:all]
131
- specs = [specs.max_by { |s| s.version }]
130
+ specs = [specs.max_by {|s| s.version }]
132
131
  end
133
132
 
134
133
  specs.each do |s|
@@ -143,5 +142,4 @@ Specific fields in the specification can be extracted in YAML format:
143
142
  say "\n"
144
143
  end
145
144
  end
146
-
147
145
  end
@@ -2,7 +2,6 @@
2
2
  require 'rubygems/command'
3
3
 
4
4
  class Gem::Commands::StaleCommand < Gem::Command
5
-
6
5
  def initialize
7
6
  super('stale', 'List gems along with access times')
8
7
  end
@@ -33,9 +32,8 @@ longer using.
33
32
  end
34
33
  end
35
34
 
36
- gem_to_atime.sort_by { |_, atime| atime }.each do |name, atime|
35
+ gem_to_atime.sort_by {|_, atime| atime }.each do |name, atime|
37
36
  say "#{name} at #{atime.strftime '%c'}"
38
37
  end
39
38
  end
40
-
41
39
  end
@@ -10,7 +10,6 @@ require 'fileutils'
10
10
  # See `gem help uninstall`
11
11
 
12
12
  class Gem::Commands::UninstallCommand < Gem::Command
13
-
14
13
  include Gem::VersionOption
15
14
 
16
15
  def initialize
@@ -136,14 +135,14 @@ that is a dependency of an existing gem. You can use the
136
135
  end
137
136
 
138
137
  def uninstall_all
139
- specs = Gem::Specification.reject { |spec| spec.default_gem? }
138
+ specs = Gem::Specification.reject {|spec| spec.default_gem? }
140
139
 
141
140
  specs.each do |spec|
142
141
  options[:version] = spec.version
143
142
  uninstall_gem spec.name
144
143
  end
145
144
 
146
- alert "Uninstalled all gems in #{options[:install_dir]}"
145
+ alert "Uninstalled all gems in #{options[:install_dir] || Gem.dir}"
147
146
  end
148
147
 
149
148
  def uninstall_specific
@@ -195,5 +194,4 @@ that is a dependency of an existing gem. You can use the
195
194
  def uninstall(gem_name)
196
195
  Gem::Uninstaller.new(gem_name, options).uninstall
197
196
  end
198
-
199
197
  end
@@ -13,7 +13,6 @@ module Gem::Security # :nodoc:
13
13
  end
14
14
 
15
15
  class Gem::Commands::UnpackCommand < Gem::Command
16
-
17
16
  include Gem::VersionOption
18
17
  include Gem::SecurityOption
19
18
 
@@ -157,7 +156,7 @@ command help for an example.
157
156
 
158
157
  specs = dependency.matching_specs
159
158
 
160
- selected = specs.max_by { |s| s.version }
159
+ selected = specs.max_by {|s| s.version }
161
160
 
162
161
  return Gem::RemoteFetcher.fetcher.download_to_cache(dependency) unless
163
162
  selected
@@ -173,5 +172,4 @@ command help for an example.
173
172
 
174
173
  path
175
174
  end
176
-
177
175
  end
@@ -10,7 +10,6 @@ require 'rubygems/install_message' # must come before rdoc for messaging
10
10
  require 'rubygems/rdoc'
11
11
 
12
12
  class Gem::Commands::UpdateCommand < Gem::Command
13
-
14
13
  include Gem::InstallUpdateOptions
15
14
  include Gem::LocalRemoteOptions
16
15
  include Gem::VersionOption
@@ -73,8 +72,13 @@ command to remove old versions.
73
72
  say "Latest version already installed. Done."
74
73
  terminate_interaction
75
74
  end
75
+ end
76
76
 
77
- options[:user_install] = false
77
+ def check_oldest_rubygems(version) # :nodoc:
78
+ if oldest_supported_version > version
79
+ alert_error "rubygems #{version} is not supported. The oldest supported version is #{oldest_supported_version}"
80
+ terminate_interaction 1
81
+ end
78
82
  end
79
83
 
80
84
  def check_update_arguments # :nodoc:
@@ -90,9 +94,10 @@ command to remove old versions.
90
94
  return
91
95
  end
92
96
 
93
- hig = highest_installed_gems
94
-
95
- gems_to_update = which_to_update hig, options[:args].uniq
97
+ gems_to_update = which_to_update(
98
+ highest_installed_gems,
99
+ options[:args].uniq
100
+ )
96
101
 
97
102
  if options[:explain]
98
103
  say "Gems to update:"
@@ -108,7 +113,7 @@ command to remove old versions.
108
113
 
109
114
  updated = update_gems gems_to_update
110
115
 
111
- updated_names = updated.map { |spec| spec.name }
116
+ updated_names = updated.map {|spec| spec.name }
112
117
  not_updated_names = options[:args].uniq - updated_names
113
118
 
114
119
  if updated.empty?
@@ -127,7 +132,7 @@ command to remove old versions.
127
132
 
128
133
  spec_tuples, errors = fetcher.search_for_dependency dependency
129
134
 
130
- error = errors.find { |e| e.respond_to? :exception }
135
+ error = errors.find {|e| e.respond_to? :exception }
131
136
 
132
137
  raise error if error
133
138
 
@@ -137,6 +142,9 @@ command to remove old versions.
137
142
  def highest_installed_gems # :nodoc:
138
143
  hig = {} # highest installed gems
139
144
 
145
+ # Get only gem specifications installed as --user-install
146
+ Gem::Specification.dirs = Gem.user_dir if options[:user_install]
147
+
140
148
  Gem::Specification.each do |spec|
141
149
  if hig[spec.name].nil? or hig[spec.name].version < spec.version
142
150
  hig[spec.name] = spec
@@ -166,10 +174,33 @@ command to remove old versions.
166
174
  update_dir = File.join Gem.dir, 'gems', "rubygems-update-#{version}"
167
175
 
168
176
  Dir.chdir update_dir do
169
- say "Installing RubyGems #{version}"
177
+ say "Installing RubyGems #{version}" unless options[:silent]
178
+
179
+ installed = preparing_gem_layout_for(version) do
180
+ system Gem.ruby, '--disable-gems', 'setup.rb', *args
181
+ end
182
+
183
+ say "RubyGems system software updated" if installed unless options[:silent]
184
+ end
185
+ end
170
186
 
171
- installed = system Gem.ruby, '--disable-gems', 'setup.rb', *args
172
- say "RubyGems system software updated" if installed
187
+ def preparing_gem_layout_for(version)
188
+ if Gem::Version.new(version) >= Gem::Version.new("3.2.a")
189
+ yield
190
+ else
191
+ require "tmpdir"
192
+ tmpdir = Dir.mktmpdir
193
+ FileUtils.mv Gem.plugindir, tmpdir
194
+
195
+ status = yield
196
+
197
+ if status
198
+ FileUtils.rm_rf tmpdir
199
+ else
200
+ FileUtils.mv File.join(tmpdir, "plugins"), Gem.plugindir
201
+ end
202
+
203
+ status
173
204
  end
174
205
  end
175
206
 
@@ -190,7 +221,7 @@ command to remove old versions.
190
221
  rubygems_update.version = version
191
222
 
192
223
  hig = {
193
- 'rubygems-update' => rubygems_update
224
+ 'rubygems-update' => rubygems_update,
194
225
  }
195
226
 
196
227
  gems_to_update = which_to_update hig, options[:args], :system
@@ -206,14 +237,14 @@ command to remove old versions.
206
237
  end
207
238
 
208
239
  def update_gem(name, version = Gem::Requirement.default)
209
- return if @updated.any? { |spec| spec.name == name }
240
+ return if @updated.any? {|spec| spec.name == name }
210
241
 
211
242
  update_options = options.dup
212
243
  update_options[:prerelease] = version.prerelease?
213
244
 
214
245
  @installer = Gem::DependencyInstaller.new update_options
215
246
 
216
- say "Updating #{name}"
247
+ say "Updating #{name}" unless options[:system] && options[:silent]
217
248
  begin
218
249
  @installer.install name, Gem::Requirement.new(version)
219
250
  rescue Gem::InstallError, Gem::DependencyError => e
@@ -237,12 +268,19 @@ command to remove old versions.
237
268
  # Update RubyGems software to the latest version.
238
269
 
239
270
  def update_rubygems
271
+ if Gem.disable_system_update_message
272
+ alert_error Gem.disable_system_update_message
273
+ terminate_interaction 1
274
+ end
275
+
240
276
  check_update_arguments
241
277
 
242
278
  version, requirement = rubygems_target_version
243
279
 
244
280
  check_latest_rubygems version
245
281
 
282
+ check_oldest_rubygems version
283
+
246
284
  update_gem 'rubygems-update', version
247
285
 
248
286
  installed_gems = Gem::Specification.find_all_by_name 'rubygems-update', requirement
@@ -253,6 +291,7 @@ command to remove old versions.
253
291
 
254
292
  def update_rubygems_arguments # :nodoc:
255
293
  args = []
294
+ args << '--silent' if options[:silent]
256
295
  args << '--prefix' << Gem.prefix if Gem.prefix
257
296
  args << '--no-document' unless options[:document].include?('rdoc') || options[:document].include?('ri')
258
297
  args << '--no-format-executable' if options[:no_format_executable]
@@ -267,7 +306,7 @@ command to remove old versions.
267
306
 
268
307
  highest_installed_gems.each do |l_name, l_spec|
269
308
  next if not gem_names.empty? and
270
- gem_names.none? { |name| name == l_spec.name }
309
+ gem_names.none? {|name| name == l_spec.name }
271
310
 
272
311
  highest_remote_tup = highest_remote_name_tuple l_spec
273
312
  highest_remote_ver = highest_remote_tup.version
@@ -281,4 +320,10 @@ command to remove old versions.
281
320
  result
282
321
  end
283
322
 
323
+ private
324
+
325
+ def oldest_supported_version
326
+ # for Ruby 2.3
327
+ @oldest_supported_version ||= Gem::Version.new("2.5.2")
328
+ end
284
329
  end
@@ -2,7 +2,6 @@
2
2
  require 'rubygems/command'
3
3
 
4
4
  class Gem::Commands::WhichCommand < Gem::Command
5
-
6
5
  def initialize
7
6
  super 'which', 'Find the location of a library file you can require',
8
7
  :search_gems_first => false, :show_all => false
@@ -85,5 +84,4 @@ requiring to see why it does not behave as you expect.
85
84
  def usage # :nodoc:
86
85
  "#{program_name} FILE [FILE ...]"
87
86
  end
88
-
89
87
  end
@@ -5,7 +5,6 @@ require 'rubygems/version_option'
5
5
  require 'rubygems/gemcutter_utilities'
6
6
 
7
7
  class Gem::Commands::YankCommand < Gem::Command
8
-
9
8
  include Gem::LocalRemoteOptions
10
9
  include Gem::VersionOption
11
10
  include Gem::GemcutterUtilities
@@ -97,5 +96,4 @@ data you will need to change them immediately and yank your gem.
97
96
  def get_platform_from_requirements(requirements)
98
97
  Gem.platforms[1].to_s if requirements.key? :added_platform
99
98
  end
100
-
101
99
  end
@@ -37,7 +37,6 @@ require 'rbconfig'
37
37
  # - per environment (gemrc files listed in the GEMRC environment variable)
38
38
 
39
39
  class Gem::ConfigFile
40
-
41
40
  include Gem::UserInteraction
42
41
 
43
42
  DEFAULT_BACKTRACE = false
@@ -261,7 +260,12 @@ if you believe they were disclosed to a third party.
261
260
  # Location of RubyGems.org credentials
262
261
 
263
262
  def credentials_path
264
- File.join Gem.user_home, '.gem', 'credentials'
263
+ credentials = File.join Gem.user_home, '.gem', 'credentials'
264
+ if File.exist? credentials
265
+ credentials
266
+ else
267
+ File.join Gem.data_home, "gem", "credentials"
268
+ end
265
269
  end
266
270
 
267
271
  def load_api_keys
@@ -429,7 +433,7 @@ if you believe they were disclosed to a third party.
429
433
  yaml_hash[:ssl_client_cert] =
430
434
  @hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
431
435
 
432
- keys = yaml_hash.keys.map { |key| key.to_s }
436
+ keys = yaml_hash.keys.map {|key| key.to_s }
433
437
  keys << 'debug'
434
438
  re = Regexp.union(*keys)
435
439
 
@@ -444,6 +448,10 @@ if you believe they were disclosed to a third party.
444
448
 
445
449
  # Writes out this config file, replacing its source.
446
450
  def write
451
+ unless File.exist?(File.dirname(config_file_name))
452
+ FileUtils.mkdir_p File.dirname(config_file_name)
453
+ end
454
+
447
455
  File.open config_file_name, 'w' do |io|
448
456
  io.write to_yaml
449
457
  end
@@ -488,5 +496,4 @@ if you believe they were disclosed to a third party.
488
496
  end
489
497
  end
490
498
  end
491
-
492
499
  end
@@ -39,49 +39,40 @@ module Kernel
39
39
 
40
40
  path = path.to_path if path.respond_to? :to_path
41
41
 
42
- # Ensure -I beats a default gem
43
- # https://github.com/rubygems/rubygems/pull/1868
44
- resolved_path = begin
45
- rp = nil
46
- $LOAD_PATH[0...Gem.load_path_insert_index || -1].each do |lp|
47
- safe_lp = lp.dup.tap(&Gem::UNTAINT)
48
- begin
49
- if File.symlink? safe_lp # for backward compatibility
50
- next
51
- end
52
- rescue SecurityError
53
- RUBYGEMS_ACTIVATION_MONITOR.exit
54
- raise
55
- end
56
-
42
+ if spec = Gem.find_unresolved_default_spec(path)
43
+ # Ensure -I beats a default gem
44
+ resolved_path = begin
45
+ rp = nil
46
+ load_path_check_index = Gem.load_path_insert_index - Gem.activated_gem_paths
57
47
  Gem.suffixes.each do |s|
58
- full_path = File.expand_path(File.join(safe_lp, "#{path}#{s}"))
59
- if File.file?(full_path)
60
- rp = full_path
61
- break
48
+ $LOAD_PATH[0...load_path_check_index].each do |lp|
49
+ safe_lp = lp.dup.tap(&Gem::UNTAINT)
50
+ begin
51
+ if File.symlink? safe_lp # for backward compatibility
52
+ next
53
+ end
54
+ rescue SecurityError
55
+ RUBYGEMS_ACTIVATION_MONITOR.exit
56
+ raise
57
+ end
58
+
59
+ full_path = File.expand_path(File.join(safe_lp, "#{path}#{s}"))
60
+ if File.file?(full_path)
61
+ rp = full_path
62
+ break
63
+ end
62
64
  end
65
+ break if rp
63
66
  end
64
- break if rp
65
- end
66
- rp
67
- end
68
-
69
- if resolved_path
70
- begin
71
- RUBYGEMS_ACTIVATION_MONITOR.exit
72
- return gem_original_require(resolved_path)
73
- rescue LoadError
74
- RUBYGEMS_ACTIVATION_MONITOR.enter
67
+ rp
75
68
  end
76
- end
77
69
 
78
- if spec = Gem.find_unresolved_default_spec(path)
79
70
  begin
80
71
  Kernel.send(:gem, spec.name, Gem::Requirement.default_prerelease)
81
72
  rescue Exception
82
73
  RUBYGEMS_ACTIVATION_MONITOR.exit
83
74
  raise
84
- end
75
+ end unless resolved_path
85
76
  end
86
77
 
87
78
  # If there are no unresolved deps, then we can use just try
@@ -139,7 +130,7 @@ module Kernel
139
130
 
140
131
  # Ok, now find a gem that has no conflicts, starting
141
132
  # at the highest version.
142
- valid = found_specs.find { |s| !s.has_conflicts? }
133
+ valid = found_specs.find {|s| !s.has_conflicts? }
143
134
 
144
135
  unless valid
145
136
  le = Gem::LoadError.new "unable to find a version of '#{names.first}' to activate"
@@ -157,8 +148,7 @@ module Kernel
157
148
  RUBYGEMS_ACTIVATION_MONITOR.enter
158
149
 
159
150
  begin
160
- if load_error.message.start_with?("Could not find") or
161
- (load_error.message.end_with?(path) and Gem.try_activate(path))
151
+ if load_error.path == path and Gem.try_activate(path)
162
152
  require_again = true
163
153
  end
164
154
  ensure