rubygems-update 3.1.2 → 3.2.6

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 (562) hide show
  1. checksums.yaml +4 -4
  2. data/{History.txt → CHANGELOG.md} +756 -489
  3. data/CODE_OF_CONDUCT.md +55 -19
  4. data/CONTRIBUTING.md +25 -11
  5. data/Manifest.txt +75 -104
  6. data/POLICIES.md +6 -12
  7. data/README.md +5 -5
  8. data/Rakefile +64 -92
  9. data/bin/update_rubygems +1 -1
  10. data/bundler/CHANGELOG.md +1636 -1422
  11. data/bundler/README.md +6 -8
  12. data/bundler/UPGRADING.md +18 -32
  13. data/bundler/bundler.gemspec +4 -4
  14. data/bundler/exe/bundle +3 -0
  15. data/bundler/lib/bundler.rb +32 -8
  16. data/bundler/lib/bundler/build_metadata.rb +4 -12
  17. data/bundler/lib/bundler/cli.rb +55 -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 +86 -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 +16 -13
  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 +3 -1
  39. data/bundler/lib/bundler/compact_index_client.rb +1 -1
  40. data/bundler/lib/bundler/compact_index_client/cache.rb +6 -14
  41. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  42. data/bundler/lib/bundler/compact_index_client/updater.rb +5 -13
  43. data/bundler/lib/bundler/definition.rb +66 -82
  44. data/bundler/lib/bundler/dep_proxy.rb +16 -9
  45. data/bundler/lib/bundler/dependency.rb +3 -10
  46. data/bundler/lib/bundler/dsl.rb +5 -9
  47. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  48. data/bundler/lib/bundler/env.rb +1 -1
  49. data/bundler/lib/bundler/environment_preserver.rb +26 -2
  50. data/bundler/lib/bundler/errors.rb +1 -0
  51. data/bundler/lib/bundler/feature_flag.rb +0 -3
  52. data/bundler/lib/bundler/fetcher.rb +4 -3
  53. data/bundler/lib/bundler/fetcher/base.rb +1 -1
  54. data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
  55. data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
  56. data/bundler/lib/bundler/fetcher/index.rb +3 -4
  57. data/bundler/lib/bundler/friendly_errors.rb +22 -13
  58. data/bundler/lib/bundler/gem_helper.rb +33 -19
  59. data/bundler/lib/bundler/gem_helpers.rb +36 -25
  60. data/bundler/lib/bundler/gem_version_promoter.rb +4 -4
  61. data/bundler/lib/bundler/graph.rb +1 -1
  62. data/bundler/lib/bundler/index.rb +6 -2
  63. data/bundler/lib/bundler/injector.rb +22 -4
  64. data/bundler/lib/bundler/inline.rb +2 -2
  65. data/bundler/lib/bundler/installer.rb +35 -32
  66. data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
  67. data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
  68. data/bundler/lib/bundler/installer/standalone.rb +2 -2
  69. data/bundler/lib/bundler/lazy_specification.rb +35 -11
  70. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  71. data/bundler/lib/bundler/lockfile_parser.rb +1 -1
  72. data/bundler/lib/bundler/man/.document +1 -0
  73. data/bundler/{man → lib/bundler/man}/bundle-add.1 +1 -1
  74. data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
  75. data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
  76. data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
  77. data/bundler/{man → lib/bundler/man}/bundle-cache.1 +1 -1
  78. data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
  79. data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
  80. data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  81. data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
  82. data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
  83. data/bundler/{man → lib/bundler/man}/bundle-config.1 +16 -25
  84. data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
  85. data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
  86. data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  87. data/bundler/{man → lib/bundler/man}/bundle-exec.1 +1 -1
  88. data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
  89. data/bundler/{man → lib/bundler/man}/bundle-gem.1 +25 -3
  90. data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
  91. data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
  92. data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  93. data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
  94. data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
  95. data/bundler/{man → lib/bundler/man}/bundle-inject.1 +1 -1
  96. data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
  97. data/bundler/{man → lib/bundler/man}/bundle-install.1 +30 -3
  98. data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
  99. data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
  100. data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  101. data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
  102. data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  103. data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
  104. data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
  105. data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
  106. data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
  107. data/bundler/{man → lib/bundler/man}/bundle-platform.1 +1 -1
  108. data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
  109. data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
  110. data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  111. data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
  112. data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  113. data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
  114. data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
  115. data/bundler/{man → lib/bundler/man}/bundle-update.1 +1 -1
  116. data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
  117. data/bundler/{man → lib/bundler/man}/bundle-viz.1 +1 -1
  118. data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
  119. data/bundler/{man → lib/bundler/man}/bundle.1 +1 -1
  120. data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
  121. data/bundler/{man → lib/bundler/man}/gemfile.5 +4 -4
  122. data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
  123. data/bundler/{man → lib/bundler/man}/index.txt +0 -0
  124. data/bundler/lib/bundler/mirror.rb +2 -2
  125. data/bundler/lib/bundler/plugin.rb +30 -5
  126. data/bundler/lib/bundler/plugin/api/source.rb +1 -1
  127. data/bundler/lib/bundler/plugin/dsl.rb +1 -1
  128. data/bundler/lib/bundler/plugin/index.rb +10 -1
  129. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  130. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
  131. data/bundler/lib/bundler/plugin/source_list.rb +1 -1
  132. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  133. data/bundler/lib/bundler/remote_specification.rb +5 -2
  134. data/bundler/lib/bundler/resolver.rb +43 -19
  135. data/bundler/lib/bundler/resolver/spec_group.rb +39 -24
  136. data/bundler/lib/bundler/retry.rb +1 -1
  137. data/bundler/lib/bundler/ruby_version.rb +1 -1
  138. data/bundler/lib/bundler/rubygems_ext.rb +69 -9
  139. data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
  140. data/bundler/lib/bundler/rubygems_integration.rb +26 -61
  141. data/bundler/lib/bundler/runtime.rb +4 -14
  142. data/bundler/lib/bundler/settings.rb +49 -46
  143. data/bundler/lib/bundler/shared_helpers.rb +2 -2
  144. data/bundler/lib/bundler/similarity_detector.rb +1 -1
  145. data/bundler/lib/bundler/source.rb +1 -1
  146. data/bundler/lib/bundler/source/git.rb +23 -21
  147. data/bundler/lib/bundler/source/git/git_proxy.rb +82 -80
  148. data/bundler/lib/bundler/source/path.rb +7 -3
  149. data/bundler/lib/bundler/source/path/installer.rb +10 -10
  150. data/bundler/lib/bundler/source/rubygems.rb +23 -17
  151. data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
  152. data/bundler/lib/bundler/source_list.rb +2 -2
  153. data/bundler/lib/bundler/spec_set.rb +8 -10
  154. data/bundler/lib/bundler/stub_specification.rb +17 -7
  155. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  156. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
  157. data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
  158. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
  159. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  160. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  161. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  162. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
  163. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  164. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  165. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  166. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +15 -7
  167. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  168. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  169. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  170. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  171. data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  172. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  173. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  174. data/bundler/lib/bundler/ui/shell.rb +5 -5
  175. data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
  176. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
  177. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
  178. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
  179. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
  180. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  181. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +48 -46
  182. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -208
  183. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
  184. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  185. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  186. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  187. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  188. data/bundler/lib/bundler/vendored_persistent.rb +0 -7
  189. data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
  190. data/bundler/lib/bundler/version.rb +1 -1
  191. data/bundler/lib/bundler/worker.rb +1 -1
  192. data/bundler/lib/bundler/yaml_serializer.rb +1 -1
  193. data/lib/rubygems.rb +138 -187
  194. data/lib/rubygems/available_set.rb +4 -6
  195. data/lib/rubygems/basic_specification.rb +12 -10
  196. data/lib/rubygems/bundler_version_finder.rb +14 -9
  197. data/lib/rubygems/command.rb +17 -17
  198. data/lib/rubygems/command_manager.rb +5 -6
  199. data/lib/rubygems/commands/build_command.rb +40 -20
  200. data/lib/rubygems/commands/cert_command.rb +2 -10
  201. data/lib/rubygems/commands/check_command.rb +0 -2
  202. data/lib/rubygems/commands/cleanup_command.rb +11 -7
  203. data/lib/rubygems/commands/contents_command.rb +4 -6
  204. data/lib/rubygems/commands/dependency_command.rb +6 -8
  205. data/lib/rubygems/commands/environment_command.rb +1 -3
  206. data/lib/rubygems/commands/fetch_command.rb +2 -4
  207. data/lib/rubygems/commands/generate_index_command.rb +0 -2
  208. data/lib/rubygems/commands/help_command.rb +4 -4
  209. data/lib/rubygems/commands/info_command.rb +8 -5
  210. data/lib/rubygems/commands/install_command.rb +3 -5
  211. data/lib/rubygems/commands/list_command.rb +8 -7
  212. data/lib/rubygems/commands/lock_command.rb +1 -3
  213. data/lib/rubygems/commands/mirror_command.rb +0 -2
  214. data/lib/rubygems/commands/open_command.rb +0 -4
  215. data/lib/rubygems/commands/outdated_command.rb +0 -2
  216. data/lib/rubygems/commands/owner_command.rb +9 -4
  217. data/lib/rubygems/commands/pristine_command.rb +11 -5
  218. data/lib/rubygems/commands/push_command.rb +10 -47
  219. data/lib/rubygems/commands/query_command.rb +14 -344
  220. data/lib/rubygems/commands/rdoc_command.rb +0 -2
  221. data/lib/rubygems/commands/search_command.rb +7 -7
  222. data/lib/rubygems/commands/server_command.rb +3 -1
  223. data/lib/rubygems/commands/setup_command.rb +101 -74
  224. data/lib/rubygems/commands/signin_command.rb +0 -2
  225. data/lib/rubygems/commands/signout_command.rb +0 -2
  226. data/lib/rubygems/commands/sources_command.rb +9 -7
  227. data/lib/rubygems/commands/specification_command.rb +8 -4
  228. data/lib/rubygems/commands/stale_command.rb +1 -3
  229. data/lib/rubygems/commands/uninstall_command.rb +2 -4
  230. data/lib/rubygems/commands/unpack_command.rb +1 -3
  231. data/lib/rubygems/commands/update_command.rb +59 -14
  232. data/lib/rubygems/commands/which_command.rb +0 -2
  233. data/lib/rubygems/commands/yank_command.rb +4 -7
  234. data/lib/rubygems/config_file.rb +11 -4
  235. data/lib/rubygems/core_ext/kernel_require.rb +29 -36
  236. data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
  237. data/lib/rubygems/defaults.rb +101 -7
  238. data/lib/rubygems/dependency.rb +3 -8
  239. data/lib/rubygems/dependency_installer.rb +6 -78
  240. data/lib/rubygems/dependency_list.rb +7 -9
  241. data/lib/rubygems/deprecate.rb +46 -1
  242. data/lib/rubygems/doctor.rb +4 -4
  243. data/lib/rubygems/errors.rb +3 -14
  244. data/lib/rubygems/exceptions.rb +2 -33
  245. data/lib/rubygems/ext.rb +6 -6
  246. data/lib/rubygems/ext/build_error.rb +2 -0
  247. data/lib/rubygems/ext/builder.rb +21 -39
  248. data/lib/rubygems/ext/cmake_builder.rb +6 -9
  249. data/lib/rubygems/ext/configure_builder.rb +5 -8
  250. data/lib/rubygems/ext/ext_conf_builder.rb +21 -19
  251. data/lib/rubygems/ext/rake_builder.rb +4 -6
  252. data/lib/rubygems/gem_runner.rb +3 -10
  253. data/lib/rubygems/gemcutter_utilities.rb +102 -21
  254. data/lib/rubygems/indexer.rb +1 -22
  255. data/lib/rubygems/install_update_options.rb +7 -7
  256. data/lib/rubygems/installer.rb +59 -80
  257. data/lib/rubygems/installer_test_case.rb +25 -11
  258. data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
  259. data/lib/rubygems/local_remote_options.rb +1 -1
  260. data/lib/rubygems/mock_gem_ui.rb +0 -6
  261. data/lib/rubygems/name_tuple.rb +3 -7
  262. data/lib/rubygems/openssl.rb +7 -0
  263. data/lib/rubygems/package.rb +14 -25
  264. data/lib/rubygems/package/digest_io.rb +0 -2
  265. data/lib/rubygems/package/file_source.rb +0 -2
  266. data/lib/rubygems/package/io_source.rb +0 -2
  267. data/lib/rubygems/package/old.rb +1 -3
  268. data/lib/rubygems/package/tar_header.rb +4 -6
  269. data/lib/rubygems/package/tar_reader.rb +0 -3
  270. data/lib/rubygems/package/tar_reader/entry.rb +0 -3
  271. data/lib/rubygems/package/tar_test_case.rb +2 -4
  272. data/lib/rubygems/package/tar_writer.rb +2 -12
  273. data/lib/rubygems/package_task.rb +1 -7
  274. data/lib/rubygems/path_support.rb +1 -3
  275. data/lib/rubygems/platform.rb +21 -16
  276. data/lib/rubygems/psych_tree.rb +0 -2
  277. data/lib/rubygems/query_utils.rb +353 -0
  278. data/lib/rubygems/rdoc.rb +0 -12
  279. data/lib/rubygems/remote_fetcher.rb +14 -29
  280. data/lib/rubygems/request.rb +4 -11
  281. data/lib/rubygems/request/connection_pools.rb +1 -5
  282. data/lib/rubygems/request/http_pool.rb +0 -2
  283. data/lib/rubygems/request/https_pool.rb +0 -2
  284. data/lib/rubygems/request_set.rb +7 -20
  285. data/lib/rubygems/request_set/gem_dependency_api.rb +6 -8
  286. data/lib/rubygems/request_set/lockfile.rb +8 -12
  287. data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
  288. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
  289. data/lib/rubygems/requirement.rb +21 -22
  290. data/lib/rubygems/resolver.rb +14 -12
  291. data/lib/rubygems/resolver/activation_request.rb +9 -3
  292. data/lib/rubygems/resolver/api_set.rb +31 -24
  293. data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
  294. data/lib/rubygems/resolver/api_specification.rb +24 -10
  295. data/lib/rubygems/resolver/best_set.rb +2 -4
  296. data/lib/rubygems/resolver/composed_set.rb +3 -5
  297. data/lib/rubygems/resolver/conflict.rb +2 -4
  298. data/lib/rubygems/resolver/current_set.rb +0 -2
  299. data/lib/rubygems/resolver/dependency_request.rb +1 -3
  300. data/lib/rubygems/resolver/git_set.rb +0 -2
  301. data/lib/rubygems/resolver/git_specification.rb +0 -2
  302. data/lib/rubygems/resolver/index_set.rb +1 -3
  303. data/lib/rubygems/resolver/index_specification.rb +29 -2
  304. data/lib/rubygems/resolver/installed_specification.rb +0 -2
  305. data/lib/rubygems/resolver/installer_set.rb +60 -13
  306. data/lib/rubygems/resolver/local_specification.rb +0 -2
  307. data/lib/rubygems/resolver/lock_set.rb +2 -4
  308. data/lib/rubygems/resolver/lock_specification.rb +0 -2
  309. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  310. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  311. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
  312. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
  313. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  314. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
  315. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
  316. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
  317. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
  318. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
  319. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
  320. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
  321. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
  322. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
  323. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  324. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
  325. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  326. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
  327. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  328. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
  329. data/lib/rubygems/resolver/requirement_list.rb +0 -2
  330. data/lib/rubygems/resolver/set.rb +0 -2
  331. data/lib/rubygems/resolver/source_set.rb +0 -2
  332. data/lib/rubygems/resolver/spec_specification.rb +14 -2
  333. data/lib/rubygems/resolver/specification.rb +13 -3
  334. data/lib/rubygems/resolver/stats.rb +0 -2
  335. data/lib/rubygems/resolver/vendor_set.rb +0 -2
  336. data/lib/rubygems/resolver/vendor_specification.rb +0 -2
  337. data/lib/rubygems/s3_uri_signer.rb +2 -8
  338. data/lib/rubygems/safe_yaml.rb +4 -4
  339. data/lib/rubygems/security.rb +27 -34
  340. data/lib/rubygems/security/policy.rb +4 -8
  341. data/lib/rubygems/security/signer.rb +5 -7
  342. data/lib/rubygems/security/trust_dir.rb +1 -3
  343. data/lib/rubygems/server.rb +16 -13
  344. data/lib/rubygems/source.rb +23 -12
  345. data/lib/rubygems/source/git.rb +7 -8
  346. data/lib/rubygems/source/installed.rb +0 -2
  347. data/lib/rubygems/source/local.rb +2 -4
  348. data/lib/rubygems/source/lock.rb +0 -2
  349. data/lib/rubygems/source/specific_file.rb +0 -2
  350. data/lib/rubygems/source/vendor.rb +0 -2
  351. data/lib/rubygems/source_list.rb +4 -7
  352. data/lib/rubygems/spec_fetcher.rb +19 -18
  353. data/lib/rubygems/specification.rb +122 -131
  354. data/lib/rubygems/specification_policy.rb +88 -30
  355. data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
  356. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  357. data/lib/rubygems/stub_specification.rb +1 -5
  358. data/lib/rubygems/syck_hack.rb +0 -2
  359. data/lib/rubygems/test_case.rb +120 -134
  360. data/lib/rubygems/test_utilities.rb +12 -19
  361. data/lib/rubygems/uninstaller.rb +35 -16
  362. data/lib/rubygems/uri_formatter.rb +2 -3
  363. data/lib/rubygems/uri_parser.rb +0 -2
  364. data/lib/rubygems/user_interaction.rb +1 -26
  365. data/lib/rubygems/util.rb +15 -3
  366. data/lib/rubygems/util/licenses.rb +4 -6
  367. data/lib/rubygems/util/list.rb +0 -2
  368. data/lib/rubygems/validator.rb +1 -3
  369. data/lib/rubygems/version.rb +5 -7
  370. data/lib/rubygems/version_option.rb +6 -0
  371. data/rubygems-update.gemspec +3 -3
  372. data/setup.rb +2 -7
  373. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  374. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
  375. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  376. data/test/rubygems/rubygems_plugin.rb +0 -2
  377. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  378. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  379. data/test/rubygems/test_bundled_ca.rb +42 -45
  380. data/test/rubygems/test_config.rb +0 -2
  381. data/test/rubygems/test_deprecate.rb +40 -7
  382. data/test/rubygems/test_gem.rb +156 -99
  383. data/test/rubygems/test_gem_available_set.rb +3 -5
  384. data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
  385. data/test/rubygems/test_gem_command.rb +24 -7
  386. data/test/rubygems/test_gem_command_manager.rb +36 -5
  387. data/test/rubygems/test_gem_commands_build_command.rb +250 -15
  388. data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
  389. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  390. data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
  391. data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
  392. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
  393. data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
  394. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  395. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
  396. data/test/rubygems/test_gem_commands_help_command.rb +15 -4
  397. data/test/rubygems/test_gem_commands_info_command.rb +6 -8
  398. data/test/rubygems/test_gem_commands_install_command.rb +163 -34
  399. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  400. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  401. data/test/rubygems/test_gem_commands_mirror.rb +1 -3
  402. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  403. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
  404. data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
  405. data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
  406. data/test/rubygems/test_gem_commands_push_command.rb +77 -9
  407. data/test/rubygems/test_gem_commands_query_command.rb +12 -12
  408. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  409. data/test/rubygems/test_gem_commands_server_command.rb +0 -2
  410. data/test/rubygems/test_gem_commands_setup_command.rb +160 -135
  411. data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
  412. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  413. data/test/rubygems/test_gem_commands_sources_command.rb +99 -3
  414. data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
  415. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  416. data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
  417. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  418. data/test/rubygems/test_gem_commands_update_command.rb +116 -7
  419. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  420. data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
  421. data/test/rubygems/test_gem_config_file.rb +7 -12
  422. data/test/rubygems/test_gem_dependency.rb +0 -2
  423. data/test/rubygems/test_gem_dependency_installer.rb +116 -239
  424. data/test/rubygems/test_gem_dependency_list.rb +10 -12
  425. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  426. data/test/rubygems/test_gem_doctor.rb +28 -2
  427. data/test/rubygems/test_gem_ext_builder.rb +50 -47
  428. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -25
  429. data/test/rubygems/test_gem_ext_configure_builder.rb +6 -22
  430. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
  431. data/test/rubygems/test_gem_ext_rake_builder.rb +39 -24
  432. data/test/rubygems/test_gem_gem_runner.rb +44 -1
  433. data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
  434. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  435. data/test/rubygems/test_gem_indexer.rb +9 -15
  436. data/test/rubygems/test_gem_install_update_options.rb +14 -4
  437. data/test/rubygems/test_gem_installer.rb +258 -115
  438. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  439. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  440. data/test/rubygems/test_gem_package.rb +41 -39
  441. data/test/rubygems/test_gem_package_old.rb +4 -6
  442. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  443. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  444. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
  445. data/test/rubygems/test_gem_package_tar_writer.rb +9 -6
  446. data/test/rubygems/test_gem_package_task.rb +46 -13
  447. data/test/rubygems/test_gem_path_support.rb +0 -2
  448. data/test/rubygems/test_gem_platform.rb +71 -6
  449. data/test/rubygems/test_gem_rdoc.rb +0 -2
  450. data/test/rubygems/test_gem_remote_fetcher.rb +169 -212
  451. data/test/rubygems/test_gem_request.rb +13 -17
  452. data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
  453. data/test/rubygems/test_gem_request_set.rb +72 -22
  454. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
  455. data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
  456. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
  457. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
  458. data/test/rubygems/test_gem_requirement.rb +43 -3
  459. data/test/rubygems/test_gem_resolver.rb +6 -8
  460. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
  461. data/test/rubygems/test_gem_resolver_api_set.rb +60 -59
  462. data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
  463. data/test/rubygems/test_gem_resolver_best_set.rb +27 -6
  464. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  465. data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
  466. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  467. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  468. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
  469. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  470. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
  471. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
  472. data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
  473. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  474. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  475. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  476. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  477. data/test/rubygems/test_gem_resolver_specification.rb +0 -4
  478. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
  479. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  480. data/test/rubygems/test_gem_security.rb +22 -24
  481. data/test/rubygems/test_gem_security_policy.rb +7 -12
  482. data/test/rubygems/test_gem_security_signer.rb +10 -12
  483. data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
  484. data/test/rubygems/test_gem_server.rb +10 -14
  485. data/test/rubygems/test_gem_silent_ui.rb +0 -2
  486. data/test/rubygems/test_gem_source.rb +19 -18
  487. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
  488. data/test/rubygems/test_gem_source_git.rb +12 -13
  489. data/test/rubygems/test_gem_source_installed.rb +7 -9
  490. data/test/rubygems/test_gem_source_list.rb +1 -2
  491. data/test/rubygems/test_gem_source_local.rb +8 -10
  492. data/test/rubygems/test_gem_source_lock.rb +10 -12
  493. data/test/rubygems/test_gem_source_specific_file.rb +7 -9
  494. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  495. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  496. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  497. data/test/rubygems/test_gem_specification.rb +188 -131
  498. data/test/rubygems/test_gem_stream_ui.rb +3 -3
  499. data/test/rubygems/test_gem_stub_specification.rb +4 -7
  500. data/test/rubygems/test_gem_text.rb +1 -3
  501. data/test/rubygems/test_gem_uninstaller.rb +134 -12
  502. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  503. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  504. data/test/rubygems/test_gem_util.rb +7 -7
  505. data/test/rubygems/test_gem_validator.rb +1 -3
  506. data/test/rubygems/test_gem_version.rb +1 -3
  507. data/test/rubygems/test_gem_version_option.rb +1 -3
  508. data/test/rubygems/test_kernel.rb +25 -10
  509. data/test/rubygems/test_project_sanity.rb +7 -2
  510. data/test/rubygems/test_remote_fetch_error.rb +0 -2
  511. data/test/rubygems/test_require.rb +291 -56
  512. data/test/test_changelog_generator.rb +17 -0
  513. metadata +79 -133
  514. data/.bundle/config +0 -2
  515. data/.rubocop.yml +0 -91
  516. data/Gemfile +0 -8
  517. data/Gemfile.lock +0 -43
  518. data/bundler/CODE_OF_CONDUCT.md +0 -136
  519. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  520. data/bundler/man/bundle-add.1.txt +0 -58
  521. data/bundler/man/bundle-binstubs.1.txt +0 -48
  522. data/bundler/man/bundle-cache.1.txt +0 -78
  523. data/bundler/man/bundle-check.1.txt +0 -33
  524. data/bundler/man/bundle-clean.1.txt +0 -26
  525. data/bundler/man/bundle-config.1.txt +0 -528
  526. data/bundler/man/bundle-doctor.1.txt +0 -44
  527. data/bundler/man/bundle-exec.1.txt +0 -178
  528. data/bundler/man/bundle-gem.1.txt +0 -91
  529. data/bundler/man/bundle-info.1.txt +0 -21
  530. data/bundler/man/bundle-init.1.txt +0 -34
  531. data/bundler/man/bundle-inject.1.txt +0 -32
  532. data/bundler/man/bundle-install.1.txt +0 -401
  533. data/bundler/man/bundle-list.1.txt +0 -43
  534. data/bundler/man/bundle-lock.1.txt +0 -93
  535. data/bundler/man/bundle-open.1.txt +0 -29
  536. data/bundler/man/bundle-outdated.1.txt +0 -131
  537. data/bundler/man/bundle-platform.1.txt +0 -57
  538. data/bundler/man/bundle-pristine.1.txt +0 -44
  539. data/bundler/man/bundle-remove.1.txt +0 -34
  540. data/bundler/man/bundle-show.1.txt +0 -27
  541. data/bundler/man/bundle-update.1.txt +0 -390
  542. data/bundler/man/bundle-viz.1.txt +0 -39
  543. data/bundler/man/bundle.1.txt +0 -116
  544. data/bundler/man/gemfile.5.txt +0 -649
  545. data/lib/rubygems/source_local.rb +0 -7
  546. data/lib/rubygems/source_specific_file.rb +0 -6
  547. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  548. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  549. data/lib/ubygems.rb +0 -14
  550. data/tmp/.keep +0 -0
  551. data/util/CL2notes +0 -55
  552. data/util/bisect +0 -10
  553. data/util/ci.sh +0 -62
  554. data/util/cops/deprecations.rb +0 -52
  555. data/util/create_certs.rb +0 -171
  556. data/util/create_certs.sh +0 -27
  557. data/util/create_encrypted_key.rb +0 -16
  558. data/util/generate_spdx_license_list.rb +0 -63
  559. data/util/patch_with_prs.rb +0 -77
  560. data/util/rubocop +0 -8
  561. data/util/update_bundled_ca_certificates.rb +0 -139
  562. data/util/update_changelog.rb +0 -67
@@ -19,7 +19,6 @@ module TestGemCommandsQueryCommandSetup
19
19
  end
20
20
 
21
21
  class TestGemCommandsQueryCommandWithInstalledGems < Gem::TestCase
22
-
23
22
  include TestGemCommandsQueryCommandSetup
24
23
 
25
24
  def test_execute
@@ -580,8 +579,8 @@ pl (1 i386-linux)
580
579
  @cmd.execute
581
580
  end
582
581
 
583
- assert_match %r%^a %, @stub_ui.output
584
- assert_match %r%^pl %, @stub_ui.output
582
+ assert_match %r{^a }, @stub_ui.output
583
+ assert_match %r{^pl }, @stub_ui.output
585
584
  assert_equal '', @stub_ui.error
586
585
  end
587
586
 
@@ -593,8 +592,8 @@ pl (1 i386-linux)
593
592
  @cmd.send :show_gems, /a/i
594
593
  end
595
594
 
596
- assert_match %r%^a %, @stub_ui.output
597
- refute_match %r%^pl %, @stub_ui.output
595
+ assert_match %r{^a }, @stub_ui.output
596
+ refute_match %r{^pl }, @stub_ui.output
598
597
  assert_empty @stub_ui.error
599
598
  end
600
599
 
@@ -607,11 +606,9 @@ pl (1 i386-linux)
607
606
  fetcher.spec 'a', '3.a'
608
607
  end
609
608
  end
610
-
611
609
  end
612
610
 
613
611
  class TestGemCommandsQueryCommandWithoutInstalledGems < Gem::TestCase
614
-
615
612
  include TestGemCommandsQueryCommandSetup
616
613
 
617
614
  def test_execute_platform
@@ -644,10 +641,10 @@ a (2 universal-darwin, 1 ruby x86-linux)
644
641
  end
645
642
 
646
643
  def test_execute_show_default_gems
647
- spec_fetcher { |fetcher| fetcher.spec 'a', 2 }
644
+ spec_fetcher {|fetcher| fetcher.spec 'a', 2 }
648
645
 
649
646
  a1 = new_default_spec 'a', 1
650
- install_default_specs a1
647
+ install_default_gems a1
651
648
 
652
649
  use_ui @stub_ui do
653
650
  @cmd.execute
@@ -666,7 +663,7 @@ EOF
666
663
  def test_execute_show_default_gems_with_platform
667
664
  a1 = new_default_spec 'a', 1
668
665
  a1.platform = 'java'
669
- install_default_specs a1
666
+ install_default_gems a1
670
667
 
671
668
  use_ui @stub_ui do
672
669
  @cmd.execute
@@ -688,7 +685,7 @@ EOF
688
685
  end
689
686
 
690
687
  a1 = new_default_spec 'a', 1
691
- install_default_specs a1
688
+ install_default_gems a1
692
689
 
693
690
  @cmd.handle_options %w[-l -d]
694
691
 
@@ -844,6 +841,10 @@ othergem (1.2.3)
844
841
  assert_equal expected, @stub_ui.output
845
842
  end
846
843
 
844
+ def test_depprecated
845
+ assert @cmd.deprecated?
846
+ end
847
+
847
848
  private
848
849
 
849
850
  def add_gems_to_fetcher
@@ -853,5 +854,4 @@ othergem (1.2.3)
853
854
  fetcher.download 'a', '3.a'
854
855
  end
855
856
  end
856
-
857
857
  end
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
3
3
  require 'rubygems/commands/search_command'
4
4
 
5
5
  class TestGemCommandsSearchCommand < Gem::TestCase
6
-
7
6
  def setup
8
7
  super
9
8
 
@@ -13,5 +12,4 @@ class TestGemCommandsSearchCommand < Gem::TestCase
13
12
  def test_initialize
14
13
  assert_equal :remote, @cmd.defaults[:domain]
15
14
  end
16
-
17
15
  end
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
3
3
  require 'rubygems/commands/server_command'
4
4
 
5
5
  class TestGemCommandsServerCommand < Gem::TestCase
6
-
7
6
  def setup
8
7
  super
9
8
 
@@ -59,5 +58,4 @@ class TestGemCommandsServerCommand < Gem::TestCase
59
58
  assert_equal 'invalid argument: -p 65536: not a port number',
60
59
  e.message
61
60
  end
62
-
63
61
  end
@@ -1,11 +1,9 @@
1
- # coding: UTF-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  require 'rubygems/test_case'
5
4
  require 'rubygems/commands/setup_command'
6
5
 
7
6
  class TestGemCommandsSetupCommand < Gem::TestCase
8
-
9
7
  bundler_gemspec = File.expand_path("../../../bundler/lib/bundler/version.rb", __FILE__)
10
8
  if File.exist?(bundler_gemspec)
11
9
  BUNDLER_VERS = File.read(bundler_gemspec).match(/VERSION = "(#{Gem::Version::VERSION_PATTERN})"/)[1]
@@ -20,50 +18,33 @@ class TestGemCommandsSetupCommand < Gem::TestCase
20
18
  @cmd = Gem::Commands::SetupCommand.new
21
19
  @cmd.options[:prefix] = @install_dir
22
20
 
23
- FileUtils.mkdir_p 'bin'
24
- FileUtils.mkdir_p 'lib/rubygems/ssl_certs/rubygems.org'
25
-
26
- File.open 'bin/gem', 'w' do
27
- |io| io.puts '# gem'
28
- end
29
-
30
- File.open 'lib/rubygems.rb', 'w' do |io|
31
- io.puts '# rubygems.rb'
32
- end
33
-
34
- File.open 'lib/rubygems/test_case.rb', 'w' do |io|
35
- io.puts '# test_case.rb'
36
- end
37
-
38
- File.open 'lib/rubygems/ssl_certs/rubygems.org/foo.pem', 'w' do |io|
39
- io.puts 'PEM'
40
- end
41
-
42
- FileUtils.mkdir_p 'bundler/exe'
43
- FileUtils.mkdir_p 'bundler/lib/bundler'
44
-
45
- File.open 'bundler/exe/bundle', 'w' do |io|
46
- io.puts '# bundle'
47
- end
48
-
49
- File.open 'bundler/lib/bundler.rb', 'w' do |io|
50
- io.puts '# bundler.rb'
51
- end
52
-
53
- File.open 'bundler/lib/bundler/b.rb', 'w' do |io|
54
- io.puts '# b.rb'
55
- end
56
-
57
- FileUtils.mkdir_p 'default/gems'
21
+ filelist = %w[
22
+ bin/gem
23
+ lib/rubygems.rb
24
+ lib/rubygems/test_case.rb
25
+ lib/rubygems/ssl_certs/rubygems.org/foo.pem
26
+ bundler/exe/bundle
27
+ bundler/exe/bundler
28
+ bundler/lib/bundler.rb
29
+ bundler/lib/bundler/b.rb
30
+ bundler/bin/bundler/man/bundle-b.1
31
+ bundler/lib/bundler/man/bundle-b.1.ronn
32
+ bundler/lib/bundler/man/gemfile.5
33
+ bundler/lib/bundler/man/gemfile.5.ronn
34
+ bundler/lib/bundler/templates/.circleci/config.yml
35
+ bundler/lib/bundler/templates/.travis.yml
36
+ ]
37
+
38
+ create_dummy_files(filelist)
58
39
 
59
40
  gemspec = Gem::Specification.new
60
41
  gemspec.author = "Us"
61
42
  gemspec.name = "bundler"
62
43
  gemspec.version = BUNDLER_VERS
63
44
  gemspec.bindir = "exe"
64
- gemspec.executables = ["bundle"]
45
+ gemspec.executables = ["bundle", "bundler"]
65
46
 
66
- File.open 'bundler/bundler.gemspec', 'w' do |io|
47
+ File.open 'bundler/bundler.gemspec', 'w' do |io|
67
48
  io.puts gemspec.to_ruby
68
49
  end
69
50
 
@@ -72,30 +53,13 @@ class TestGemCommandsSetupCommand < Gem::TestCase
72
53
  io.puts gemspec.to_ruby
73
54
  end
74
55
 
75
- FileUtils.mkdir_p File.join(Gem.default_dir, "specifications")
56
+ spec_fetcher do |fetcher|
57
+ fetcher.download "bundler", "1.15.4"
76
58
 
77
- open(File.join(Gem.default_dir, "specifications", "bundler-#{BUNDLER_VERS}.gemspec"), 'w') do |io|
78
- io.puts "# bundler-#{BUNDLER_VERS}"
79
- end
59
+ fetcher.gem "bundler", BUNDLER_VERS
80
60
 
81
- open(File.join(Gem.default_dir, "specifications", "bundler-audit-1.0.0.gemspec"), 'w') do |io|
82
- io.puts '# bundler-audit'
61
+ fetcher.gem "bundler-audit", "1.0.0"
83
62
  end
84
-
85
- FileUtils.mkdir_p 'default/gems/bundler-1.15.4'
86
- FileUtils.mkdir_p 'default/gems/bundler-audit-1.0.0'
87
- end
88
-
89
- def gem_install(name)
90
- gem = util_spec name do |s|
91
- s.executables = [name]
92
- s.files = %W[bin/#{name}]
93
- end
94
- write_file File.join @tempdir, 'bin', name do |f|
95
- f.puts '#!/usr/bin/ruby'
96
- end
97
- install_gem gem
98
- File.join @gemhome, 'bin', name
99
63
  end
100
64
 
101
65
  def test_execute_regenerate_binstubs
@@ -123,7 +87,46 @@ class TestGemCommandsSetupCommand < Gem::TestCase
123
87
  assert_equal "I changed it!\n", File.read(gem_bin_path)
124
88
  end
125
89
 
90
+ def test_execute_regenerate_plugins
91
+ gem_plugin_path = gem_install_with_plugin 'a'
92
+ write_file gem_plugin_path do |io|
93
+ io.puts 'I changed it!'
94
+ end
95
+
96
+ @cmd.options[:document] = []
97
+ @cmd.execute
98
+
99
+ assert_match %r{\Arequire}, File.read(gem_plugin_path)
100
+ end
101
+
102
+ def test_execute_no_regenerate_plugins
103
+ gem_plugin_path = gem_install_with_plugin 'a'
104
+ write_file gem_plugin_path do |io|
105
+ io.puts 'I changed it!'
106
+ end
107
+
108
+ @cmd.options[:document] = []
109
+ @cmd.options[:regenerate_plugins] = false
110
+ @cmd.execute
111
+
112
+ assert_equal "I changed it!\n", File.read(gem_plugin_path)
113
+ end
114
+
115
+ def test_execute_regenerate_plugins_creates_plugins_dir_if_not_there
116
+ gem_plugin_path = gem_install_with_plugin 'a'
117
+
118
+ # Simulate gem installed with an older rubygems without a plugins layout
119
+ FileUtils.rm_rf Gem.plugindir
120
+
121
+ @cmd.options[:document] = []
122
+ @cmd.execute
123
+
124
+ assert_match %r{\Arequire}, File.read(gem_plugin_path)
125
+ end
126
+
126
127
  def test_execute_informs_about_installed_executables
128
+ @cmd.options[:document] = []
129
+
127
130
  use_ui @ui do
128
131
  @cmd.execute
129
132
  end
@@ -133,6 +136,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
133
136
  exec_line = out.shift until exec_line == "RubyGems installed the following executables:"
134
137
  assert_equal "\t#{default_gem_bin_path}", out.shift
135
138
  assert_equal "\t#{default_bundle_bin_path}", out.shift
139
+ assert_equal "\t#{default_bundler_bin_path}", out.shift
136
140
  end
137
141
 
138
142
  def test_env_shebang_flag
@@ -147,25 +151,16 @@ class TestGemCommandsSetupCommand < Gem::TestCase
147
151
 
148
152
  ruby_exec = sprintf Gem.default_exec_format, 'ruby'
149
153
 
150
- if Gem.win_platform?
151
- assert_match %r%\A#!\s*#{ruby_exec}%, File.read(default_gem_bin_path)
152
- assert_match %r%\A#!\s*#{ruby_exec}%, File.read(default_bundle_bin_path)
153
- assert_match %r%\A#!\s*#{ruby_exec}%, File.read(gem_bin_path)
154
- else
155
- assert_match %r%\A#!/usr/bin/env #{ruby_exec}%, File.read(default_gem_bin_path)
156
- assert_match %r%\A#!/usr/bin/env #{ruby_exec}%, File.read(default_bundle_bin_path)
157
- assert_match %r%\A#!/usr/bin/env #{ruby_exec}%, File.read(gem_bin_path)
158
- end
154
+ bin_env = win_platform? ? "" : %w[/usr/bin/env /bin/env].find {|f| File.executable?(f) } + " "
155
+ assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(default_gem_bin_path)
156
+ assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(default_bundle_bin_path)
157
+ assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(default_bundler_bin_path)
158
+ assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(gem_bin_path)
159
159
  end
160
160
 
161
- def test_pem_files_in
162
- assert_equal %w[rubygems/ssl_certs/rubygems.org/foo.pem],
163
- @cmd.pem_files_in('lib').sort
164
- end
165
-
166
- def test_rb_files_in
167
- assert_equal %w[rubygems.rb rubygems/test_case.rb],
168
- @cmd.rb_files_in('lib').sort
161
+ def test_files_in
162
+ assert_equal %w[rubygems.rb rubygems/ssl_certs/rubygems.org/foo.pem rubygems/test_case.rb],
163
+ @cmd.files_in('lib').sort
169
164
  end
170
165
 
171
166
  def test_install_lib
@@ -179,6 +174,9 @@ class TestGemCommandsSetupCommand < Gem::TestCase
179
174
 
180
175
  assert_path_exists File.join(dir, 'bundler.rb')
181
176
  assert_path_exists File.join(dir, 'bundler/b.rb')
177
+
178
+ assert_path_exists File.join(dir, 'bundler/templates/.circleci/config.yml') unless RUBY_ENGINE == "truffleruby" # https://github.com/oracle/truffleruby/issues/2116
179
+ assert_path_exists File.join(dir, 'bundler/templates/.travis.yml')
182
180
  end
183
181
  end
184
182
 
@@ -197,7 +195,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
197
195
  assert_path_exists File.join(bin_dir, "#{e}.bat")
198
196
  end
199
197
 
200
- assert_path_exists File.join bin_dir, Gem.default_exec_format % e
198
+ assert_path_exists File.join bin_dir, e
201
199
  end
202
200
 
203
201
  default_dir = Gem.default_specifications_dir
@@ -207,21 +205,14 @@ class TestGemCommandsSetupCommand < Gem::TestCase
207
205
  assert_path_exists File.join(default_dir, "bundler-#{BUNDLER_VERS}.gemspec")
208
206
 
209
207
  # expect to not remove bundler-* gemspecs.
210
- assert_path_exists File.join(Gem.default_dir, "specifications", "bundler-audit-1.0.0.gemspec")
208
+ assert_path_exists File.join(Gem.dir, "specifications", "bundler-audit-1.0.0.gemspec")
211
209
 
212
210
  # expect to remove normal gem that was same version. because it's promoted default gems.
213
- refute_path_exists File.join(Gem.default_dir, "specifications", "bundler-#{BUNDLER_VERS}.gemspec")
214
-
215
- # expect to install default gems. It location was `site_ruby` directory on real world.
216
- assert_path_exists "default/gems/bundler-#{BUNDLER_VERS}"
211
+ refute_path_exists File.join(Gem.dir, "specifications", "bundler-#{BUNDLER_VERS}.gemspec")
217
212
 
218
- # expect to not remove other versions of bundler on `site_ruby`
219
- assert_path_exists 'default/gems/bundler-1.15.4'
220
-
221
- # TODO: We need to assert to remove same version of bundler on gem_dir directory(It's not site_ruby dir)
222
-
223
- # expect to not remove bundler-* directory.
224
- assert_path_exists 'default/gems/bundler-audit-1.0.0'
213
+ assert_path_exists "#{Gem.dir}/gems/bundler-#{BUNDLER_VERS}"
214
+ assert_path_exists "#{Gem.dir}/gems/bundler-1.15.4"
215
+ assert_path_exists "#{Gem.dir}/gems/bundler-audit-1.0.0"
225
216
  end
226
217
 
227
218
  def test_install_default_bundler_gem_with_force_flag
@@ -250,7 +241,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
250
241
  assert_path_exists File.join(bin_dir, "#{e}.bat")
251
242
  end
252
243
 
253
- assert_path_exists File.join bin_dir, Gem.default_exec_format % e
244
+ assert_path_exists File.join bin_dir, e
254
245
  end
255
246
  end
256
247
  end
@@ -260,52 +251,53 @@ class TestGemCommandsSetupCommand < Gem::TestCase
260
251
  lib_rubygems = File.join lib, 'rubygems'
261
252
  lib_bundler = File.join lib, 'bundler'
262
253
  lib_rubygems_defaults = File.join lib_rubygems, 'defaults'
254
+ lib_bundler_templates = File.join lib_bundler, 'templates'
263
255
 
264
256
  securerandom_rb = File.join lib, 'securerandom.rb'
265
257
 
266
258
  engine_defaults_rb = File.join lib_rubygems_defaults, 'jruby.rb'
267
259
  os_defaults_rb = File.join lib_rubygems_defaults, 'operating_system.rb'
268
260
 
261
+ old_gauntlet_rubygems_rb = File.join lib, 'gauntlet_rubygems.rb'
262
+
269
263
  old_builder_rb = File.join lib_rubygems, 'builder.rb'
270
264
  old_format_rb = File.join lib_rubygems, 'format.rb'
271
265
  old_bundler_c_rb = File.join lib_bundler, 'c.rb'
266
+ old_bundler_ci = File.join lib_bundler_templates, '.lecacy_ci', 'config.yml'
272
267
 
273
- FileUtils.mkdir_p lib_rubygems_defaults
274
- FileUtils.mkdir_p lib_bundler
268
+ files_that_go = [old_gauntlet_rubygems_rb, old_builder_rb, old_format_rb, old_bundler_c_rb, old_bundler_ci]
269
+ files_that_stay = [securerandom_rb, engine_defaults_rb, os_defaults_rb]
275
270
 
276
- File.open securerandom_rb, 'w' do |io|
277
- io.puts '# securerandom.rb'
278
- end
271
+ create_dummy_files(files_that_go + files_that_stay)
279
272
 
280
- File.open old_builder_rb, 'w' do |io|
281
- io.puts '# builder.rb'
282
- end
273
+ @cmd.remove_old_lib_files lib
283
274
 
284
- File.open old_format_rb, 'w' do |io|
285
- io.puts '# format.rb'
286
- end
275
+ files_that_go.each {|file| refute_path_exists(file) unless file == old_bundler_ci && RUBY_ENGINE == "truffleruby" } # https://github.com/oracle/truffleruby/issues/2116
287
276
 
288
- File.open old_bundler_c_rb, 'w' do |io|
289
- io.puts '# c.rb'
290
- end
277
+ files_that_stay.each {|file| assert_path_exists file }
278
+ end
291
279
 
292
- File.open engine_defaults_rb, 'w' do |io|
293
- io.puts '# jruby.rb'
294
- end
280
+ def test_remove_old_man_files
281
+ man = File.join @install_dir, 'man'
295
282
 
296
- File.open os_defaults_rb, 'w' do |io|
297
- io.puts '# operating_system.rb'
298
- end
283
+ ruby_1 = File.join man, 'man1', 'ruby.1'
284
+ bundle_b_1 = File.join man, 'man1', 'bundle-b.1'
285
+ bundle_b_1_ronn = File.join man, 'man1', 'bundle-b.1.ronn'
286
+ bundle_b_1_txt = File.join man, 'man1', 'bundle-b.1.txt'
287
+ gemfile_5 = File.join man, 'man5', 'gemfile.5'
288
+ gemfile_5_ronn = File.join man, 'man5', 'gemfile.5.ronn'
289
+ gemfile_5_txt = File.join man, 'man5', 'gemfile.5.txt'
299
290
 
300
- @cmd.remove_old_lib_files lib
291
+ files_that_go = [bundle_b_1, bundle_b_1_txt, bundle_b_1_ronn, gemfile_5, gemfile_5_txt, gemfile_5_ronn]
292
+ files_that_stay = [ruby_1]
301
293
 
302
- refute_path_exists old_builder_rb
303
- refute_path_exists old_format_rb
304
- refute_path_exists old_bundler_c_rb
294
+ create_dummy_files(files_that_go + files_that_stay)
305
295
 
306
- assert_path_exists securerandom_rb
307
- assert_path_exists engine_defaults_rb
308
- assert_path_exists os_defaults_rb
296
+ @cmd.remove_old_man_files man
297
+
298
+ files_that_go.each {|file| refute_path_exists file }
299
+
300
+ files_that_stay.each {|file| assert_path_exists file }
309
301
  end
310
302
 
311
303
  def test_show_release_notes
@@ -314,26 +306,24 @@ class TestGemCommandsSetupCommand < Gem::TestCase
314
306
 
315
307
  @cmd.options[:previous_version] = Gem::Version.new '2.0.2'
316
308
 
317
- File.open 'History.txt', 'w' do |io|
318
- io.puts <<-History_txt
319
- # coding: UTF-8
320
-
321
- === #{Gem::VERSION} / 2013-03-26
309
+ File.open 'CHANGELOG.md', 'w' do |io|
310
+ io.puts <<-HISTORY_TXT
311
+ # #{Gem::VERSION} / 2013-03-26
322
312
 
323
- * Bug fixes:
313
+ ## Bug fixes:
324
314
  * Fixed release note display for LANG=C when installing rubygems
325
315
  * π is tasty
326
316
 
327
- === 2.0.2 / 2013-03-06
317
+ # 2.0.2 / 2013-03-06
328
318
 
329
- * Bug fixes:
319
+ ## Bug fixes:
330
320
  * Other bugs fixed
331
321
 
332
- === 2.0.1 / 2013-03-05
322
+ # 2.0.1 / 2013-03-05
333
323
 
334
- * Bug fixes:
324
+ ## Bug fixes:
335
325
  * Yet more bugs fixed
336
- History_txt
326
+ HISTORY_TXT
337
327
  end
338
328
 
339
329
  use_ui @ui do
@@ -341,9 +331,9 @@ class TestGemCommandsSetupCommand < Gem::TestCase
341
331
  end
342
332
 
343
333
  expected = <<-EXPECTED
344
- === #{Gem::VERSION} / 2013-03-26
334
+ # #{Gem::VERSION} / 2013-03-26
345
335
 
346
- * Bug fixes:
336
+ ## Bug fixes:
347
337
  * Fixed release note display for LANG=C when installing rubygems
348
338
  * π is tasty
349
339
 
@@ -359,14 +349,49 @@ class TestGemCommandsSetupCommand < Gem::TestCase
359
349
 
360
350
  private
361
351
 
352
+ def create_dummy_files(list)
353
+ list.each do |file|
354
+ FileUtils.mkdir_p File.dirname(file)
355
+
356
+ File.open file, 'w' do |io|
357
+ io.puts "# #{File.basename(file)}"
358
+ end
359
+ end
360
+ end
361
+
362
+ def gem_install(name)
363
+ gem = util_spec name do |s|
364
+ s.executables = [name]
365
+ s.files = %W[bin/#{name}]
366
+ end
367
+ write_file File.join @tempdir, 'bin', name do |f|
368
+ f.puts '#!/usr/bin/ruby'
369
+ end
370
+ install_gem gem
371
+ File.join @gemhome, 'bin', name
372
+ end
373
+
374
+ def gem_install_with_plugin(name)
375
+ gem = util_spec name do |s|
376
+ s.files = %W[lib/rubygems_plugin.rb]
377
+ end
378
+ write_file File.join @tempdir, 'lib', 'rubygems_plugin.rb' do |f|
379
+ f.puts "require '#{gem.plugins.first}'"
380
+ end
381
+ install_gem gem
382
+
383
+ File.join Gem.plugindir, "#{name}_plugin.rb"
384
+ end
385
+
362
386
  def default_gem_bin_path
363
- gem_exec = sprintf Gem.default_exec_format, 'gem'
364
- File.join @install_dir, 'bin', gem_exec
387
+ File.join @install_dir, 'bin', 'gem'
365
388
  end
366
389
 
367
390
  def default_bundle_bin_path
368
- bundle_exec = sprintf Gem.default_exec_format, 'bundle'
369
- File.join @install_dir, 'bin', bundle_exec
391
+ File.join @install_dir, 'bin', 'bundle'
370
392
  end
371
393
 
394
+ def default_bundler_bin_path
395
+ File.join @install_dir, 'bin', 'bundler'
396
+ end
372
397
  end unless Gem.java_platform?