rubygems-update 3.1.2 → 3.2.3

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 (560) 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 +460 -232
  5. data/Manifest.txt +47 -77
  6. data/POLICIES.md +6 -12
  7. data/README.md +5 -5
  8. data/Rakefile +59 -83
  9. data/bin/update_rubygems +1 -1
  10. data/bundler/CHANGELOG.md +1598 -1421
  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 +32 -7
  16. data/bundler/lib/bundler/build_metadata.rb +4 -12
  17. data/bundler/lib/bundler/cli.rb +58 -21
  18. data/bundler/lib/bundler/cli/add.rb +1 -1
  19. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  20. data/bundler/lib/bundler/cli/cache.rb +1 -7
  21. data/bundler/lib/bundler/cli/clean.rb +1 -1
  22. data/bundler/lib/bundler/cli/common.rb +14 -0
  23. data/bundler/lib/bundler/cli/console.rb +1 -1
  24. data/bundler/lib/bundler/cli/doctor.rb +1 -1
  25. data/bundler/lib/bundler/cli/exec.rb +4 -4
  26. data/bundler/lib/bundler/cli/fund.rb +36 -0
  27. data/bundler/lib/bundler/cli/gem.rb +84 -11
  28. data/bundler/lib/bundler/cli/info.rb +15 -4
  29. data/bundler/lib/bundler/cli/init.rb +2 -2
  30. data/bundler/lib/bundler/cli/inject.rb +1 -1
  31. data/bundler/lib/bundler/cli/install.rb +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 -5
  43. data/bundler/lib/bundler/definition.rb +65 -76
  44. data/bundler/lib/bundler/dep_proxy.rb +1 -1
  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 +2 -2
  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/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
  74. data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
  75. data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
  76. data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  77. data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
  78. data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
  79. data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  80. data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
  81. data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
  82. data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  83. data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
  84. data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
  85. data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
  86. data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  87. data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  88. data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
  89. data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
  90. data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
  91. data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  92. data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  93. data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
  94. data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
  95. data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
  96. data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
  97. data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
  98. data/bundler/lib/bundler/mirror.rb +2 -2
  99. data/bundler/lib/bundler/plugin.rb +30 -5
  100. data/bundler/lib/bundler/plugin/api/source.rb +1 -1
  101. data/bundler/lib/bundler/plugin/dsl.rb +1 -1
  102. data/bundler/lib/bundler/plugin/index.rb +10 -1
  103. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  104. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
  105. data/bundler/lib/bundler/plugin/source_list.rb +1 -1
  106. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  107. data/bundler/lib/bundler/remote_specification.rb +5 -2
  108. data/bundler/lib/bundler/resolver.rb +37 -18
  109. data/bundler/lib/bundler/resolver/spec_group.rb +36 -21
  110. data/bundler/lib/bundler/retry.rb +1 -1
  111. data/bundler/lib/bundler/ruby_version.rb +1 -1
  112. data/bundler/lib/bundler/rubygems_ext.rb +53 -9
  113. data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
  114. data/bundler/lib/bundler/rubygems_integration.rb +26 -61
  115. data/bundler/lib/bundler/runtime.rb +4 -14
  116. data/bundler/lib/bundler/settings.rb +49 -46
  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 +5 -5
  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 +7 -9
  128. data/bundler/lib/bundler/stub_specification.rb +17 -7
  129. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  130. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
  131. data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
  132. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -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 +14 -6
  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 +79 -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 +7 -7
  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 -4
  216. data/lib/rubygems/commands/pristine_command.rb +11 -5
  217. data/lib/rubygems/commands/push_command.rb +10 -47
  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 +131 -58
  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 -7
  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 +6 -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 +4 -6
  251. data/lib/rubygems/gem_runner.rb +3 -10
  252. data/lib/rubygems/gemcutter_utilities.rb +102 -21
  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 -80
  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 +11 -28
  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 +7 -20
  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 +14 -12
  290. data/lib/rubygems/resolver/activation_request.rb +9 -3
  291. data/lib/rubygems/resolver/api_set.rb +31 -24
  292. data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
  293. data/lib/rubygems/resolver/api_specification.rb +24 -10
  294. data/lib/rubygems/resolver/best_set.rb +1 -3
  295. data/lib/rubygems/resolver/composed_set.rb +3 -5
  296. data/lib/rubygems/resolver/conflict.rb +2 -4
  297. data/lib/rubygems/resolver/current_set.rb +0 -2
  298. data/lib/rubygems/resolver/dependency_request.rb +1 -3
  299. data/lib/rubygems/resolver/git_set.rb +0 -2
  300. data/lib/rubygems/resolver/git_specification.rb +0 -2
  301. data/lib/rubygems/resolver/index_set.rb +1 -3
  302. data/lib/rubygems/resolver/index_specification.rb +26 -2
  303. data/lib/rubygems/resolver/installed_specification.rb +0 -2
  304. data/lib/rubygems/resolver/installer_set.rb +60 -13
  305. data/lib/rubygems/resolver/local_specification.rb +0 -2
  306. data/lib/rubygems/resolver/lock_set.rb +2 -4
  307. data/lib/rubygems/resolver/lock_specification.rb +0 -2
  308. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  309. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  310. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
  311. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
  312. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  313. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
  314. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
  315. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
  316. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
  317. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
  318. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
  319. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
  320. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
  321. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
  322. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  323. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
  324. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  325. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
  326. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  327. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
  328. data/lib/rubygems/resolver/requirement_list.rb +0 -2
  329. data/lib/rubygems/resolver/set.rb +0 -2
  330. data/lib/rubygems/resolver/source_set.rb +0 -2
  331. data/lib/rubygems/resolver/spec_specification.rb +14 -2
  332. data/lib/rubygems/resolver/specification.rb +13 -3
  333. data/lib/rubygems/resolver/stats.rb +0 -2
  334. data/lib/rubygems/resolver/vendor_set.rb +0 -2
  335. data/lib/rubygems/resolver/vendor_specification.rb +0 -2
  336. data/lib/rubygems/s3_uri_signer.rb +2 -8
  337. data/lib/rubygems/safe_yaml.rb +4 -4
  338. data/lib/rubygems/security.rb +27 -34
  339. data/lib/rubygems/security/policy.rb +4 -8
  340. data/lib/rubygems/security/signer.rb +5 -7
  341. data/lib/rubygems/security/trust_dir.rb +1 -3
  342. data/lib/rubygems/server.rb +16 -13
  343. data/lib/rubygems/source.rb +23 -12
  344. data/lib/rubygems/source/git.rb +7 -8
  345. data/lib/rubygems/source/installed.rb +0 -2
  346. data/lib/rubygems/source/local.rb +2 -4
  347. data/lib/rubygems/source/lock.rb +0 -2
  348. data/lib/rubygems/source/specific_file.rb +0 -2
  349. data/lib/rubygems/source/vendor.rb +0 -2
  350. data/lib/rubygems/source_list.rb +4 -7
  351. data/lib/rubygems/spec_fetcher.rb +19 -18
  352. data/lib/rubygems/specification.rb +113 -126
  353. data/lib/rubygems/specification_policy.rb +88 -30
  354. data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
  355. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  356. data/lib/rubygems/stub_specification.rb +1 -5
  357. data/lib/rubygems/syck_hack.rb +0 -2
  358. data/lib/rubygems/test_case.rb +105 -132
  359. data/lib/rubygems/test_utilities.rb +12 -19
  360. data/lib/rubygems/uninstaller.rb +35 -16
  361. data/lib/rubygems/uri_formatter.rb +2 -3
  362. data/lib/rubygems/uri_parser.rb +0 -2
  363. data/lib/rubygems/user_interaction.rb +1 -26
  364. data/lib/rubygems/util.rb +15 -3
  365. data/lib/rubygems/util/licenses.rb +4 -6
  366. data/lib/rubygems/util/list.rb +0 -2
  367. data/lib/rubygems/validator.rb +1 -3
  368. data/lib/rubygems/version.rb +5 -7
  369. data/lib/rubygems/version_option.rb +6 -0
  370. data/rubygems-update.gemspec +2 -2
  371. data/setup.rb +2 -7
  372. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
  373. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  374. data/test/rubygems/rubygems_plugin.rb +0 -2
  375. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  376. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  377. data/test/rubygems/test_bundled_ca.rb +42 -45
  378. data/test/rubygems/test_config.rb +0 -2
  379. data/test/rubygems/test_deprecate.rb +40 -7
  380. data/test/rubygems/test_gem.rb +151 -99
  381. data/test/rubygems/test_gem_available_set.rb +3 -5
  382. data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
  383. data/test/rubygems/test_gem_command.rb +24 -7
  384. data/test/rubygems/test_gem_command_manager.rb +36 -5
  385. data/test/rubygems/test_gem_commands_build_command.rb +250 -15
  386. data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
  387. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  388. data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
  389. data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
  390. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
  391. data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
  392. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  393. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
  394. data/test/rubygems/test_gem_commands_help_command.rb +15 -4
  395. data/test/rubygems/test_gem_commands_info_command.rb +6 -8
  396. data/test/rubygems/test_gem_commands_install_command.rb +163 -34
  397. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  398. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  399. data/test/rubygems/test_gem_commands_mirror.rb +1 -3
  400. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  401. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
  402. data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
  403. data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
  404. data/test/rubygems/test_gem_commands_push_command.rb +77 -9
  405. data/test/rubygems/test_gem_commands_query_command.rb +12 -12
  406. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  407. data/test/rubygems/test_gem_commands_server_command.rb +0 -2
  408. data/test/rubygems/test_gem_commands_setup_command.rb +165 -124
  409. data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
  410. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  411. data/test/rubygems/test_gem_commands_sources_command.rb +99 -3
  412. data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
  413. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  414. data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
  415. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  416. data/test/rubygems/test_gem_commands_update_command.rb +116 -7
  417. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  418. data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
  419. data/test/rubygems/test_gem_config_file.rb +7 -12
  420. data/test/rubygems/test_gem_dependency.rb +0 -2
  421. data/test/rubygems/test_gem_dependency_installer.rb +90 -193
  422. data/test/rubygems/test_gem_dependency_list.rb +10 -12
  423. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  424. data/test/rubygems/test_gem_doctor.rb +28 -2
  425. data/test/rubygems/test_gem_ext_builder.rb +26 -47
  426. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
  427. data/test/rubygems/test_gem_ext_configure_builder.rb +4 -20
  428. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
  429. data/test/rubygems/test_gem_ext_rake_builder.rb +39 -24
  430. data/test/rubygems/test_gem_gem_runner.rb +44 -1
  431. data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
  432. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  433. data/test/rubygems/test_gem_indexer.rb +9 -15
  434. data/test/rubygems/test_gem_install_update_options.rb +14 -4
  435. data/test/rubygems/test_gem_installer.rb +258 -115
  436. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  437. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  438. data/test/rubygems/test_gem_package.rb +41 -39
  439. data/test/rubygems/test_gem_package_old.rb +4 -6
  440. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  441. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  442. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
  443. data/test/rubygems/test_gem_package_tar_writer.rb +9 -6
  444. data/test/rubygems/test_gem_package_task.rb +46 -13
  445. data/test/rubygems/test_gem_path_support.rb +0 -2
  446. data/test/rubygems/test_gem_platform.rb +63 -6
  447. data/test/rubygems/test_gem_rdoc.rb +0 -2
  448. data/test/rubygems/test_gem_remote_fetcher.rb +168 -211
  449. data/test/rubygems/test_gem_request.rb +13 -17
  450. data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
  451. data/test/rubygems/test_gem_request_set.rb +72 -22
  452. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
  453. data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
  454. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
  455. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
  456. data/test/rubygems/test_gem_requirement.rb +10 -4
  457. data/test/rubygems/test_gem_resolver.rb +6 -8
  458. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
  459. data/test/rubygems/test_gem_resolver_api_set.rb +60 -59
  460. data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
  461. data/test/rubygems/test_gem_resolver_best_set.rb +5 -7
  462. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  463. data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
  464. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  465. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  466. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
  467. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  468. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
  469. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
  470. data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
  471. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  472. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  473. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  474. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  475. data/test/rubygems/test_gem_resolver_specification.rb +0 -4
  476. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
  477. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  478. data/test/rubygems/test_gem_security.rb +22 -24
  479. data/test/rubygems/test_gem_security_policy.rb +7 -12
  480. data/test/rubygems/test_gem_security_signer.rb +10 -12
  481. data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
  482. data/test/rubygems/test_gem_server.rb +10 -14
  483. data/test/rubygems/test_gem_silent_ui.rb +0 -2
  484. data/test/rubygems/test_gem_source.rb +19 -18
  485. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
  486. data/test/rubygems/test_gem_source_git.rb +12 -13
  487. data/test/rubygems/test_gem_source_installed.rb +7 -9
  488. data/test/rubygems/test_gem_source_list.rb +1 -2
  489. data/test/rubygems/test_gem_source_local.rb +8 -10
  490. data/test/rubygems/test_gem_source_lock.rb +10 -12
  491. data/test/rubygems/test_gem_source_specific_file.rb +7 -9
  492. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  493. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  494. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  495. data/test/rubygems/test_gem_specification.rb +182 -131
  496. data/test/rubygems/test_gem_stream_ui.rb +3 -3
  497. data/test/rubygems/test_gem_stub_specification.rb +4 -7
  498. data/test/rubygems/test_gem_text.rb +1 -3
  499. data/test/rubygems/test_gem_uninstaller.rb +134 -12
  500. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  501. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  502. data/test/rubygems/test_gem_util.rb +7 -7
  503. data/test/rubygems/test_gem_validator.rb +1 -3
  504. data/test/rubygems/test_gem_version.rb +1 -3
  505. data/test/rubygems/test_gem_version_option.rb +1 -3
  506. data/test/rubygems/test_kernel.rb +25 -10
  507. data/test/rubygems/test_project_sanity.rb +7 -2
  508. data/test/rubygems/test_remote_fetch_error.rb +0 -2
  509. data/test/rubygems/test_require.rb +291 -56
  510. data/test/test_changelog_generator.rb +17 -0
  511. metadata +65 -96
  512. data/.bundle/config +0 -2
  513. data/.rubocop.yml +0 -91
  514. data/Gemfile +0 -8
  515. data/Gemfile.lock +0 -43
  516. data/bundler/CODE_OF_CONDUCT.md +0 -136
  517. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  518. data/bundler/man/bundle-add.1.txt +0 -58
  519. data/bundler/man/bundle-binstubs.1.txt +0 -48
  520. data/bundler/man/bundle-cache.1.txt +0 -78
  521. data/bundler/man/bundle-check.1.txt +0 -33
  522. data/bundler/man/bundle-clean.1.txt +0 -26
  523. data/bundler/man/bundle-config.1.txt +0 -528
  524. data/bundler/man/bundle-doctor.1.txt +0 -44
  525. data/bundler/man/bundle-exec.1.txt +0 -178
  526. data/bundler/man/bundle-gem.1.txt +0 -91
  527. data/bundler/man/bundle-info.1.txt +0 -21
  528. data/bundler/man/bundle-init.1.txt +0 -34
  529. data/bundler/man/bundle-inject.1.txt +0 -32
  530. data/bundler/man/bundle-install.1.txt +0 -401
  531. data/bundler/man/bundle-list.1.txt +0 -43
  532. data/bundler/man/bundle-lock.1.txt +0 -93
  533. data/bundler/man/bundle-open.1.txt +0 -29
  534. data/bundler/man/bundle-outdated.1.txt +0 -131
  535. data/bundler/man/bundle-platform.1.txt +0 -57
  536. data/bundler/man/bundle-pristine.1.txt +0 -44
  537. data/bundler/man/bundle-remove.1.txt +0 -34
  538. data/bundler/man/bundle-show.1.txt +0 -27
  539. data/bundler/man/bundle-update.1.txt +0 -390
  540. data/bundler/man/bundle-viz.1.txt +0 -39
  541. data/bundler/man/bundle.1.txt +0 -116
  542. data/bundler/man/gemfile.5.txt +0 -649
  543. data/lib/rubygems/source_local.rb +0 -7
  544. data/lib/rubygems/source_specific_file.rb +0 -6
  545. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  546. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  547. data/lib/ubygems.rb +0 -14
  548. data/tmp/.keep +0 -0
  549. data/util/CL2notes +0 -55
  550. data/util/bisect +0 -10
  551. data/util/ci.sh +0 -62
  552. data/util/cops/deprecations.rb +0 -52
  553. data/util/create_certs.rb +0 -171
  554. data/util/create_certs.sh +0 -27
  555. data/util/create_encrypted_key.rb +0 -16
  556. data/util/generate_spdx_license_list.rb +0 -63
  557. data/util/patch_with_prs.rb +0 -77
  558. data/util/rubocop +0 -8
  559. data/util/update_bundled_ca_certificates.rb +0 -139
  560. 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,41 +18,23 @@ 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/lib/bundler.rb
28
+ bundler/lib/bundler/b.rb
29
+ bundler/lib/bundler/man/bundle-b.1.ronn
30
+ bundler/lib/bundler/man/gemfile.5.ronn
31
+ bundler/lib/bundler/templates/.circleci/config.yml
32
+ bundler/lib/bundler/templates/.travis.yml
33
+ bundler/man/bundle-b.1
34
+ bundler/man/gemfile.5
35
+ ]
36
+
37
+ create_dummy_files(filelist)
58
38
 
59
39
  gemspec = Gem::Specification.new
60
40
  gemspec.author = "Us"
@@ -63,7 +43,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
63
43
  gemspec.bindir = "exe"
64
44
  gemspec.executables = ["bundle"]
65
45
 
66
- File.open 'bundler/bundler.gemspec', 'w' do |io|
46
+ File.open 'bundler/bundler.gemspec', 'w' do |io|
67
47
  io.puts gemspec.to_ruby
68
48
  end
69
49
 
@@ -72,30 +52,13 @@ class TestGemCommandsSetupCommand < Gem::TestCase
72
52
  io.puts gemspec.to_ruby
73
53
  end
74
54
 
75
- FileUtils.mkdir_p File.join(Gem.default_dir, "specifications")
55
+ spec_fetcher do |fetcher|
56
+ fetcher.download "bundler", "1.15.4"
76
57
 
77
- open(File.join(Gem.default_dir, "specifications", "bundler-#{BUNDLER_VERS}.gemspec"), 'w') do |io|
78
- io.puts "# bundler-#{BUNDLER_VERS}"
79
- end
58
+ fetcher.gem "bundler", BUNDLER_VERS
80
59
 
81
- open(File.join(Gem.default_dir, "specifications", "bundler-audit-1.0.0.gemspec"), 'w') do |io|
82
- io.puts '# bundler-audit'
83
- 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'
60
+ fetcher.gem "bundler-audit", "1.0.0"
96
61
  end
97
- install_gem gem
98
- File.join @gemhome, 'bin', name
99
62
  end
100
63
 
101
64
  def test_execute_regenerate_binstubs
@@ -123,7 +86,46 @@ class TestGemCommandsSetupCommand < Gem::TestCase
123
86
  assert_equal "I changed it!\n", File.read(gem_bin_path)
124
87
  end
125
88
 
89
+ def test_execute_regenerate_plugins
90
+ gem_plugin_path = gem_install_with_plugin 'a'
91
+ write_file gem_plugin_path do |io|
92
+ io.puts 'I changed it!'
93
+ end
94
+
95
+ @cmd.options[:document] = []
96
+ @cmd.execute
97
+
98
+ assert_match %r{\Arequire}, File.read(gem_plugin_path)
99
+ end
100
+
101
+ def test_execute_no_regenerate_plugins
102
+ gem_plugin_path = gem_install_with_plugin 'a'
103
+ write_file gem_plugin_path do |io|
104
+ io.puts 'I changed it!'
105
+ end
106
+
107
+ @cmd.options[:document] = []
108
+ @cmd.options[:regenerate_plugins] = false
109
+ @cmd.execute
110
+
111
+ assert_equal "I changed it!\n", File.read(gem_plugin_path)
112
+ end
113
+
114
+ def test_execute_regenerate_plugins_creates_plugins_dir_if_not_there
115
+ gem_plugin_path = gem_install_with_plugin 'a'
116
+
117
+ # Simulate gem installed with an older rubygems without a plugins layout
118
+ FileUtils.rm_rf Gem.plugindir
119
+
120
+ @cmd.options[:document] = []
121
+ @cmd.execute
122
+
123
+ assert_match %r{\Arequire}, File.read(gem_plugin_path)
124
+ end
125
+
126
126
  def test_execute_informs_about_installed_executables
127
+ @cmd.options[:document] = []
128
+
127
129
  use_ui @ui do
128
130
  @cmd.execute
129
131
  end
@@ -147,25 +149,25 @@ class TestGemCommandsSetupCommand < Gem::TestCase
147
149
 
148
150
  ruby_exec = sprintf Gem.default_exec_format, 'ruby'
149
151
 
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
152
+ bin_env = win_platform? ? "" : %w[/usr/bin/env /bin/env].find {|f| File.executable?(f) } + " "
153
+ assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(default_gem_bin_path)
154
+ assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(default_bundle_bin_path)
155
+ assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(gem_bin_path)
159
156
  end
160
157
 
161
- def test_pem_files_in
162
- assert_equal %w[rubygems/ssl_certs/rubygems.org/foo.pem],
163
- @cmd.pem_files_in('lib').sort
158
+ def test_files_in
159
+ assert_equal %w[rubygems.rb rubygems/ssl_certs/rubygems.org/foo.pem rubygems/test_case.rb],
160
+ @cmd.files_in('lib').sort
164
161
  end
165
162
 
166
- def test_rb_files_in
167
- assert_equal %w[rubygems.rb rubygems/test_case.rb],
168
- @cmd.rb_files_in('lib').sort
163
+ def test_bundler_man1_files_in
164
+ assert_equal %w[bundle-b.1],
165
+ @cmd.bundler_man1_files_in('bundler/man').sort
166
+ end
167
+
168
+ def test_bundler_man5_files_in
169
+ assert_equal %w[gemfile.5],
170
+ @cmd.bundler_man5_files_in('bundler/man').sort
169
171
  end
170
172
 
171
173
  def test_install_lib
@@ -179,6 +181,22 @@ class TestGemCommandsSetupCommand < Gem::TestCase
179
181
 
180
182
  assert_path_exists File.join(dir, 'bundler.rb')
181
183
  assert_path_exists File.join(dir, 'bundler/b.rb')
184
+
185
+ assert_path_exists File.join(dir, 'bundler/templates/.circleci/config.yml') unless RUBY_ENGINE == "truffleruby" # https://github.com/oracle/truffleruby/issues/2116
186
+ assert_path_exists File.join(dir, 'bundler/templates/.travis.yml')
187
+ end
188
+ end
189
+
190
+ def test_install_man
191
+ @cmd.extend FileUtils
192
+
193
+ Dir.mktmpdir 'man' do |dir|
194
+ @cmd.install_man dir
195
+
196
+ assert_path_exists File.join("#{dir}/man1", 'bundle-b.1')
197
+ refute_path_exists File.join("#{dir}/man1", 'bundle-b.1.ronn')
198
+ assert_path_exists File.join("#{dir}/man5", 'gemfile.5')
199
+ refute_path_exists File.join("#{dir}/man5", 'gemfile.5.ronn')
182
200
  end
183
201
  end
184
202
 
@@ -197,7 +215,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
197
215
  assert_path_exists File.join(bin_dir, "#{e}.bat")
198
216
  end
199
217
 
200
- assert_path_exists File.join bin_dir, Gem.default_exec_format % e
218
+ assert_path_exists File.join bin_dir, e
201
219
  end
202
220
 
203
221
  default_dir = Gem.default_specifications_dir
@@ -207,21 +225,14 @@ class TestGemCommandsSetupCommand < Gem::TestCase
207
225
  assert_path_exists File.join(default_dir, "bundler-#{BUNDLER_VERS}.gemspec")
208
226
 
209
227
  # expect to not remove bundler-* gemspecs.
210
- assert_path_exists File.join(Gem.default_dir, "specifications", "bundler-audit-1.0.0.gemspec")
228
+ assert_path_exists File.join(Gem.dir, "specifications", "bundler-audit-1.0.0.gemspec")
211
229
 
212
230
  # 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}"
217
-
218
- # expect to not remove other versions of bundler on `site_ruby`
219
- assert_path_exists 'default/gems/bundler-1.15.4'
231
+ refute_path_exists File.join(Gem.dir, "specifications", "bundler-#{BUNDLER_VERS}.gemspec")
220
232
 
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'
233
+ assert_path_exists "#{Gem.dir}/gems/bundler-#{BUNDLER_VERS}"
234
+ assert_path_exists "#{Gem.dir}/gems/bundler-1.15.4"
235
+ assert_path_exists "#{Gem.dir}/gems/bundler-audit-1.0.0"
225
236
  end
226
237
 
227
238
  def test_install_default_bundler_gem_with_force_flag
@@ -250,7 +261,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
250
261
  assert_path_exists File.join(bin_dir, "#{e}.bat")
251
262
  end
252
263
 
253
- assert_path_exists File.join bin_dir, Gem.default_exec_format % e
264
+ assert_path_exists File.join bin_dir, e
254
265
  end
255
266
  end
256
267
  end
@@ -260,52 +271,53 @@ class TestGemCommandsSetupCommand < Gem::TestCase
260
271
  lib_rubygems = File.join lib, 'rubygems'
261
272
  lib_bundler = File.join lib, 'bundler'
262
273
  lib_rubygems_defaults = File.join lib_rubygems, 'defaults'
274
+ lib_bundler_templates = File.join lib_bundler, 'templates'
263
275
 
264
276
  securerandom_rb = File.join lib, 'securerandom.rb'
265
277
 
266
278
  engine_defaults_rb = File.join lib_rubygems_defaults, 'jruby.rb'
267
279
  os_defaults_rb = File.join lib_rubygems_defaults, 'operating_system.rb'
268
280
 
281
+ old_gauntlet_rubygems_rb = File.join lib, 'gauntlet_rubygems.rb'
282
+
269
283
  old_builder_rb = File.join lib_rubygems, 'builder.rb'
270
284
  old_format_rb = File.join lib_rubygems, 'format.rb'
271
285
  old_bundler_c_rb = File.join lib_bundler, 'c.rb'
286
+ old_bundler_ci = File.join lib_bundler_templates, '.lecacy_ci', 'config.yml'
272
287
 
273
- FileUtils.mkdir_p lib_rubygems_defaults
274
- FileUtils.mkdir_p lib_bundler
288
+ files_that_go = [old_gauntlet_rubygems_rb, old_builder_rb, old_format_rb, old_bundler_c_rb, old_bundler_ci]
289
+ files_that_stay = [securerandom_rb, engine_defaults_rb, os_defaults_rb]
275
290
 
276
- File.open securerandom_rb, 'w' do |io|
277
- io.puts '# securerandom.rb'
278
- end
291
+ create_dummy_files(files_that_go + files_that_stay)
279
292
 
280
- File.open old_builder_rb, 'w' do |io|
281
- io.puts '# builder.rb'
282
- end
293
+ @cmd.remove_old_lib_files lib
283
294
 
284
- File.open old_format_rb, 'w' do |io|
285
- io.puts '# format.rb'
286
- end
295
+ 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
296
 
288
- File.open old_bundler_c_rb, 'w' do |io|
289
- io.puts '# c.rb'
290
- end
297
+ files_that_stay.each {|file| assert_path_exists file }
298
+ end
291
299
 
292
- File.open engine_defaults_rb, 'w' do |io|
293
- io.puts '# jruby.rb'
294
- end
300
+ def test_remove_old_man_files
301
+ man = File.join @install_dir, 'man'
295
302
 
296
- File.open os_defaults_rb, 'w' do |io|
297
- io.puts '# operating_system.rb'
298
- end
303
+ ruby_1 = File.join man, 'man1', 'ruby.1'
304
+ bundle_b_1 = File.join man, 'man1', 'bundle-b.1'
305
+ bundle_b_1_ronn = File.join man, 'man1', 'bundle-b.1.ronn'
306
+ bundle_b_1_txt = File.join man, 'man1', 'bundle-b.1.txt'
307
+ gemfile_5 = File.join man, 'man5', 'gemfile.5'
308
+ gemfile_5_ronn = File.join man, 'man5', 'gemfile.5.ronn'
309
+ gemfile_5_txt = File.join man, 'man5', 'gemfile.5.txt'
299
310
 
300
- @cmd.remove_old_lib_files lib
311
+ files_that_go = [bundle_b_1_txt, bundle_b_1_ronn, gemfile_5_txt, gemfile_5_ronn]
312
+ files_that_stay = [ruby_1, bundle_b_1, gemfile_5]
313
+
314
+ create_dummy_files(files_that_go + files_that_stay)
315
+
316
+ @cmd.remove_old_man_files man
301
317
 
302
- refute_path_exists old_builder_rb
303
- refute_path_exists old_format_rb
304
- refute_path_exists old_bundler_c_rb
318
+ files_that_go.each {|file| refute_path_exists file }
305
319
 
306
- assert_path_exists securerandom_rb
307
- assert_path_exists engine_defaults_rb
308
- assert_path_exists os_defaults_rb
320
+ files_that_stay.each {|file| assert_path_exists file }
309
321
  end
310
322
 
311
323
  def test_show_release_notes
@@ -315,9 +327,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
315
327
  @cmd.options[:previous_version] = Gem::Version.new '2.0.2'
316
328
 
317
329
  File.open 'History.txt', 'w' do |io|
318
- io.puts <<-History_txt
319
- # coding: UTF-8
320
-
330
+ io.puts <<-HISTORY_TXT
321
331
  === #{Gem::VERSION} / 2013-03-26
322
332
 
323
333
  * Bug fixes:
@@ -333,7 +343,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
333
343
 
334
344
  * Bug fixes:
335
345
  * Yet more bugs fixed
336
- History_txt
346
+ HISTORY_TXT
337
347
  end
338
348
 
339
349
  use_ui @ui do
@@ -359,14 +369,45 @@ class TestGemCommandsSetupCommand < Gem::TestCase
359
369
 
360
370
  private
361
371
 
372
+ def create_dummy_files(list)
373
+ list.each do |file|
374
+ FileUtils.mkdir_p File.dirname(file)
375
+
376
+ File.open file, 'w' do |io|
377
+ io.puts "# #{File.basename(file)}"
378
+ end
379
+ end
380
+ end
381
+
382
+ def gem_install(name)
383
+ gem = util_spec name do |s|
384
+ s.executables = [name]
385
+ s.files = %W[bin/#{name}]
386
+ end
387
+ write_file File.join @tempdir, 'bin', name do |f|
388
+ f.puts '#!/usr/bin/ruby'
389
+ end
390
+ install_gem gem
391
+ File.join @gemhome, 'bin', name
392
+ end
393
+
394
+ def gem_install_with_plugin(name)
395
+ gem = util_spec name do |s|
396
+ s.files = %W[lib/rubygems_plugin.rb]
397
+ end
398
+ write_file File.join @tempdir, 'lib', 'rubygems_plugin.rb' do |f|
399
+ f.puts "require '#{gem.plugins.first}'"
400
+ end
401
+ install_gem gem
402
+
403
+ File.join Gem.plugindir, "#{name}_plugin.rb"
404
+ end
405
+
362
406
  def default_gem_bin_path
363
- gem_exec = sprintf Gem.default_exec_format, 'gem'
364
- File.join @install_dir, 'bin', gem_exec
407
+ File.join @install_dir, 'bin', 'gem'
365
408
  end
366
409
 
367
410
  def default_bundle_bin_path
368
- bundle_exec = sprintf Gem.default_exec_format, 'bundle'
369
- File.join @install_dir, 'bin', bundle_exec
411
+ File.join @install_dir, 'bin', 'bundle'
370
412
  end
371
-
372
413
  end unless Gem.java_platform?