rubygems-update 3.3.18 → 3.4.19

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 (615) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1429 -1064
  3. data/CONTRIBUTING.md +31 -8
  4. data/Manifest.txt +61 -36
  5. data/POLICIES.md +55 -20
  6. data/README.md +19 -6
  7. data/bundler/CHANGELOG.md +457 -1
  8. data/bundler/README.md +3 -6
  9. data/bundler/UPGRADING.md +11 -4
  10. data/bundler/bundler.gemspec +8 -10
  11. data/bundler/exe/bundle +5 -16
  12. data/bundler/lib/bundler/build_metadata.rb +2 -2
  13. data/bundler/lib/bundler/cli/add.rb +1 -1
  14. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +2 -0
  17. data/bundler/lib/bundler/cli/console.rb +2 -2
  18. data/bundler/lib/bundler/cli/doctor.rb +4 -6
  19. data/bundler/lib/bundler/cli/gem.rb +62 -40
  20. data/bundler/lib/bundler/cli/info.rb +1 -1
  21. data/bundler/lib/bundler/cli/init.rb +6 -2
  22. data/bundler/lib/bundler/cli/install.rb +8 -6
  23. data/bundler/lib/bundler/cli/lock.rb +8 -5
  24. data/bundler/lib/bundler/cli/open.rb +6 -4
  25. data/bundler/lib/bundler/cli/outdated.rb +14 -7
  26. data/bundler/lib/bundler/cli/platform.rb +7 -5
  27. data/bundler/lib/bundler/cli/viz.rb +1 -1
  28. data/bundler/lib/bundler/cli.rb +53 -7
  29. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  30. data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
  31. data/bundler/lib/bundler/constants.rb +1 -1
  32. data/bundler/lib/bundler/current_ruby.rb +16 -5
  33. data/bundler/lib/bundler/definition.rb +262 -133
  34. data/bundler/lib/bundler/dependency.rb +20 -86
  35. data/bundler/lib/bundler/digest.rb +1 -1
  36. data/bundler/lib/bundler/dsl.rb +6 -7
  37. data/bundler/lib/bundler/endpoint_specification.rb +2 -13
  38. data/bundler/lib/bundler/env.rb +2 -2
  39. data/bundler/lib/bundler/environment_preserver.rb +3 -2
  40. data/bundler/lib/bundler/errors.rb +1 -11
  41. data/bundler/lib/bundler/feature_flag.rb +0 -2
  42. data/bundler/lib/bundler/fetcher/compact_index.rb +11 -13
  43. data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
  44. data/bundler/lib/bundler/fetcher/downloader.rb +4 -5
  45. data/bundler/lib/bundler/fetcher/index.rb +1 -2
  46. data/bundler/lib/bundler/fetcher.rb +21 -15
  47. data/bundler/lib/bundler/force_platform.rb +18 -0
  48. data/bundler/lib/bundler/friendly_errors.rb +1 -4
  49. data/bundler/lib/bundler/gem_helper.rb +3 -4
  50. data/bundler/lib/bundler/gem_helpers.rb +7 -2
  51. data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
  52. data/bundler/lib/bundler/graph.rb +3 -3
  53. data/bundler/lib/bundler/index.rb +13 -47
  54. data/bundler/lib/bundler/injector.rb +5 -4
  55. data/bundler/lib/bundler/inline.rb +9 -11
  56. data/bundler/lib/bundler/installer/parallel_installer.rb +4 -34
  57. data/bundler/lib/bundler/installer/standalone.rb +13 -9
  58. data/bundler/lib/bundler/installer.rb +17 -29
  59. data/bundler/lib/bundler/lazy_specification.rb +54 -53
  60. data/bundler/lib/bundler/lockfile_generator.rb +3 -3
  61. data/bundler/lib/bundler/lockfile_parser.rb +17 -16
  62. data/bundler/lib/bundler/man/bundle-add.1 +6 -2
  63. data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
  64. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  65. data/bundler/lib/bundler/man/bundle-cache.1 +9 -3
  66. data/bundler/lib/bundler/man/bundle-cache.1.ronn +9 -2
  67. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  68. data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
  69. data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
  70. data/bundler/lib/bundler/man/bundle-config.1 +26 -10
  71. data/bundler/lib/bundler/man/bundle-config.1.ronn +17 -10
  72. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  73. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  74. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  75. data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
  76. data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
  77. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  78. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  79. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  80. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  81. data/bundler/lib/bundler/man/bundle-info.1 +3 -3
  82. data/bundler/lib/bundler/man/bundle-info.1.ronn +3 -3
  83. data/bundler/lib/bundler/man/bundle-init.1 +5 -1
  84. data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
  85. data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
  86. data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
  87. data/bundler/lib/bundler/man/bundle-install.1 +5 -30
  88. data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -29
  89. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  90. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  91. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  92. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  93. data/bundler/lib/bundler/man/bundle-outdated.1 +13 -9
  94. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +12 -9
  95. data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
  96. data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
  97. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  98. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  99. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  100. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  101. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  102. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  103. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  104. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  105. data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
  106. data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
  107. data/bundler/lib/bundler/man/bundle.1 +15 -10
  108. data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
  109. data/bundler/lib/bundler/man/gemfile.5 +55 -55
  110. data/bundler/lib/bundler/man/gemfile.5.ronn +57 -53
  111. data/bundler/lib/bundler/man/index.txt +4 -0
  112. data/bundler/lib/bundler/match_metadata.rb +13 -0
  113. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  114. data/bundler/lib/bundler/mirror.rb +5 -7
  115. data/bundler/lib/bundler/plugin/index.rb +5 -5
  116. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
  117. data/bundler/lib/bundler/plugin/installer.rb +5 -2
  118. data/bundler/lib/bundler/plugin.rb +3 -1
  119. data/bundler/lib/bundler/remote_specification.rb +7 -12
  120. data/bundler/lib/bundler/resolver/base.rb +107 -0
  121. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  122. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  123. data/bundler/lib/bundler/resolver/package.rb +72 -0
  124. data/bundler/lib/bundler/resolver/root.rb +25 -0
  125. data/bundler/lib/bundler/resolver/spec_group.rb +42 -71
  126. data/bundler/lib/bundler/resolver.rb +335 -328
  127. data/bundler/lib/bundler/ruby_dsl.rb +7 -1
  128. data/bundler/lib/bundler/ruby_version.rb +8 -8
  129. data/bundler/lib/bundler/rubygems_ext.rb +100 -9
  130. data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -14
  131. data/bundler/lib/bundler/rubygems_integration.rb +11 -15
  132. data/bundler/lib/bundler/runtime.rb +2 -6
  133. data/bundler/lib/bundler/safe_marshal.rb +31 -0
  134. data/bundler/lib/bundler/settings.rb +5 -11
  135. data/bundler/lib/bundler/setup.rb +4 -1
  136. data/bundler/lib/bundler/shared_helpers.rb +3 -3
  137. data/bundler/lib/bundler/source/git/git_proxy.rb +237 -74
  138. data/bundler/lib/bundler/source/git.rb +55 -30
  139. data/bundler/lib/bundler/source/metadata.rb +1 -2
  140. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  141. data/bundler/lib/bundler/source/path.rb +6 -6
  142. data/bundler/lib/bundler/source/rubygems.rb +26 -81
  143. data/bundler/lib/bundler/source.rb +1 -1
  144. data/bundler/lib/bundler/source_list.rb +8 -2
  145. data/bundler/lib/bundler/spec_set.rb +60 -37
  146. data/bundler/lib/bundler/templates/Executable +1 -1
  147. data/bundler/lib/bundler/templates/Executable.bundler +5 -10
  148. data/bundler/lib/bundler/templates/Executable.standalone +2 -0
  149. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  150. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  151. data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
  152. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -1
  153. data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
  154. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  155. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  156. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  157. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  158. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  159. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  160. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
  161. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  162. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  163. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -2
  164. data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
  165. data/bundler/lib/bundler/ui/shell.rb +35 -12
  166. data/bundler/lib/bundler/ui/silent.rb +21 -5
  167. data/bundler/lib/bundler/uri_normalizer.rb +23 -0
  168. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  169. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  170. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  171. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1351 -409
  172. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  173. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  174. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  175. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  176. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  177. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  178. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  179. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  180. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  181. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  182. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  183. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  184. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  185. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  186. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  187. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  188. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  189. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  190. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  191. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  192. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  193. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  194. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  195. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  196. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  197. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  198. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  199. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  200. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  201. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +15 -9
  202. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -6
  203. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  204. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  205. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  206. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  207. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  208. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  209. data/bundler/lib/bundler/version.rb +5 -1
  210. data/bundler/lib/bundler/worker.rb +5 -7
  211. data/bundler/lib/bundler.rb +25 -77
  212. data/{bin → exe}/gem +4 -5
  213. data/{bin → exe}/update_rubygems +12 -10
  214. data/lib/rubygems/available_set.rb +4 -3
  215. data/lib/rubygems/basic_specification.rb +5 -4
  216. data/lib/rubygems/bundler_version_finder.rb +2 -2
  217. data/lib/rubygems/command.rb +41 -32
  218. data/lib/rubygems/command_manager.rb +30 -15
  219. data/lib/rubygems/commands/build_command.rb +12 -8
  220. data/lib/rubygems/commands/cert_command.rb +34 -33
  221. data/lib/rubygems/commands/check_command.rb +21 -20
  222. data/lib/rubygems/commands/cleanup_command.rb +18 -17
  223. data/lib/rubygems/commands/contents_command.rb +14 -13
  224. data/lib/rubygems/commands/dependency_command.rb +17 -16
  225. data/lib/rubygems/commands/environment_command.rb +6 -5
  226. data/lib/rubygems/commands/exec_command.rb +249 -0
  227. data/lib/rubygems/commands/fetch_command.rb +10 -9
  228. data/lib/rubygems/commands/generate_index_command.rb +18 -17
  229. data/lib/rubygems/commands/help_command.rb +7 -6
  230. data/lib/rubygems/commands/info_command.rb +3 -3
  231. data/lib/rubygems/commands/install_command.rb +28 -23
  232. data/lib/rubygems/commands/list_command.rb +4 -3
  233. data/lib/rubygems/commands/lock_command.rb +5 -4
  234. data/lib/rubygems/commands/mirror_command.rb +4 -3
  235. data/lib/rubygems/commands/open_command.rb +10 -9
  236. data/lib/rubygems/commands/outdated_command.rb +6 -5
  237. data/lib/rubygems/commands/owner_command.rb +17 -14
  238. data/lib/rubygems/commands/pristine_command.rb +46 -36
  239. data/lib/rubygems/commands/push_command.rb +9 -8
  240. data/lib/rubygems/commands/query_command.rb +9 -8
  241. data/lib/rubygems/commands/rdoc_command.rb +21 -19
  242. data/lib/rubygems/commands/search_command.rb +4 -3
  243. data/lib/rubygems/commands/server_command.rb +4 -3
  244. data/lib/rubygems/commands/setup_command.rb +97 -106
  245. data/lib/rubygems/commands/signin_command.rb +10 -9
  246. data/lib/rubygems/commands/signout_command.rb +8 -7
  247. data/lib/rubygems/commands/sources_command.rb +22 -21
  248. data/lib/rubygems/commands/specification_command.rb +14 -13
  249. data/lib/rubygems/commands/stale_command.rb +3 -2
  250. data/lib/rubygems/commands/uninstall_command.rb +44 -40
  251. data/lib/rubygems/commands/unpack_command.rb +14 -13
  252. data/lib/rubygems/commands/update_command.rb +42 -63
  253. data/lib/rubygems/commands/which_command.rb +8 -7
  254. data/lib/rubygems/commands/yank_command.rb +12 -11
  255. data/lib/rubygems/config_file.rb +55 -21
  256. data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
  257. data/lib/rubygems/core_ext/kernel_require.rb +109 -115
  258. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  259. data/lib/rubygems/core_ext/tcpsocket_init.rb +3 -1
  260. data/lib/rubygems/defaults.rb +33 -18
  261. data/lib/rubygems/dependency.rb +15 -11
  262. data/lib/rubygems/dependency_installer.rb +38 -37
  263. data/lib/rubygems/dependency_list.rb +7 -6
  264. data/lib/rubygems/deprecate.rb +3 -2
  265. data/lib/rubygems/doctor.rb +19 -18
  266. data/lib/rubygems/errors.rb +3 -2
  267. data/lib/rubygems/exceptions.rb +16 -8
  268. data/lib/rubygems/ext/build_error.rb +2 -1
  269. data/lib/rubygems/ext/builder.rb +37 -21
  270. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
  271. data/lib/rubygems/ext/cargo_builder.rb +150 -111
  272. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  273. data/lib/rubygems/ext/configure_builder.rb +2 -1
  274. data/lib/rubygems/ext/ext_conf_builder.rb +11 -9
  275. data/lib/rubygems/ext/rake_builder.rb +7 -5
  276. data/lib/rubygems/ext.rb +8 -7
  277. data/lib/rubygems/gem_runner.rb +6 -5
  278. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
  279. data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
  280. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
  281. data/lib/rubygems/gemcutter_utilities.rb +90 -34
  282. data/lib/rubygems/indexer.rb +29 -28
  283. data/lib/rubygems/install_default_message.rb +3 -2
  284. data/lib/rubygems/install_message.rb +3 -2
  285. data/lib/rubygems/install_update_options.rb +56 -55
  286. data/lib/rubygems/installer.rb +54 -46
  287. data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
  288. data/lib/rubygems/local_remote_options.rb +19 -20
  289. data/lib/rubygems/mock_gem_ui.rb +3 -2
  290. data/lib/rubygems/name_tuple.rb +5 -4
  291. data/lib/rubygems/optparse/lib/optparse.rb +20 -15
  292. data/lib/rubygems/optparse.rb +1 -1
  293. data/lib/rubygems/package/digest_io.rb +1 -0
  294. data/lib/rubygems/package/file_source.rb +3 -2
  295. data/lib/rubygems/package/io_source.rb +1 -0
  296. data/lib/rubygems/package/old.rb +9 -8
  297. data/lib/rubygems/package/source.rb +1 -0
  298. data/lib/rubygems/package/tar_header.rb +63 -62
  299. data/lib/rubygems/package/tar_reader/entry.rb +91 -9
  300. data/lib/rubygems/package/tar_reader.rb +2 -29
  301. data/lib/rubygems/package/tar_writer.rb +8 -7
  302. data/lib/rubygems/package.rb +64 -48
  303. data/lib/rubygems/package_task.rb +5 -4
  304. data/lib/rubygems/path_support.rb +1 -0
  305. data/lib/rubygems/platform.rb +79 -53
  306. data/lib/rubygems/psych_tree.rb +2 -1
  307. data/lib/rubygems/query_utils.rb +35 -35
  308. data/lib/rubygems/rdoc.rb +3 -2
  309. data/lib/rubygems/remote_fetcher.rb +23 -22
  310. data/lib/rubygems/request/connection_pools.rb +4 -4
  311. data/lib/rubygems/request/http_pool.rb +2 -1
  312. data/lib/rubygems/request/https_pool.rb +1 -0
  313. data/lib/rubygems/request.rb +23 -22
  314. data/lib/rubygems/request_set/gem_dependency_api.rb +123 -123
  315. data/lib/rubygems/request_set/lockfile/parser.rb +28 -27
  316. data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -3
  317. data/lib/rubygems/request_set/lockfile.rb +6 -5
  318. data/lib/rubygems/request_set.rb +20 -19
  319. data/lib/rubygems/requirement.rb +15 -14
  320. data/lib/rubygems/resolver/activation_request.rb +4 -3
  321. data/lib/rubygems/resolver/api_set.rb +5 -4
  322. data/lib/rubygems/resolver/api_specification.rb +7 -6
  323. data/lib/rubygems/resolver/best_set.rb +6 -5
  324. data/lib/rubygems/resolver/composed_set.rb +1 -0
  325. data/lib/rubygems/resolver/conflict.rb +11 -10
  326. data/lib/rubygems/resolver/current_set.rb +1 -0
  327. data/lib/rubygems/resolver/dependency_request.rb +3 -2
  328. data/lib/rubygems/resolver/git_set.rb +3 -2
  329. data/lib/rubygems/resolver/git_specification.rb +7 -6
  330. data/lib/rubygems/resolver/index_set.rb +4 -3
  331. data/lib/rubygems/resolver/index_specification.rb +7 -5
  332. data/lib/rubygems/resolver/installed_specification.rb +5 -4
  333. data/lib/rubygems/resolver/installer_set.rb +15 -17
  334. data/lib/rubygems/resolver/local_specification.rb +3 -2
  335. data/lib/rubygems/resolver/lock_set.rb +5 -4
  336. data/lib/rubygems/resolver/lock_specification.rb +5 -4
  337. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  338. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  339. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  340. data/lib/rubygems/resolver/molinillo.rb +2 -1
  341. data/lib/rubygems/resolver/requirement_list.rb +1 -0
  342. data/lib/rubygems/resolver/set.rb +1 -0
  343. data/lib/rubygems/resolver/source_set.rb +2 -0
  344. data/lib/rubygems/resolver/spec_specification.rb +1 -0
  345. data/lib/rubygems/resolver/specification.rb +2 -1
  346. data/lib/rubygems/resolver/stats.rb +2 -1
  347. data/lib/rubygems/resolver/vendor_set.rb +2 -1
  348. data/lib/rubygems/resolver/vendor_specification.rb +4 -3
  349. data/lib/rubygems/resolver.rb +41 -40
  350. data/lib/rubygems/s3_uri_signer.rb +10 -8
  351. data/lib/rubygems/safe_yaml.rb +4 -2
  352. data/lib/rubygems/security/policies.rb +48 -47
  353. data/lib/rubygems/security/policy.rb +19 -18
  354. data/lib/rubygems/security/signer.rb +6 -5
  355. data/lib/rubygems/security/trust_dir.rb +5 -4
  356. data/lib/rubygems/security.rb +30 -42
  357. data/lib/rubygems/security_option.rb +6 -5
  358. data/lib/rubygems/shellwords.rb +3 -0
  359. data/lib/rubygems/source/git.rb +22 -22
  360. data/lib/rubygems/source/installed.rb +2 -1
  361. data/lib/rubygems/source/local.rb +3 -2
  362. data/lib/rubygems/source/lock.rb +1 -0
  363. data/lib/rubygems/source/specific_file.rb +2 -1
  364. data/lib/rubygems/source/vendor.rb +1 -0
  365. data/lib/rubygems/source.rb +16 -16
  366. data/lib/rubygems/spec_fetcher.rb +10 -9
  367. data/lib/rubygems/specification.rb +121 -114
  368. data/lib/rubygems/specification_policy.rb +36 -15
  369. data/lib/rubygems/stub_specification.rb +11 -9
  370. data/lib/rubygems/text.rb +2 -2
  371. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  372. data/lib/rubygems/tsort.rb +1 -1
  373. data/lib/rubygems/uninstaller.rb +19 -18
  374. data/lib/rubygems/update_suggestion.rb +69 -0
  375. data/lib/rubygems/uri.rb +4 -4
  376. data/lib/rubygems/uri_formatter.rb +1 -1
  377. data/lib/rubygems/user_interaction.rb +37 -21
  378. data/lib/rubygems/util/licenses.rb +4 -3
  379. data/lib/rubygems/util/list.rb +1 -0
  380. data/lib/rubygems/util.rb +12 -15
  381. data/lib/rubygems/validator.rb +7 -6
  382. data/lib/rubygems/version.rb +17 -11
  383. data/lib/rubygems/version_option.rb +4 -3
  384. data/lib/rubygems.rb +89 -68
  385. data/rubygems-update.gemspec +10 -8
  386. data/setup.rb +10 -9
  387. data/test/rubygems/alternate_cert.pem +14 -14
  388. data/test/rubygems/alternate_cert_32.pem +15 -15
  389. data/test/rubygems/alternate_key.pem +25 -25
  390. data/test/rubygems/bad_rake.rb +1 -0
  391. data/test/rubygems/bundler_test_gem.rb +421 -0
  392. data/test/rubygems/child_cert.pem +15 -16
  393. data/test/rubygems/child_cert_32.pem +15 -16
  394. data/test/rubygems/child_key.pem +25 -25
  395. data/test/rubygems/encrypted_private_key.pem +26 -26
  396. data/test/rubygems/expired_cert.pem +15 -15
  397. data/test/rubygems/fake_certlib/openssl.rb +1 -0
  398. data/test/rubygems/future_cert.pem +15 -15
  399. data/test/rubygems/future_cert_32.pem +15 -15
  400. data/test/rubygems/good_rake.rb +1 -0
  401. data/test/rubygems/grandchild_cert.pem +15 -16
  402. data/test/rubygems/grandchild_cert_32.pem +15 -16
  403. data/test/rubygems/grandchild_key.pem +25 -25
  404. data/test/rubygems/helper.rb +172 -151
  405. data/test/rubygems/installer_test_case.rb +14 -13
  406. data/test/rubygems/invalid_issuer_cert.pem +16 -16
  407. data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
  408. data/test/rubygems/invalid_key.pem +25 -25
  409. data/test/rubygems/invalid_signer_cert.pem +15 -15
  410. data/test/rubygems/invalid_signer_cert_32.pem +15 -15
  411. data/test/rubygems/invalidchild_cert.pem +15 -16
  412. data/test/rubygems/invalidchild_cert_32.pem +15 -16
  413. data/test/rubygems/invalidchild_key.pem +25 -25
  414. data/test/rubygems/multifactor_auth_utilities.rb +111 -0
  415. data/test/rubygems/package/tar_test_case.rb +53 -17
  416. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  417. data/test/rubygems/plugin/exception/rubygems_plugin.rb +2 -1
  418. data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
  419. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +2 -1
  420. data/test/rubygems/private_key.pem +25 -25
  421. data/test/rubygems/public_cert.pem +16 -16
  422. data/test/rubygems/public_cert_32.pem +15 -15
  423. data/test/rubygems/public_key.pem +7 -7
  424. data/test/rubygems/rubygems/commands/crash_command.rb +1 -0
  425. data/test/rubygems/rubygems_plugin.rb +3 -2
  426. data/test/rubygems/simple_gem.rb +2 -1
  427. data/test/rubygems/specifications/bar-0.0.2.gemspec +2 -0
  428. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +6 -4
  429. data/test/rubygems/test_bundled_ca.rb +13 -12
  430. data/test/rubygems/test_config.rb +5 -4
  431. data/test/rubygems/test_deprecate.rb +5 -4
  432. data/test/rubygems/test_exit.rb +9 -3
  433. data/test/rubygems/test_gem.rb +339 -677
  434. data/test/rubygems/test_gem_available_set.rb +22 -21
  435. data/test/rubygems/test_gem_bundler_version_finder.rb +6 -4
  436. data/test/rubygems/test_gem_command.rb +45 -44
  437. data/test/rubygems/test_gem_command_manager.rb +96 -30
  438. data/test/rubygems/test_gem_commands_build_command.rb +74 -63
  439. data/test/rubygems/test_gem_commands_cert_command.rb +98 -99
  440. data/test/rubygems/test_gem_commands_check_command.rb +5 -4
  441. data/test/rubygems/test_gem_commands_cleanup_command.rb +41 -40
  442. data/test/rubygems/test_gem_commands_contents_command.rb +28 -27
  443. data/test/rubygems/test_gem_commands_dependency_command.rb +37 -36
  444. data/test/rubygems/test_gem_commands_environment_command.rb +17 -16
  445. data/test/rubygems/test_gem_commands_exec_command.rb +853 -0
  446. data/test/rubygems/test_gem_commands_fetch_command.rb +38 -37
  447. data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -7
  448. data/test/rubygems/test_gem_commands_help_command.rb +14 -13
  449. data/test/rubygems/test_gem_commands_info_command.rb +29 -2
  450. data/test/rubygems/test_gem_commands_install_command.rb +152 -132
  451. data/test/rubygems/test_gem_commands_list_command.rb +5 -4
  452. data/test/rubygems/test_gem_commands_lock_command.rb +11 -10
  453. data/test/rubygems/test_gem_commands_mirror.rb +3 -2
  454. data/test/rubygems/test_gem_commands_open_command.rb +5 -4
  455. data/test/rubygems/test_gem_commands_outdated_command.rb +10 -9
  456. data/test/rubygems/test_gem_commands_owner_command.rb +227 -50
  457. data/test/rubygems/test_gem_commands_pristine_command.rb +142 -93
  458. data/test/rubygems/test_gem_commands_push_command.rb +189 -64
  459. data/test/rubygems/test_gem_commands_query_command.rb +74 -73
  460. data/test/rubygems/test_gem_commands_search_command.rb +3 -2
  461. data/test/rubygems/test_gem_commands_server_command.rb +3 -2
  462. data/test/rubygems/test_gem_commands_setup_command.rb +123 -96
  463. data/test/rubygems/test_gem_commands_signin_command.rb +71 -31
  464. data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
  465. data/test/rubygems/test_gem_commands_sources_command.rb +29 -29
  466. data/test/rubygems/test_gem_commands_specification_command.rb +33 -32
  467. data/test/rubygems/test_gem_commands_stale_command.rb +5 -4
  468. data/test/rubygems/test_gem_commands_uninstall_command.rb +99 -81
  469. data/test/rubygems/test_gem_commands_unpack_command.rb +32 -31
  470. data/test/rubygems/test_gem_commands_update_command.rb +96 -95
  471. data/test/rubygems/test_gem_commands_which_command.rb +7 -6
  472. data/test/rubygems/test_gem_commands_yank_command.rb +162 -43
  473. data/test/rubygems/test_gem_config_file.rb +94 -81
  474. data/test/rubygems/test_gem_dependency.rb +76 -73
  475. data/test/rubygems/test_gem_dependency_installer.rb +200 -165
  476. data/test/rubygems/test_gem_dependency_list.rb +48 -47
  477. data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -4
  478. data/test/rubygems/test_gem_doctor.rb +27 -26
  479. data/test/rubygems/test_gem_ext_builder.rb +60 -61
  480. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +4 -4
  481. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +23 -33
  482. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.toml → ext/custom_name_lib/Cargo.toml} +1 -1
  483. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{src → ext/custom_name_lib/src}/lib.rs +1 -1
  484. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +3 -0
  485. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +37 -33
  486. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  487. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +2 -0
  488. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
  489. data/test/rubygems/test_gem_ext_cargo_builder.rb +48 -59
  490. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +20 -19
  491. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +21 -36
  492. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -15
  493. data/test/rubygems/test_gem_ext_configure_builder.rb +14 -13
  494. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
  495. data/test/rubygems/test_gem_ext_rake_builder.rb +16 -15
  496. data/test/rubygems/test_gem_gem_runner.rb +15 -9
  497. data/test/rubygems/test_gem_gemcutter_utilities.rb +170 -84
  498. data/test/rubygems/test_gem_impossible_dependencies_error.rb +5 -4
  499. data/test/rubygems/test_gem_indexer.rb +87 -67
  500. data/test/rubygems/test_gem_install_update_options.rb +17 -16
  501. data/test/rubygems/test_gem_installer.rb +422 -304
  502. data/test/rubygems/test_gem_local_remote_options.rb +11 -10
  503. data/test/rubygems/test_gem_name_tuple.rb +5 -4
  504. data/test/rubygems/test_gem_package.rb +243 -231
  505. data/test/rubygems/test_gem_package_old.rb +14 -13
  506. data/test/rubygems/test_gem_package_tar_header.rb +48 -47
  507. data/test/rubygems/test_gem_package_tar_reader.rb +56 -8
  508. data/test/rubygems/test_gem_package_tar_reader_entry.rb +162 -16
  509. data/test/rubygems/test_gem_package_tar_writer.rb +77 -76
  510. data/test/rubygems/test_gem_package_task.rb +19 -18
  511. data/test/rubygems/test_gem_path_support.rb +15 -14
  512. data/test/rubygems/test_gem_platform.rb +333 -227
  513. data/test/rubygems/test_gem_rdoc.rb +15 -14
  514. data/test/rubygems/test_gem_remote_fetcher.rb +155 -154
  515. data/test/rubygems/test_gem_request.rb +64 -58
  516. data/test/rubygems/test_gem_request_connection_pools.rb +30 -29
  517. data/test/rubygems/test_gem_request_set.rb +101 -100
  518. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +210 -211
  519. data/test/rubygems/test_gem_request_set_lockfile.rb +87 -86
  520. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -57
  521. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +63 -62
  522. data/test/rubygems/test_gem_requirement.rb +48 -41
  523. data/test/rubygems/test_gem_resolver.rb +167 -99
  524. data/test/rubygems/test_gem_resolver_activation_request.rb +7 -6
  525. data/test/rubygems/test_gem_resolver_api_set.rb +34 -33
  526. data/test/rubygems/test_gem_resolver_api_specification.rb +48 -47
  527. data/test/rubygems/test_gem_resolver_best_set.rb +23 -22
  528. data/test/rubygems/test_gem_resolver_composed_set.rb +2 -1
  529. data/test/rubygems/test_gem_resolver_conflict.rb +13 -12
  530. data/test/rubygems/test_gem_resolver_dependency_request.rb +16 -15
  531. data/test/rubygems/test_gem_resolver_git_set.rb +22 -21
  532. data/test/rubygems/test_gem_resolver_git_specification.rb +22 -21
  533. data/test/rubygems/test_gem_resolver_index_set.rb +13 -12
  534. data/test/rubygems/test_gem_resolver_index_specification.rb +17 -16
  535. data/test/rubygems/test_gem_resolver_installed_specification.rb +6 -5
  536. data/test/rubygems/test_gem_resolver_installer_set.rb +79 -34
  537. data/test/rubygems/test_gem_resolver_local_specification.rb +8 -7
  538. data/test/rubygems/test_gem_resolver_lock_set.rb +13 -12
  539. data/test/rubygems/test_gem_resolver_lock_specification.rb +18 -17
  540. data/test/rubygems/test_gem_resolver_requirement_list.rb +2 -1
  541. data/test/rubygems/test_gem_resolver_specification.rb +9 -8
  542. data/test/rubygems/test_gem_resolver_vendor_set.rb +7 -6
  543. data/test/rubygems/test_gem_resolver_vendor_specification.rb +11 -10
  544. data/test/rubygems/test_gem_security.rb +69 -68
  545. data/test/rubygems/test_gem_security_policy.rb +72 -72
  546. data/test/rubygems/test_gem_security_signer.rb +35 -34
  547. data/test/rubygems/test_gem_security_trust_dir.rb +7 -6
  548. data/test/rubygems/test_gem_silent_ui.rb +39 -32
  549. data/test/rubygems/test_gem_source.rb +45 -44
  550. data/test/rubygems/test_gem_source_fetch_problem.rb +10 -9
  551. data/test/rubygems/test_gem_source_git.rb +69 -62
  552. data/test/rubygems/test_gem_source_installed.rb +17 -16
  553. data/test/rubygems/test_gem_source_list.rb +6 -5
  554. data/test/rubygems/test_gem_source_local.rb +15 -14
  555. data/test/rubygems/test_gem_source_lock.rb +32 -31
  556. data/test/rubygems/test_gem_source_specific_file.rb +18 -17
  557. data/test/rubygems/test_gem_source_subpath_problem.rb +8 -7
  558. data/test/rubygems/test_gem_source_vendor.rb +14 -13
  559. data/test/rubygems/test_gem_spec_fetcher.rb +73 -72
  560. data/test/rubygems/test_gem_specification.rb +533 -469
  561. data/test/rubygems/test_gem_stream_ui.rb +53 -22
  562. data/test/rubygems/test_gem_stub_specification.rb +33 -32
  563. data/test/rubygems/test_gem_text.rb +2 -1
  564. data/test/rubygems/test_gem_uninstaller.rb +118 -117
  565. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +4 -3
  566. data/test/rubygems/test_gem_update_suggestion.rb +209 -0
  567. data/test/rubygems/test_gem_uri.rb +6 -4
  568. data/test/rubygems/test_gem_uri_formatter.rb +15 -14
  569. data/test/rubygems/test_gem_util.rb +24 -23
  570. data/test/rubygems/test_gem_validator.rb +8 -8
  571. data/test/rubygems/test_gem_version.rb +24 -16
  572. data/test/rubygems/test_gem_version_option.rb +16 -15
  573. data/test/rubygems/test_kernel.rb +43 -48
  574. data/test/rubygems/test_project_sanity.rb +32 -3
  575. data/test/rubygems/test_remote_fetch_error.rb +8 -7
  576. data/test/rubygems/test_require.rb +118 -103
  577. data/test/rubygems/test_rubygems.rb +10 -8
  578. data/test/rubygems/test_webauthn_listener.rb +143 -0
  579. data/test/rubygems/test_webauthn_listener_response.rb +93 -0
  580. data/test/rubygems/test_webauthn_poller.rb +124 -0
  581. data/test/rubygems/utilities.rb +98 -34
  582. data/test/rubygems/wrong_key_cert.pem +15 -15
  583. data/test/rubygems/wrong_key_cert_32.pem +15 -15
  584. data/test/test_changelog_generator.rb +1 -1
  585. metadata +99 -46
  586. data/bundler/lib/bundler/dep_proxy.rb +0 -55
  587. data/bundler/lib/bundler/templates/gems.rb +0 -5
  588. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
  589. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  590. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  591. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  592. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  593. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  594. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  595. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  596. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  597. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  598. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  599. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  600. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  601. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  602. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  603. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  604. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  605. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  606. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  607. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  608. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  609. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  610. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  611. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  612. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  613. data/bundler/lib/bundler/version_ranges.rb +0 -122
  614. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
  615. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
3
- require 'rubygems/request_set'
2
+
3
+ require_relative "helper"
4
+ require "rubygems/request_set"
4
5
 
5
6
  class TestGemRequestSet < Gem::TestCase
6
7
  def setup
@@ -23,24 +24,24 @@ class TestGemRequestSet < Gem::TestCase
23
24
  def test_gem_duplicate
24
25
  rs = Gem::RequestSet.new
25
26
 
26
- rs.gem 'a', '1'
27
- rs.gem 'a', '2'
27
+ rs.gem "a", "1"
28
+ rs.gem "a", "2"
28
29
 
29
- assert_equal [dep('a', '= 1', '= 2')], rs.dependencies
30
+ assert_equal [dep("a", "= 1", "= 2")], rs.dependencies
30
31
  end
31
32
 
32
33
  def test_import
33
34
  rs = Gem::RequestSet.new
34
- rs.gem 'a'
35
+ rs.gem "a"
35
36
 
36
- rs.import [dep('b')]
37
+ rs.import [dep("b")]
37
38
 
38
- assert_equal [dep('a'), dep('b')], rs.dependencies
39
+ assert_equal [dep("a"), dep("b")], rs.dependencies
39
40
  end
40
41
 
41
42
  def test_install_from_gemdeps
42
43
  spec_fetcher do |fetcher|
43
- fetcher.gem 'a', 2
44
+ fetcher.gem "a", 2
44
45
  end
45
46
 
46
47
  done_installing_ran = false
@@ -52,7 +53,7 @@ class TestGemRequestSet < Gem::TestCase
52
53
  rs = Gem::RequestSet.new
53
54
  installed = []
54
55
 
55
- File.open 'gem.deps.rb', 'w' do |io|
56
+ File.open "gem.deps.rb", "w" do |io|
56
57
  io.puts 'gem "a"'
57
58
  io.flush
58
59
 
@@ -63,9 +64,9 @@ class TestGemRequestSet < Gem::TestCase
63
64
  assert_kind_of Array, result # what is supposed to be in here?
64
65
  end
65
66
 
66
- assert_includes installed, 'a-2'
67
- assert_path_exist File.join @gemhome, 'gems', 'a-2'
68
- assert_path_exist 'gem.deps.rb.lock'
67
+ assert_includes installed, "a-2"
68
+ assert_path_exist File.join @gemhome, "gems", "a-2"
69
+ assert_path_exist "gem.deps.rb.lock"
69
70
 
70
71
  assert rs.remote
71
72
  refute done_installing_ran
@@ -73,12 +74,12 @@ class TestGemRequestSet < Gem::TestCase
73
74
 
74
75
  def test_install_from_gemdeps_explain
75
76
  spec_fetcher do |fetcher|
76
- fetcher.gem 'a', 2
77
+ fetcher.gem "a", 2
77
78
  end
78
79
 
79
80
  rs = Gem::RequestSet.new
80
81
 
81
- File.open 'gem.deps.rb', 'w' do |io|
82
+ File.open "gem.deps.rb", "w" do |io|
82
83
  io.puts 'gem "a"'
83
84
  io.flush
84
85
 
@@ -96,21 +97,21 @@ Gems to install:
96
97
 
97
98
  def test_install_from_gemdeps_install_dir
98
99
  spec_fetcher do |fetcher|
99
- fetcher.gem 'a', 2
100
+ fetcher.gem "a", 2
100
101
  end
101
102
 
102
103
  util_clear_gems
103
- assert_path_not_exist File.join Gem.dir, 'gems', 'a-2'
104
+ assert_path_not_exist File.join Gem.dir, "gems", "a-2"
104
105
 
105
106
  rs = Gem::RequestSet.new
106
107
  installed = []
107
108
 
108
- File.open 'gem.deps.rb', 'w' do |io|
109
+ File.open "gem.deps.rb", "w" do |io|
109
110
  io.puts 'gem "a"'
110
111
  end
111
112
 
112
113
  options = {
113
- :gemdeps => 'gem.deps.rb',
114
+ :gemdeps => "gem.deps.rb",
114
115
  :install_dir => "#{@gemhome}2",
115
116
  }
116
117
 
@@ -118,18 +119,18 @@ Gems to install:
118
119
  installed << req.full_name
119
120
  end
120
121
 
121
- assert_includes installed, 'a-2'
122
- assert_path_not_exist File.join Gem.dir, 'gems', 'a-2'
122
+ assert_includes installed, "a-2"
123
+ assert_path_not_exist File.join Gem.dir, "gems", "a-2"
123
124
  end
124
125
 
125
126
  def test_install_from_gemdeps_local
126
127
  spec_fetcher do |fetcher|
127
- fetcher.gem 'a', 2
128
+ fetcher.gem "a", 2
128
129
  end
129
130
 
130
131
  rs = Gem::RequestSet.new
131
132
 
132
- File.open 'gem.deps.rb', 'w' do |io|
133
+ File.open "gem.deps.rb", "w" do |io|
133
134
  io.puts 'gem "a"'
134
135
  io.flush
135
136
 
@@ -143,15 +144,15 @@ Gems to install:
143
144
 
144
145
  def test_install_from_gemdeps_lockfile
145
146
  spec_fetcher do |fetcher|
146
- fetcher.download 'a', 1
147
- fetcher.download 'a', 2
148
- fetcher.download 'b', 1, 'a' => '>= 0'
147
+ fetcher.download "a", 1
148
+ fetcher.download "a", 2
149
+ fetcher.download "b", 1, "a" => ">= 0"
149
150
  end
150
151
 
151
152
  rs = Gem::RequestSet.new
152
153
  installed = []
153
154
 
154
- File.open 'gem.deps.rb.lock', 'w' do |io|
155
+ File.open "gem.deps.rb.lock", "w" do |io|
155
156
  io.puts <<-LOCKFILE
156
157
  GEM
157
158
  remote: #{@gem_repo}
@@ -168,19 +169,19 @@ DEPENDENCIES
168
169
  LOCKFILE
169
170
  end
170
171
 
171
- File.open 'gem.deps.rb', 'w' do |io|
172
+ File.open "gem.deps.rb", "w" do |io|
172
173
  io.puts 'gem "b"'
173
174
  end
174
175
 
175
- rs.install_from_gemdeps :gemdeps => 'gem.deps.rb' do |req, installer|
176
+ rs.install_from_gemdeps :gemdeps => "gem.deps.rb" do |req, installer|
176
177
  installed << req.full_name
177
178
  end
178
179
 
179
- assert_includes installed, 'b-1'
180
- assert_includes installed, 'a-1'
180
+ assert_includes installed, "b-1"
181
+ assert_includes installed, "a-1"
181
182
 
182
- assert_path_exist File.join @gemhome, 'specifications', 'a-1.gemspec'
183
- assert_path_exist File.join @gemhome, 'specifications', 'b-1.gemspec'
183
+ assert_path_exist File.join @gemhome, "specifications", "a-1.gemspec"
184
+ assert_path_exist File.join @gemhome, "specifications", "b-1.gemspec"
184
185
  end
185
186
 
186
187
  def test_install_from_gemdeps_complex_dependencies
@@ -197,7 +198,7 @@ DEPENDENCIES
197
198
  rs = Gem::RequestSet.new
198
199
  installed = []
199
200
 
200
- File.open 'Gemfile.lock', 'w' do |io|
201
+ File.open "Gemfile.lock", "w" do |io|
201
202
  io.puts <<-LOCKFILE
202
203
  GEM
203
204
  remote: #{@gem_repo}
@@ -212,7 +213,7 @@ DEPENDENCIES
212
213
  LOCKFILE
213
214
  end
214
215
 
215
- File.open 'testo.gemspec', 'w' do |io|
216
+ File.open "testo.gemspec", "w" do |io|
216
217
  io.puts <<-LOCKFILE
217
218
  Gem::Specification.new do |spec|
218
219
  spec.name = 'testo'
@@ -222,28 +223,28 @@ end
222
223
  LOCKFILE
223
224
  end
224
225
 
225
- File.open 'Gemfile', 'w' do |io|
226
+ File.open "Gemfile", "w" do |io|
226
227
  io.puts("gemspec")
227
228
  end
228
229
 
229
- rs.install_from_gemdeps :gemdeps => 'Gemfile' do |req, installer|
230
+ rs.install_from_gemdeps :gemdeps => "Gemfile" do |req, installer|
230
231
  installed << req.full_name
231
232
  end
232
233
 
233
- assert_includes installed, 'z-1.0.3'
234
+ assert_includes installed, "z-1.0.3"
234
235
 
235
- assert_path_exist File.join @gemhome, 'specifications', 'z-1.0.3.gemspec'
236
+ assert_path_exist File.join @gemhome, "specifications", "z-1.0.3.gemspec"
236
237
  end
237
238
 
238
239
  def test_install_from_gemdeps_version_mismatch
239
240
  spec_fetcher do |fetcher|
240
- fetcher.gem 'a', 2
241
+ fetcher.gem "a", 2
241
242
  end
242
243
 
243
244
  rs = Gem::RequestSet.new
244
245
  installed = []
245
246
 
246
- File.open 'gem.deps.rb', 'w' do |io|
247
+ File.open "gem.deps.rb", "w" do |io|
247
248
  io.puts <<-GEM_DEPS
248
249
  gem "a"
249
250
  ruby "0"
@@ -256,13 +257,13 @@ ruby "0"
256
257
  end
257
258
  end
258
259
 
259
- assert_includes installed, 'a-2'
260
+ assert_includes installed, "a-2"
260
261
  end
261
262
 
262
263
  def test_load_gemdeps
263
264
  rs = Gem::RequestSet.new
264
265
 
265
- tf = Tempfile.open 'gem.deps.rb' do |io|
266
+ tf = Tempfile.open "gem.deps.rb" do |io|
266
267
  io.puts 'gem "a"'
267
268
  io.flush
268
269
 
@@ -273,7 +274,7 @@ ruby "0"
273
274
  end
274
275
  tf.close!
275
276
 
276
- assert_equal [dep('a')], rs.dependencies
277
+ assert_equal [dep("a")], rs.dependencies
277
278
 
278
279
  assert rs.git_set
279
280
  assert rs.vendor_set
@@ -282,7 +283,7 @@ ruby "0"
282
283
  def test_load_gemdeps_installing
283
284
  rs = Gem::RequestSet.new
284
285
 
285
- tf = Tempfile.open 'gem.deps.rb' do |io|
286
+ tf = Tempfile.open "gem.deps.rb" do |io|
286
287
  io.puts 'ruby "0"'
287
288
  io.puts 'gem "a"'
288
289
  io.flush
@@ -294,13 +295,13 @@ ruby "0"
294
295
  end
295
296
  tf.close!
296
297
 
297
- assert_equal [dep('a')], rs.dependencies
298
+ assert_equal [dep("a")], rs.dependencies
298
299
  end
299
300
 
300
301
  def test_load_gemdeps_without_groups
301
302
  rs = Gem::RequestSet.new
302
303
 
303
- tf = Tempfile.open 'gem.deps.rb' do |io|
304
+ tf = Tempfile.open "gem.deps.rb" do |io|
304
305
  io.puts 'gem "a", :group => :test'
305
306
  io.flush
306
307
 
@@ -332,12 +333,12 @@ ruby "0"
332
333
  end
333
334
 
334
335
  def test_bug_bug_990
335
- a = util_spec 'a', '1.b', 'b' => '~> 1.a'
336
- b = util_spec 'b', '1.b', 'c' => '>= 1'
337
- c = util_spec 'c', '1.1.b'
336
+ a = util_spec "a", "1.b", "b" => "~> 1.a"
337
+ b = util_spec "b", "1.b", "c" => ">= 1"
338
+ c = util_spec "c", "1.1.b"
338
339
 
339
340
  rs = Gem::RequestSet.new
340
- rs.gem 'a'
341
+ rs.gem "a"
341
342
  rs.prerelease = true
342
343
 
343
344
  res = rs.resolve StaticSet.new([a, b, c])
@@ -349,11 +350,11 @@ ruby "0"
349
350
  end
350
351
 
351
352
  def test_resolve_development
352
- a = util_spec 'a', 1
353
+ a = util_spec "a", 1
353
354
  spec = Gem::Resolver::SpecSpecification.new nil, a
354
355
 
355
356
  rs = Gem::RequestSet.new
356
- rs.gem 'a'
357
+ rs.gem "a"
357
358
  rs.development = true
358
359
 
359
360
  res = rs.resolve StaticSet.new [spec]
@@ -364,22 +365,22 @@ ruby "0"
364
365
  end
365
366
 
366
367
  def test_resolve_development_shallow
367
- a = util_spec 'a', 1 do |s|
368
- s.add_development_dependency 'b'
368
+ a = util_spec "a", 1 do |s|
369
+ s.add_development_dependency "b"
369
370
  end
370
371
 
371
- b = util_spec 'b', 1 do |s|
372
- s.add_development_dependency 'c'
372
+ b = util_spec "b", 1 do |s|
373
+ s.add_development_dependency "c"
373
374
  end
374
375
 
375
- c = util_spec 'c', 1
376
+ c = util_spec "c", 1
376
377
 
377
378
  a_spec = Gem::Resolver::SpecSpecification.new nil, a
378
379
  b_spec = Gem::Resolver::SpecSpecification.new nil, b
379
380
  c_spec = Gem::Resolver::SpecSpecification.new nil, c
380
381
 
381
382
  rs = Gem::RequestSet.new
382
- rs.gem 'a'
383
+ rs.gem "a"
383
384
  rs.development = true
384
385
  rs.development_shallow = true
385
386
 
@@ -395,7 +396,7 @@ ruby "0"
395
396
 
396
397
  rs = Gem::RequestSet.new
397
398
 
398
- tf = Tempfile.open 'gem.deps.rb' do |io|
399
+ tf = Tempfile.open "gem.deps.rb" do |io|
399
400
  io.puts <<-GEMS_DEPS_RB
400
401
  gem "#{name}", :git => "#{repository}"
401
402
  GEMS_DEPS_RB
@@ -435,12 +436,12 @@ ruby "0"
435
436
  end
436
437
 
437
438
  def test_resolve_incompatible
438
- a1 = util_spec 'a', 1
439
- a2 = util_spec 'a', 2
439
+ a1 = util_spec "a", 1
440
+ a2 = util_spec "a", 2
440
441
 
441
442
  rs = Gem::RequestSet.new
442
- rs.gem 'a', '= 1'
443
- rs.gem 'a', '= 2'
443
+ rs.gem "a", "= 1"
444
+ rs.gem "a", "= 2"
444
445
 
445
446
  set = StaticSet.new [a1, a2]
446
447
 
@@ -450,15 +451,15 @@ ruby "0"
450
451
  end
451
452
 
452
453
  def test_resolve_vendor
453
- a_name, _, a_directory = vendor_gem 'a', 1 do |s|
454
- s.add_dependency 'b', '~> 2.0'
454
+ a_name, _, a_directory = vendor_gem "a", 1 do |s|
455
+ s.add_dependency "b", "~> 2.0"
455
456
  end
456
457
 
457
- b_name, _, b_directory = vendor_gem 'b', 2
458
+ b_name, _, b_directory = vendor_gem "b", 2
458
459
 
459
460
  rs = Gem::RequestSet.new
460
461
 
461
- tf = Tempfile.open 'gem.deps.rb' do |io|
462
+ tf = Tempfile.open "gem.deps.rb" do |io|
462
463
  io.puts <<-GEMS_DEPS_RB
463
464
  gem "#{a_name}", :path => "#{a_directory}"
464
465
  gem "#{b_name}", :path => "#{b_directory}"
@@ -509,7 +510,7 @@ ruby "0"
509
510
  end
510
511
 
511
512
  rs = Gem::RequestSet.new
512
- rs.gem 'a'
513
+ rs.gem "a"
513
514
 
514
515
  rs.resolve
515
516
 
@@ -525,8 +526,8 @@ ruby "0"
525
526
  assert_equal %w[b-1 a-1],
526
527
  installers.map {|installer| installer.spec.full_name }
527
528
 
528
- assert_path_exist File.join @gemhome, 'specifications', 'a-1.gemspec'
529
- assert_path_exist File.join @gemhome, 'specifications', 'b-1.gemspec'
529
+ assert_path_exist File.join @gemhome, "specifications", "a-1.gemspec"
530
+ assert_path_exist File.join @gemhome, "specifications", "b-1.gemspec"
530
531
 
531
532
  assert_equal %w[b-1 a-1], installed.map {|s| s.full_name }
532
533
 
@@ -545,60 +546,60 @@ ruby "0"
545
546
  rs.resolve
546
547
 
547
548
  installed = rs.install_into @tempdir do
548
- assert_equal @tempdir, ENV['GEM_HOME']
549
+ assert_equal @tempdir, ENV["GEM_HOME"]
549
550
  end
550
551
 
551
- assert_path_exist File.join @tempdir, 'specifications', 'a-1.gemspec'
552
- assert_path_exist File.join @tempdir, 'specifications', 'b-1.gemspec'
552
+ assert_path_exist File.join @tempdir, "specifications", "a-1.gemspec"
553
+ assert_path_exist File.join @tempdir, "specifications", "b-1.gemspec"
553
554
 
554
555
  assert_equal %w[b-1 a-1], installed.map {|s| s.full_name }
555
556
  end
556
557
 
557
558
  def test_install_into_development_shallow
558
559
  spec_fetcher do |fetcher|
559
- fetcher.gem 'a', '1' do |s|
560
- s.add_development_dependency 'b', '= 1'
560
+ fetcher.gem "a", "1" do |s|
561
+ s.add_development_dependency "b", "= 1"
561
562
  end
562
563
 
563
- fetcher.gem 'b', '1' do |s|
564
- s.add_development_dependency 'c', '= 1'
564
+ fetcher.gem "b", "1" do |s|
565
+ s.add_development_dependency "c", "= 1"
565
566
  end
566
567
 
567
- fetcher.spec 'c', '1'
568
+ fetcher.spec "c", "1"
568
569
  end
569
570
 
570
571
  rs = Gem::RequestSet.new
571
572
  rs.development = true
572
573
  rs.development_shallow = true
573
- rs.gem 'a'
574
+ rs.gem "a"
574
575
 
575
576
  rs.resolve
576
577
 
577
578
  options = {
578
- :development => true,
579
+ :development => true,
579
580
  :development_shallow => true,
580
581
  }
581
582
 
582
583
  installed = rs.install_into @tempdir, true, options do
583
- assert_equal @tempdir, ENV['GEM_HOME']
584
+ assert_equal @tempdir, ENV["GEM_HOME"]
584
585
  end
585
586
 
586
587
  assert_equal %w[a-1 b-1], installed.map {|s| s.full_name }.sort
587
588
  end
588
589
 
589
590
  def test_sorted_requests_development_shallow
590
- a = util_spec 'a', 1 do |s|
591
- s.add_development_dependency 'b'
591
+ a = util_spec "a", 1 do |s|
592
+ s.add_development_dependency "b"
592
593
  end
593
594
 
594
- b = util_spec 'b', 1 do |s|
595
- s.add_development_dependency 'c'
595
+ b = util_spec "b", 1 do |s|
596
+ s.add_development_dependency "c"
596
597
  end
597
598
 
598
- c = util_spec 'c', 1
599
+ c = util_spec "c", 1
599
600
 
600
601
  rs = Gem::RequestSet.new
601
- rs.gem 'a'
602
+ rs.gem "a"
602
603
  rs.development = true
603
604
  rs.development_shallow = true
604
605
 
@@ -612,18 +613,18 @@ ruby "0"
612
613
  end
613
614
 
614
615
  def test_tsort_each_child_development
615
- a = util_spec 'a', 1 do |s|
616
- s.add_development_dependency 'b'
616
+ a = util_spec "a", 1 do |s|
617
+ s.add_development_dependency "b"
617
618
  end
618
619
 
619
- b = util_spec 'b', 1 do |s|
620
- s.add_development_dependency 'c'
620
+ b = util_spec "b", 1 do |s|
621
+ s.add_development_dependency "c"
621
622
  end
622
623
 
623
- c = util_spec 'c', 1
624
+ c = util_spec "c", 1
624
625
 
625
626
  rs = Gem::RequestSet.new
626
- rs.gem 'a'
627
+ rs.gem "a"
627
628
  rs.development = true
628
629
  rs.development_shallow = true
629
630
 
@@ -641,18 +642,18 @@ ruby "0"
641
642
  end
642
643
 
643
644
  def test_tsort_each_child_development_shallow
644
- a = util_spec 'a', 1 do |s|
645
- s.add_development_dependency 'b'
645
+ a = util_spec "a", 1 do |s|
646
+ s.add_development_dependency "b"
646
647
  end
647
648
 
648
- b = util_spec 'b', 1 do |s|
649
- s.add_development_dependency 'c'
649
+ b = util_spec "b", 1 do |s|
650
+ s.add_development_dependency "c"
650
651
  end
651
652
 
652
- c = util_spec 'c', 1
653
+ c = util_spec "c", 1
653
654
 
654
655
  rs = Gem::RequestSet.new
655
- rs.gem 'a'
656
+ rs.gem "a"
656
657
  rs.development = true
657
658
  rs.development_shallow = true
658
659