rubygems-update 3.1.0 → 3.2.0

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 (558) 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 +435 -179
  5. data/Manifest.txt +44 -77
  6. data/POLICIES.md +2 -9
  7. data/README.md +5 -5
  8. data/Rakefile +50 -83
  9. data/bin/update_rubygems +2 -2
  10. data/bundler/CHANGELOG.md +1590 -1400
  11. data/bundler/README.md +6 -8
  12. data/bundler/UPGRADING.md +18 -32
  13. data/bundler/bundler.gemspec +3 -3
  14. data/bundler/exe/bundle +3 -0
  15. data/bundler/lib/bundler.rb +25 -7
  16. data/bundler/lib/bundler/build_metadata.rb +4 -12
  17. data/bundler/lib/bundler/cli.rb +56 -20
  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 +7 -16
  26. data/bundler/lib/bundler/cli/fund.rb +36 -0
  27. data/bundler/lib/bundler/cli/gem.rb +75 -11
  28. data/bundler/lib/bundler/cli/info.rb +8 -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 +12 -18
  32. data/bundler/lib/bundler/cli/issue.rb +2 -2
  33. data/bundler/lib/bundler/cli/list.rb +1 -1
  34. data/bundler/lib/bundler/cli/outdated.rb +2 -4
  35. data/bundler/lib/bundler/cli/plugin.rb +10 -0
  36. data/bundler/lib/bundler/cli/pristine.rb +1 -1
  37. data/bundler/lib/bundler/cli/show.rb +1 -1
  38. data/bundler/lib/bundler/cli/update.rb +2 -0
  39. data/bundler/lib/bundler/compact_index_client.rb +1 -1
  40. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  41. data/bundler/lib/bundler/compact_index_client/updater.rb +5 -5
  42. data/bundler/lib/bundler/definition.rb +47 -61
  43. data/bundler/lib/bundler/dep_proxy.rb +1 -1
  44. data/bundler/lib/bundler/dependency.rb +0 -9
  45. data/bundler/lib/bundler/dsl.rb +5 -9
  46. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  47. data/bundler/lib/bundler/env.rb +1 -1
  48. data/bundler/lib/bundler/environment_preserver.rb +26 -2
  49. data/bundler/lib/bundler/errors.rb +1 -0
  50. data/bundler/lib/bundler/feature_flag.rb +0 -3
  51. data/bundler/lib/bundler/fetcher.rb +4 -3
  52. data/bundler/lib/bundler/fetcher/base.rb +1 -1
  53. data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
  54. data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
  55. data/bundler/lib/bundler/fetcher/index.rb +3 -4
  56. data/bundler/lib/bundler/friendly_errors.rb +22 -13
  57. data/bundler/lib/bundler/gem_helper.rb +33 -19
  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 +2 -2
  64. data/bundler/lib/bundler/installer.rb +35 -32
  65. data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
  66. data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
  67. data/bundler/lib/bundler/installer/standalone.rb +2 -2
  68. data/bundler/lib/bundler/lazy_specification.rb +20 -9
  69. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  70. data/bundler/lib/bundler/lockfile_parser.rb +1 -1
  71. data/bundler/lib/bundler/man/.document +1 -0
  72. data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
  73. data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
  74. data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
  75. data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  76. data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
  77. data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
  78. data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  79. data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
  80. data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
  81. data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  82. data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
  83. data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
  84. data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
  85. data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +0 -0
  86. data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  87. data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
  88. data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
  89. data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
  90. data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  91. data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  92. data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
  93. data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
  94. data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
  95. data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
  96. data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
  97. data/bundler/lib/bundler/mirror.rb +2 -2
  98. data/bundler/lib/bundler/plugin.rb +30 -5
  99. data/bundler/lib/bundler/plugin/api/source.rb +1 -1
  100. data/bundler/lib/bundler/plugin/dsl.rb +1 -1
  101. data/bundler/lib/bundler/plugin/index.rb +10 -1
  102. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  103. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
  104. data/bundler/lib/bundler/plugin/source_list.rb +1 -1
  105. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  106. data/bundler/lib/bundler/remote_specification.rb +5 -2
  107. data/bundler/lib/bundler/resolver.rb +32 -10
  108. data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
  109. data/bundler/lib/bundler/retry.rb +1 -1
  110. data/bundler/lib/bundler/ruby_version.rb +1 -1
  111. data/bundler/lib/bundler/rubygems_ext.rb +53 -9
  112. data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
  113. data/bundler/lib/bundler/rubygems_integration.rb +35 -25
  114. data/bundler/lib/bundler/runtime.rb +4 -14
  115. data/bundler/lib/bundler/settings.rb +49 -46
  116. data/bundler/lib/bundler/setup.rb +5 -0
  117. data/bundler/lib/bundler/shared_helpers.rb +2 -2
  118. data/bundler/lib/bundler/similarity_detector.rb +1 -1
  119. data/bundler/lib/bundler/source.rb +1 -1
  120. data/bundler/lib/bundler/source/git.rb +1 -1
  121. data/bundler/lib/bundler/source/git/git_proxy.rb +57 -60
  122. data/bundler/lib/bundler/source/path.rb +7 -3
  123. data/bundler/lib/bundler/source/path/installer.rb +8 -10
  124. data/bundler/lib/bundler/source/rubygems.rb +13 -16
  125. data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
  126. data/bundler/lib/bundler/source_list.rb +2 -2
  127. data/bundler/lib/bundler/spec_set.rb +2 -1
  128. data/bundler/lib/bundler/stub_specification.rb +17 -5
  129. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  130. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +7 -2
  131. data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
  132. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -5
  133. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  134. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  135. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  136. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
  137. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  138. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  139. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  140. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +13 -5
  141. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
  142. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  143. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  144. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  145. data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  146. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  147. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  148. data/bundler/lib/bundler/ui/shell.rb +5 -5
  149. data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
  150. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
  151. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
  152. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
  153. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
  154. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  155. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +38 -40
  156. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +72 -208
  157. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
  158. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  159. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  160. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  161. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  162. data/bundler/lib/bundler/vendored_persistent.rb +0 -7
  163. data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
  164. data/bundler/lib/bundler/version.rb +1 -1
  165. data/bundler/lib/bundler/worker.rb +1 -1
  166. data/bundler/lib/bundler/yaml_serializer.rb +1 -1
  167. data/bundler/man/bundle-add.1 +1 -1
  168. data/bundler/man/bundle-binstubs.1 +5 -3
  169. data/bundler/man/bundle-cache.1 +1 -1
  170. data/bundler/man/bundle-check.1 +1 -1
  171. data/bundler/man/bundle-clean.1 +1 -1
  172. data/bundler/man/bundle-config.1 +16 -25
  173. data/bundler/man/bundle-doctor.1 +1 -1
  174. data/bundler/man/bundle-exec.1 +1 -1
  175. data/bundler/man/bundle-gem.1 +25 -3
  176. data/bundler/man/bundle-info.1 +1 -1
  177. data/bundler/man/bundle-init.1 +1 -1
  178. data/bundler/man/bundle-inject.1 +1 -1
  179. data/bundler/man/bundle-install.1 +30 -3
  180. data/bundler/man/bundle-list.1 +1 -1
  181. data/bundler/man/bundle-lock.1 +1 -1
  182. data/bundler/man/bundle-open.1 +1 -1
  183. data/bundler/man/bundle-outdated.1 +1 -1
  184. data/bundler/man/bundle-platform.1 +1 -1
  185. data/bundler/man/bundle-pristine.1 +1 -1
  186. data/bundler/man/bundle-remove.1 +1 -1
  187. data/bundler/man/bundle-show.1 +1 -1
  188. data/bundler/man/bundle-update.1 +1 -1
  189. data/bundler/man/bundle-viz.1 +1 -1
  190. data/bundler/man/bundle.1 +1 -1
  191. data/bundler/man/gemfile.5 +4 -4
  192. data/lib/rubygems.rb +138 -187
  193. data/lib/rubygems/available_set.rb +4 -6
  194. data/lib/rubygems/basic_specification.rb +12 -10
  195. data/lib/rubygems/bundler_version_finder.rb +14 -9
  196. data/lib/rubygems/command.rb +17 -17
  197. data/lib/rubygems/command_manager.rb +5 -6
  198. data/lib/rubygems/commands/build_command.rb +40 -20
  199. data/lib/rubygems/commands/cert_command.rb +2 -10
  200. data/lib/rubygems/commands/check_command.rb +0 -2
  201. data/lib/rubygems/commands/cleanup_command.rb +11 -7
  202. data/lib/rubygems/commands/contents_command.rb +4 -6
  203. data/lib/rubygems/commands/dependency_command.rb +6 -8
  204. data/lib/rubygems/commands/environment_command.rb +1 -3
  205. data/lib/rubygems/commands/fetch_command.rb +2 -4
  206. data/lib/rubygems/commands/generate_index_command.rb +0 -2
  207. data/lib/rubygems/commands/help_command.rb +4 -4
  208. data/lib/rubygems/commands/info_command.rb +8 -5
  209. data/lib/rubygems/commands/install_command.rb +3 -5
  210. data/lib/rubygems/commands/list_command.rb +8 -7
  211. data/lib/rubygems/commands/lock_command.rb +1 -3
  212. data/lib/rubygems/commands/mirror_command.rb +0 -2
  213. data/lib/rubygems/commands/open_command.rb +0 -4
  214. data/lib/rubygems/commands/outdated_command.rb +0 -2
  215. data/lib/rubygems/commands/owner_command.rb +9 -3
  216. data/lib/rubygems/commands/pristine_command.rb +11 -5
  217. data/lib/rubygems/commands/push_command.rb +10 -46
  218. data/lib/rubygems/commands/query_command.rb +14 -344
  219. data/lib/rubygems/commands/rdoc_command.rb +0 -2
  220. data/lib/rubygems/commands/search_command.rb +7 -7
  221. data/lib/rubygems/commands/server_command.rb +3 -1
  222. data/lib/rubygems/commands/setup_command.rb +158 -70
  223. data/lib/rubygems/commands/signin_command.rb +0 -2
  224. data/lib/rubygems/commands/signout_command.rb +0 -2
  225. data/lib/rubygems/commands/sources_command.rb +9 -7
  226. data/lib/rubygems/commands/specification_command.rb +8 -4
  227. data/lib/rubygems/commands/stale_command.rb +1 -3
  228. data/lib/rubygems/commands/uninstall_command.rb +2 -4
  229. data/lib/rubygems/commands/unpack_command.rb +1 -3
  230. data/lib/rubygems/commands/update_command.rb +59 -14
  231. data/lib/rubygems/commands/which_command.rb +0 -2
  232. data/lib/rubygems/commands/yank_command.rb +4 -6
  233. data/lib/rubygems/config_file.rb +11 -4
  234. data/lib/rubygems/core_ext/kernel_require.rb +29 -36
  235. data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
  236. data/lib/rubygems/defaults.rb +101 -7
  237. data/lib/rubygems/dependency.rb +3 -8
  238. data/lib/rubygems/dependency_installer.rb +5 -78
  239. data/lib/rubygems/dependency_list.rb +7 -9
  240. data/lib/rubygems/deprecate.rb +46 -1
  241. data/lib/rubygems/doctor.rb +4 -4
  242. data/lib/rubygems/errors.rb +3 -14
  243. data/lib/rubygems/exceptions.rb +2 -33
  244. data/lib/rubygems/ext.rb +6 -6
  245. data/lib/rubygems/ext/build_error.rb +2 -0
  246. data/lib/rubygems/ext/builder.rb +16 -35
  247. data/lib/rubygems/ext/cmake_builder.rb +5 -7
  248. data/lib/rubygems/ext/configure_builder.rb +4 -6
  249. data/lib/rubygems/ext/ext_conf_builder.rb +21 -19
  250. data/lib/rubygems/ext/rake_builder.rb +3 -5
  251. data/lib/rubygems/gem_runner.rb +3 -10
  252. data/lib/rubygems/gemcutter_utilities.rb +91 -15
  253. data/lib/rubygems/indexer.rb +1 -22
  254. data/lib/rubygems/install_update_options.rb +7 -7
  255. data/lib/rubygems/installer.rb +59 -57
  256. data/lib/rubygems/installer_test_case.rb +25 -11
  257. data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
  258. data/lib/rubygems/local_remote_options.rb +1 -1
  259. data/lib/rubygems/mock_gem_ui.rb +0 -6
  260. data/lib/rubygems/name_tuple.rb +3 -7
  261. data/lib/rubygems/openssl.rb +7 -0
  262. data/lib/rubygems/package.rb +14 -25
  263. data/lib/rubygems/package/digest_io.rb +0 -2
  264. data/lib/rubygems/package/file_source.rb +0 -2
  265. data/lib/rubygems/package/io_source.rb +0 -2
  266. data/lib/rubygems/package/old.rb +1 -3
  267. data/lib/rubygems/package/tar_header.rb +4 -6
  268. data/lib/rubygems/package/tar_reader.rb +0 -3
  269. data/lib/rubygems/package/tar_reader/entry.rb +0 -3
  270. data/lib/rubygems/package/tar_test_case.rb +2 -4
  271. data/lib/rubygems/package/tar_writer.rb +2 -12
  272. data/lib/rubygems/package_task.rb +1 -7
  273. data/lib/rubygems/path_support.rb +1 -3
  274. data/lib/rubygems/platform.rb +21 -12
  275. data/lib/rubygems/psych_tree.rb +0 -2
  276. data/lib/rubygems/query_utils.rb +353 -0
  277. data/lib/rubygems/rdoc.rb +0 -12
  278. data/lib/rubygems/remote_fetcher.rb +10 -27
  279. data/lib/rubygems/request.rb +4 -11
  280. data/lib/rubygems/request/connection_pools.rb +1 -5
  281. data/lib/rubygems/request/http_pool.rb +0 -2
  282. data/lib/rubygems/request/https_pool.rb +0 -2
  283. data/lib/rubygems/request_set.rb +5 -7
  284. data/lib/rubygems/request_set/gem_dependency_api.rb +6 -8
  285. data/lib/rubygems/request_set/lockfile.rb +8 -12
  286. data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
  287. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
  288. data/lib/rubygems/requirement.rb +20 -21
  289. data/lib/rubygems/resolver.rb +8 -11
  290. data/lib/rubygems/resolver/activation_request.rb +9 -3
  291. data/lib/rubygems/resolver/api_set.rb +4 -6
  292. data/lib/rubygems/resolver/api_specification.rb +21 -8
  293. data/lib/rubygems/resolver/best_set.rb +0 -2
  294. data/lib/rubygems/resolver/composed_set.rb +3 -5
  295. data/lib/rubygems/resolver/conflict.rb +2 -4
  296. data/lib/rubygems/resolver/current_set.rb +0 -2
  297. data/lib/rubygems/resolver/dependency_request.rb +1 -3
  298. data/lib/rubygems/resolver/git_set.rb +0 -2
  299. data/lib/rubygems/resolver/git_specification.rb +0 -2
  300. data/lib/rubygems/resolver/index_set.rb +1 -3
  301. data/lib/rubygems/resolver/index_specification.rb +11 -2
  302. data/lib/rubygems/resolver/installed_specification.rb +0 -2
  303. data/lib/rubygems/resolver/installer_set.rb +4 -7
  304. data/lib/rubygems/resolver/local_specification.rb +0 -2
  305. data/lib/rubygems/resolver/lock_set.rb +2 -4
  306. data/lib/rubygems/resolver/lock_specification.rb +0 -2
  307. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  308. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  309. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
  310. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
  311. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  312. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
  313. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
  314. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
  315. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
  316. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
  317. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
  318. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
  319. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
  320. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
  321. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  322. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
  323. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  324. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
  325. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  326. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
  327. data/lib/rubygems/resolver/requirement_list.rb +0 -2
  328. data/lib/rubygems/resolver/set.rb +0 -2
  329. data/lib/rubygems/resolver/source_set.rb +0 -2
  330. data/lib/rubygems/resolver/spec_specification.rb +0 -2
  331. data/lib/rubygems/resolver/specification.rb +1 -3
  332. data/lib/rubygems/resolver/stats.rb +0 -2
  333. data/lib/rubygems/resolver/vendor_set.rb +0 -2
  334. data/lib/rubygems/resolver/vendor_specification.rb +0 -2
  335. data/lib/rubygems/s3_uri_signer.rb +2 -8
  336. data/lib/rubygems/safe_yaml.rb +4 -4
  337. data/lib/rubygems/security.rb +27 -34
  338. data/lib/rubygems/security/policy.rb +4 -8
  339. data/lib/rubygems/security/signer.rb +5 -7
  340. data/lib/rubygems/security/trust_dir.rb +1 -3
  341. data/lib/rubygems/server.rb +10 -12
  342. data/lib/rubygems/source.rb +13 -7
  343. data/lib/rubygems/source/git.rb +7 -8
  344. data/lib/rubygems/source/installed.rb +0 -2
  345. data/lib/rubygems/source/local.rb +2 -4
  346. data/lib/rubygems/source/lock.rb +0 -2
  347. data/lib/rubygems/source/specific_file.rb +0 -2
  348. data/lib/rubygems/source/vendor.rb +0 -2
  349. data/lib/rubygems/source_list.rb +6 -7
  350. data/lib/rubygems/spec_fetcher.rb +19 -18
  351. data/lib/rubygems/specification.rb +113 -126
  352. data/lib/rubygems/specification_policy.rb +88 -30
  353. data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
  354. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  355. data/lib/rubygems/stub_specification.rb +1 -5
  356. data/lib/rubygems/syck_hack.rb +0 -2
  357. data/lib/rubygems/test_case.rb +135 -118
  358. data/lib/rubygems/test_utilities.rb +6 -14
  359. data/lib/rubygems/uninstaller.rb +35 -16
  360. data/lib/rubygems/uri_formatter.rb +2 -3
  361. data/lib/rubygems/uri_parser.rb +0 -2
  362. data/lib/rubygems/user_interaction.rb +1 -26
  363. data/lib/rubygems/util.rb +15 -3
  364. data/lib/rubygems/util/licenses.rb +4 -6
  365. data/lib/rubygems/util/list.rb +0 -2
  366. data/lib/rubygems/validator.rb +1 -3
  367. data/lib/rubygems/version.rb +5 -7
  368. data/lib/rubygems/version_option.rb +6 -0
  369. data/rubygems-update.gemspec +2 -2
  370. data/setup.rb +2 -7
  371. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
  372. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  373. data/test/rubygems/rubygems_plugin.rb +0 -2
  374. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  375. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  376. data/test/rubygems/test_bundled_ca.rb +42 -45
  377. data/test/rubygems/test_config.rb +0 -2
  378. data/test/rubygems/test_deprecate.rb +40 -7
  379. data/test/rubygems/test_gem.rb +153 -106
  380. data/test/rubygems/test_gem_available_set.rb +3 -5
  381. data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
  382. data/test/rubygems/test_gem_command.rb +24 -7
  383. data/test/rubygems/test_gem_command_manager.rb +36 -5
  384. data/test/rubygems/test_gem_commands_build_command.rb +250 -15
  385. data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
  386. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  387. data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
  388. data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
  389. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
  390. data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
  391. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  392. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
  393. data/test/rubygems/test_gem_commands_help_command.rb +15 -4
  394. data/test/rubygems/test_gem_commands_info_command.rb +6 -8
  395. data/test/rubygems/test_gem_commands_install_command.rb +32 -34
  396. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  397. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  398. data/test/rubygems/test_gem_commands_mirror.rb +1 -3
  399. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  400. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
  401. data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
  402. data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
  403. data/test/rubygems/test_gem_commands_push_command.rb +38 -9
  404. data/test/rubygems/test_gem_commands_query_command.rb +12 -12
  405. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  406. data/test/rubygems/test_gem_commands_server_command.rb +0 -2
  407. data/test/rubygems/test_gem_commands_setup_command.rb +211 -124
  408. data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
  409. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  410. data/test/rubygems/test_gem_commands_sources_command.rb +99 -3
  411. data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
  412. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  413. data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
  414. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  415. data/test/rubygems/test_gem_commands_update_command.rb +116 -7
  416. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  417. data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
  418. data/test/rubygems/test_gem_config_file.rb +7 -12
  419. data/test/rubygems/test_gem_dependency.rb +0 -2
  420. data/test/rubygems/test_gem_dependency_installer.rb +90 -193
  421. data/test/rubygems/test_gem_dependency_list.rb +10 -12
  422. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  423. data/test/rubygems/test_gem_doctor.rb +28 -2
  424. data/test/rubygems/test_gem_ext_builder.rb +26 -47
  425. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
  426. data/test/rubygems/test_gem_ext_configure_builder.rb +4 -20
  427. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
  428. data/test/rubygems/test_gem_ext_rake_builder.rb +14 -24
  429. data/test/rubygems/test_gem_gem_runner.rb +44 -1
  430. data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
  431. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  432. data/test/rubygems/test_gem_indexer.rb +9 -15
  433. data/test/rubygems/test_gem_install_update_options.rb +14 -4
  434. data/test/rubygems/test_gem_installer.rb +265 -81
  435. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  436. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  437. data/test/rubygems/test_gem_package.rb +41 -39
  438. data/test/rubygems/test_gem_package_old.rb +4 -6
  439. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  440. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  441. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
  442. data/test/rubygems/test_gem_package_tar_writer.rb +9 -6
  443. data/test/rubygems/test_gem_package_task.rb +46 -13
  444. data/test/rubygems/test_gem_path_support.rb +0 -2
  445. data/test/rubygems/test_gem_platform.rb +63 -6
  446. data/test/rubygems/test_gem_rdoc.rb +0 -2
  447. data/test/rubygems/test_gem_remote_fetcher.rb +168 -211
  448. data/test/rubygems/test_gem_request.rb +13 -17
  449. data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
  450. data/test/rubygems/test_gem_request_set.rb +72 -22
  451. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
  452. data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
  453. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
  454. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
  455. data/test/rubygems/test_gem_requirement.rb +10 -4
  456. data/test/rubygems/test_gem_resolver.rb +6 -8
  457. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
  458. data/test/rubygems/test_gem_resolver_api_set.rb +11 -13
  459. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
  460. data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
  461. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  462. data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
  463. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  464. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  465. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
  466. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  467. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
  468. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
  469. data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
  470. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  471. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  472. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  473. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  474. data/test/rubygems/test_gem_resolver_specification.rb +0 -4
  475. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
  476. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  477. data/test/rubygems/test_gem_security.rb +22 -24
  478. data/test/rubygems/test_gem_security_policy.rb +7 -12
  479. data/test/rubygems/test_gem_security_signer.rb +10 -12
  480. data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
  481. data/test/rubygems/test_gem_server.rb +10 -14
  482. data/test/rubygems/test_gem_silent_ui.rb +0 -2
  483. data/test/rubygems/test_gem_source.rb +17 -16
  484. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
  485. data/test/rubygems/test_gem_source_git.rb +12 -13
  486. data/test/rubygems/test_gem_source_installed.rb +7 -9
  487. data/test/rubygems/test_gem_source_list.rb +1 -2
  488. data/test/rubygems/test_gem_source_local.rb +8 -10
  489. data/test/rubygems/test_gem_source_lock.rb +10 -12
  490. data/test/rubygems/test_gem_source_specific_file.rb +7 -9
  491. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  492. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  493. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  494. data/test/rubygems/test_gem_specification.rb +182 -131
  495. data/test/rubygems/test_gem_stream_ui.rb +3 -3
  496. data/test/rubygems/test_gem_stub_specification.rb +4 -7
  497. data/test/rubygems/test_gem_text.rb +1 -3
  498. data/test/rubygems/test_gem_uninstaller.rb +134 -12
  499. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  500. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  501. data/test/rubygems/test_gem_util.rb +7 -7
  502. data/test/rubygems/test_gem_validator.rb +1 -3
  503. data/test/rubygems/test_gem_version.rb +1 -3
  504. data/test/rubygems/test_gem_version_option.rb +1 -3
  505. data/test/rubygems/test_kernel.rb +25 -10
  506. data/test/rubygems/test_project_sanity.rb +7 -2
  507. data/test/rubygems/test_remote_fetch_error.rb +0 -2
  508. data/test/rubygems/test_require.rb +291 -56
  509. metadata +66 -100
  510. data/.bundle/config +0 -2
  511. data/.rubocop.yml +0 -91
  512. data/Gemfile +0 -8
  513. data/Gemfile.lock +0 -43
  514. data/bundler/CODE_OF_CONDUCT.md +0 -136
  515. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  516. data/bundler/man/bundle-add.1.txt +0 -58
  517. data/bundler/man/bundle-binstubs.1.txt +0 -48
  518. data/bundler/man/bundle-cache.1.txt +0 -78
  519. data/bundler/man/bundle-check.1.txt +0 -33
  520. data/bundler/man/bundle-clean.1.txt +0 -26
  521. data/bundler/man/bundle-config.1.txt +0 -528
  522. data/bundler/man/bundle-doctor.1.txt +0 -44
  523. data/bundler/man/bundle-exec.1.txt +0 -178
  524. data/bundler/man/bundle-gem.1.txt +0 -91
  525. data/bundler/man/bundle-info.1.txt +0 -21
  526. data/bundler/man/bundle-init.1.txt +0 -34
  527. data/bundler/man/bundle-inject.1.txt +0 -32
  528. data/bundler/man/bundle-install.1.txt +0 -401
  529. data/bundler/man/bundle-list.1.txt +0 -44
  530. data/bundler/man/bundle-lock.1.txt +0 -93
  531. data/bundler/man/bundle-open.1.txt +0 -29
  532. data/bundler/man/bundle-outdated.1.txt +0 -131
  533. data/bundler/man/bundle-platform.1.txt +0 -57
  534. data/bundler/man/bundle-pristine.1.txt +0 -44
  535. data/bundler/man/bundle-remove.1.txt +0 -34
  536. data/bundler/man/bundle-show.1.txt +0 -27
  537. data/bundler/man/bundle-update.1.txt +0 -390
  538. data/bundler/man/bundle-viz.1.txt +0 -39
  539. data/bundler/man/bundle.1.txt +0 -116
  540. data/bundler/man/gemfile.5.txt +0 -649
  541. data/lib/rubygems/source_local.rb +0 -7
  542. data/lib/rubygems/source_specific_file.rb +0 -6
  543. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  544. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  545. data/lib/ubygems.rb +0 -14
  546. data/tmp/.keep +0 -0
  547. data/util/CL2notes +0 -55
  548. data/util/bisect +0 -10
  549. data/util/ci.sh +0 -62
  550. data/util/cops/deprecations.rb +0 -52
  551. data/util/create_certs.rb +0 -171
  552. data/util/create_certs.sh +0 -27
  553. data/util/create_encrypted_key.rb +0 -16
  554. data/util/generate_spdx_license_list.rb +0 -63
  555. data/util/patch_with_prs.rb +0 -77
  556. data/util/rubocop +0 -8
  557. data/util/update_bundled_ca_certificates.rb +0 -139
  558. data/util/update_changelog.rb +0 -67
@@ -2,14 +2,13 @@
2
2
  require 'rubygems/text'
3
3
 
4
4
  class Gem::Licenses
5
-
6
5
  extend Gem::Text
7
6
 
8
7
  NONSTANDARD = 'Nonstandard'.freeze
9
8
 
10
9
  # Software Package Data Exchange (SPDX) standard open-source software
11
10
  # license identifiers
12
- LICENSE_IDENTIFIERS = %w(
11
+ LICENSE_IDENTIFIERS = %w[
13
12
  0BSD
14
13
  AAL
15
14
  ADSL
@@ -379,10 +378,10 @@ class Gem::Licenses
379
378
  xinetd
380
379
  xpp
381
380
  zlib-acknowledgement
382
- ).freeze
381
+ ].freeze
383
382
 
384
383
  # exception identifiers
385
- EXCEPTION_IDENTIFIERS = %w(
384
+ EXCEPTION_IDENTIFIERS = %w[
386
385
  389-exception
387
386
  Autoconf-exception-2.0
388
387
  Autoconf-exception-3.0
@@ -410,7 +409,7 @@ class Gem::Licenses
410
409
  mif-exception
411
410
  openvpn-openssl-exception
412
411
  u-boot-exception-2.0
413
- ).freeze
412
+ ].freeze
414
413
 
415
414
  REGEXP = %r{
416
415
  \A
@@ -435,5 +434,4 @@ class Gem::Licenses
435
434
  return unless lowest < license.size
436
435
  by_distance[lowest]
437
436
  end
438
-
439
437
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module Gem
3
3
  class List
4
-
5
4
  include Enumerable
6
5
  attr_accessor :value, :tail
7
6
 
@@ -34,6 +33,5 @@ module Gem
34
33
  return List.new(value) unless list
35
34
  List.new value, list
36
35
  end
37
-
38
36
  end
39
37
  end
@@ -12,7 +12,6 @@ require 'rubygems/installer'
12
12
  # Validator performs various gem file and gem database validation
13
13
 
14
14
  class Gem::Validator
15
-
16
15
  include Gem::UserInteraction
17
16
 
18
17
  def initialize # :nodoc:
@@ -60,7 +59,7 @@ class Gem::Validator
60
59
  # TODO needs further cleanup
61
60
 
62
61
  def alien(gems=[])
63
- errors = Hash.new { |h,k| h[k] = {} }
62
+ errors = Hash.new {|h,k| h[k] = {} }
64
63
 
65
64
  Gem::Specification.each do |spec|
66
65
  next unless gems.include? spec.name unless gems.empty?
@@ -141,5 +140,4 @@ class Gem::Validator
141
140
 
142
141
  errors
143
142
  end
144
-
145
143
  end
@@ -150,8 +150,7 @@
150
150
  # a zero to give a sensible result.
151
151
 
152
152
  class Gem::Version
153
-
154
- autoload :Requirement, 'rubygems/requirement'
153
+ autoload :Requirement, File.expand_path('requirement', __dir__)
155
154
 
156
155
  include Comparable
157
156
 
@@ -187,7 +186,7 @@ class Gem::Version
187
186
  # ver3 = Version.create(nil) # -> nil
188
187
 
189
188
  def self.create(input)
190
- if self === input # check yourself before you wreck yourself
189
+ if self === input # check yourself before you wreck yourself
191
190
  input
192
191
  elsif input.nil?
193
192
  nil
@@ -231,7 +230,7 @@ class Gem::Version
231
230
  def bump
232
231
  @@bump[self] ||= begin
233
232
  segments = self.segments
234
- segments.pop while segments.any? { |s| String === s }
233
+ segments.pop while segments.any? {|s| String === s }
235
234
  segments.pop if segments.size > 1
236
235
 
237
236
  segments[-1] = segments[-1].succ
@@ -310,7 +309,7 @@ class Gem::Version
310
309
  def release
311
310
  @@release[self] ||= if prerelease?
312
311
  segments = self.segments
313
- segments.pop while segments.any? { |s| String === s }
312
+ segments.pop while segments.any? {|s| String === s }
314
313
  self.class.new segments.join('.')
315
314
  else
316
315
  self
@@ -327,7 +326,7 @@ class Gem::Version
327
326
  def approximate_recommendation
328
327
  segments = self.segments
329
328
 
330
- segments.pop while segments.any? { |s| String === s }
329
+ segments.pop while segments.any? {|s| String === s }
331
330
  segments.pop while segments.size > 2
332
331
  segments.push 0 while segments.size < 2
333
332
 
@@ -404,5 +403,4 @@ class Gem::Version
404
403
  numeric_segments = string_segments.slice!(0, string_start || string_segments.size)
405
404
  return numeric_segments, string_segments
406
405
  end
407
-
408
406
  end
@@ -73,4 +73,10 @@ module Gem::VersionOption
73
73
  end
74
74
  end
75
75
 
76
+ ##
77
+ # Extract platform given on the command line
78
+
79
+ def get_platform_from_requirements(requirements)
80
+ Gem.platforms[1].to_s if requirements.key? :added_platform
81
+ end
76
82
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.1.0"
5
+ s.version = "3.2.0"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  "History.txt", "LICENSE.txt", "MAINTAINERS.txt",
25
25
  "MIT.txt", "Manifest.txt", "README.md",
26
26
  "UPGRADING.md", "POLICIES.md", "CODE_OF_CONDUCT.md",
27
- "CONTRIBUTING.md", "bundler/CHANGELOG.md", "bundler/CODE_OF_CONDUCT.md",
27
+ "CONTRIBUTING.md", "bundler/CHANGELOG.md",
28
28
  "bundler/LICENSE.md", "bundler/README.md",
29
29
  "hide_lib_for_update/note.txt", *Dir["bundler/man/*.1"]
30
30
  ]
data/setup.rb CHANGED
@@ -11,12 +11,7 @@ if ENV['RUBYOPT'] or defined? Gem
11
11
  ENV.delete 'RUBYOPT'
12
12
 
13
13
  require 'rbconfig'
14
- config = defined?(RbConfig) ? RbConfig : Config
15
-
16
- ruby = File.join config::CONFIG['bindir'], config::CONFIG['ruby_install_name']
17
- ruby << config::CONFIG['EXEEXT']
18
-
19
- cmd = [ruby, 'setup.rb', *ARGV].compact
14
+ cmd = [RbConfig.ruby, 'setup.rb', *ARGV].compact
20
15
  cmd[1,0] = "--disable-gems"
21
16
 
22
17
  exec(*cmd)
@@ -24,7 +19,7 @@ end
24
19
 
25
20
  Dir.chdir File.dirname(__FILE__)
26
21
 
27
- $:.unshift 'lib'
22
+ $:.unshift File.expand_path('lib')
28
23
  require 'rubygems'
29
24
  require 'rubygems/gem_runner'
30
25
  require 'rubygems/exceptions'
@@ -1,6 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  class TestGem
3
-
4
3
  TEST_PLUGIN_LOAD = :loaded
5
-
6
4
  end
@@ -1,6 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  class Gem::Commands::CrashCommand < Gem::Command
3
-
4
3
  raise "crash"
5
-
6
4
  end
@@ -11,7 +11,6 @@ module Gem::Commands
11
11
  end
12
12
 
13
13
  class Gem::Commands::InterruptCommand < Gem::Command
14
-
15
14
  def initialize
16
15
  super('interrupt', 'Raises an Interrupt Exception', {})
17
16
  end
@@ -19,7 +18,6 @@ class Gem::Commands::InterruptCommand < Gem::Command
19
18
  def execute
20
19
  raise Interrupt, "Interrupt exception"
21
20
  end
22
-
23
21
  end
24
22
 
25
23
  Gem::CommandManager.instance.register_command :interrupt
@@ -1,5 +1,3 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
1
  Gem::Specification.new do |s|
4
2
  s.name = "bar"
5
3
  s.version = "0.0.2"
@@ -0,0 +1,12 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "rubyforge"
3
+ s.version = "0.0.1"
4
+ s.platform = "ruby"
5
+ s.require_paths = ["lib"]
6
+ s.summary = "A very bar gem"
7
+ s.authors = ["unknown"]
8
+ s.license = 'MIT'
9
+ s.homepage = 'http://example.com'
10
+ s.files = ['README.md']
11
+ s.rubyforge_project = 'abc'
12
+ end
@@ -1,6 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
  require 'rubygems/test_case'
3
- require 'net/https'
3
+ require 'net/http'
4
+ require 'rubygems/openssl'
5
+
6
+ unless Gem::HAVE_OPENSSL
7
+ warn 'Skipping bundled certificates tests. openssl not found.'
8
+ end
9
+
4
10
  require 'rubygems/request'
5
11
 
6
12
  # = Testing Bundled CA
@@ -8,56 +14,47 @@ require 'rubygems/request'
8
14
  # The tested hosts are explained in detail here: https://github.com/rubygems/rubygems/commit/5e16a5428f973667cabfa07e94ff939e7a83ebd9
9
15
  #
10
16
 
11
- if ENV["CI"] || ENV["TEST_SSL"]
12
- class TestBundledCA < Gem::TestCase
13
-
14
- THIS_FILE = File.expand_path __FILE__
15
-
16
- def bundled_certificate_store
17
- store = OpenSSL::X509::Store.new
17
+ class TestBundledCA < Gem::TestCase
18
+ def bundled_certificate_store
19
+ store = OpenSSL::X509::Store.new
18
20
 
19
- ssl_cert_glob =
20
- File.expand_path '../../../lib/rubygems/ssl_certs/*/*.pem', THIS_FILE
21
-
22
- Dir[ssl_cert_glob].each do |ssl_cert|
23
- store.add_file ssl_cert
24
- end
25
-
26
- store
21
+ Gem::Request.get_cert_files.each do |ssl_cert|
22
+ store.add_file ssl_cert
27
23
  end
28
24
 
29
- def assert_https(host)
30
- if self.respond_to? :_assertions # minitest <= 4
31
- self._assertions += 1
32
- else # minitest >= 5
33
- self.assertions += 1
34
- end
35
- http = Net::HTTP.new(host, 443)
36
- http.use_ssl = true
37
- http.verify_mode = OpenSSL::SSL::VERIFY_PEER
38
- http.cert_store = bundled_certificate_store
39
- http.get('/')
40
- rescue Errno::ENOENT, Errno::ETIMEDOUT, SocketError
41
- skip "#{host} seems offline, I can't tell whether ssl would work."
42
- rescue OpenSSL::SSL::SSLError => e
43
- # Only fail for certificate verification errors
44
- if e.message =~ /certificate verify failed/
45
- flunk "#{host} is not verifiable using the included certificates. Error was: #{e.message}"
46
- end
47
- raise
48
- end
25
+ store
26
+ end
49
27
 
50
- def test_accessing_rubygems
51
- assert_https('rubygems.org')
28
+ def assert_https(host)
29
+ self.assertions += 1
30
+ http = Net::HTTP.new(host, 443)
31
+ http.use_ssl = true
32
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
33
+ http.cert_store = bundled_certificate_store
34
+ http.get('/')
35
+ rescue Errno::ENOENT, Errno::ETIMEDOUT, SocketError
36
+ skip "#{host} seems offline, I can't tell whether ssl would work."
37
+ rescue OpenSSL::SSL::SSLError => e
38
+ # Only fail for certificate verification errors
39
+ if e.message =~ /certificate verify failed/
40
+ flunk "#{host} is not verifiable using the included certificates. Error was: #{e.message}"
52
41
  end
42
+ raise
43
+ end
53
44
 
54
- def test_accessing_fastly
55
- assert_https('rubygems.global.ssl.fastly.net')
56
- end
45
+ def test_accessing_rubygems
46
+ assert_https('rubygems.org')
47
+ end
57
48
 
58
- def test_accessing_new_index
59
- assert_https('fastly.rubygems.org')
60
- end
49
+ def test_accessing_www_rubygems
50
+ assert_https('www.rubygems.org')
51
+ end
61
52
 
53
+ def test_accessing_staging
54
+ assert_https('staging.rubygems.org')
62
55
  end
63
- end
56
+
57
+ def test_accessing_new_index
58
+ assert_https('index.rubygems.org')
59
+ end
60
+ end if Gem::HAVE_OPENSSL
@@ -4,7 +4,6 @@ require 'rubygems'
4
4
  require 'shellwords'
5
5
 
6
6
  class TestConfig < Gem::TestCase
7
-
8
7
  def test_datadir
9
8
  util_make_gems
10
9
  spec = Gem::Specification.find_by_name("a")
@@ -25,5 +24,4 @@ class TestConfig < Gem::TestCase
25
24
  assert_equal(Gem.ruby, ruby)
26
25
  assert_match(/\/bad_rake.rb\z/, rake)
27
26
  end
28
-
29
27
  end
@@ -1,15 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
  require 'rubygems/test_case'
3
- # require 'rubygems/builder'
4
- # require 'rubygems/package'
5
3
  require 'rubygems/deprecate'
6
4
 
7
5
  class TestDeprecate < Gem::TestCase
8
-
9
6
  def setup
10
7
  super
11
8
 
12
- # Gem::Deprecate.saved_warnings.clear
13
9
  @original_skip = Gem::Deprecate.skip
14
10
  Gem::Deprecate.skip = false
15
11
  end
@@ -17,7 +13,6 @@ class TestDeprecate < Gem::TestCase
17
13
  def teardown
18
14
  super
19
15
 
20
- # Gem::Deprecate.saved_warnings.clear
21
16
  Gem::Deprecate.skip = @original_skip
22
17
  end
23
18
 
@@ -45,7 +40,18 @@ class TestDeprecate < Gem::TestCase
45
40
  end
46
41
 
47
42
  class Thing
43
+ extend Gem::Deprecate
44
+ attr_accessor :message
45
+ def foo
46
+ @message = "foo"
47
+ end
48
+ def bar
49
+ @message = "bar"
50
+ end
51
+ rubygems_deprecate :foo, :bar
52
+ end
48
53
 
54
+ class OtherThing
49
55
  extend Gem::Deprecate
50
56
  attr_accessor :message
51
57
  def foo
@@ -55,7 +61,6 @@ class TestDeprecate < Gem::TestCase
55
61
  @message = "bar"
56
62
  end
57
63
  deprecate :foo, :bar, 2099, 3
58
-
59
64
  end
60
65
 
61
66
  def test_deprecated_method_calls_the_old_method
@@ -74,7 +79,35 @@ class TestDeprecate < Gem::TestCase
74
79
 
75
80
  assert_equal "", out
76
81
  assert_match(/Thing#foo is deprecated; use bar instead\./, err)
77
- assert_match(/on or after 2099-03-01/, err)
82
+ assert_match(/in Rubygems [0-9]+/, err)
83
+ end
84
+
85
+ def test_rubygems_deprecate_command
86
+ require 'rubygems/command'
87
+ foo_command = Class.new(Gem::Command) do
88
+ extend Gem::Deprecate
89
+
90
+ rubygems_deprecate_command
91
+
92
+ def execute
93
+ puts "pew pew!"
94
+ end
95
+ end
96
+
97
+ Gem::Commands.send(:const_set, :FooCommand, foo_command)
98
+ assert Gem::Commands::FooCommand.new("foo").deprecated?
99
+ ensure
100
+ Gem::Commands.send(:remove_const, :FooCommand)
78
101
  end
79
102
 
103
+ def test_deprecated_method_outputs_a_warning_old_way
104
+ out, err = capture_io do
105
+ thing = OtherThing.new
106
+ thing.foo
107
+ end
108
+
109
+ assert_equal "", out
110
+ assert_match(/Thing#foo is deprecated; use bar instead\./, err)
111
+ assert_match(/on or after 2099-03-01/, err)
112
+ end
80
113
  end