rubygems-update 3.3.26 → 3.4.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (554) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1334 -1088
  3. data/CONTRIBUTING.md +31 -8
  4. data/Manifest.txt +49 -35
  5. data/POLICIES.md +15 -13
  6. data/README.md +19 -6
  7. data/bundler/CHANGELOG.md +290 -1
  8. data/bundler/README.md +3 -6
  9. data/bundler/UPGRADING.md +1 -1
  10. data/bundler/bundler.gemspec +2 -2
  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 +5 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +1 -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/init.rb +2 -2
  21. data/bundler/lib/bundler/cli/install.rb +2 -3
  22. data/bundler/lib/bundler/cli/lock.rb +8 -5
  23. data/bundler/lib/bundler/cli/open.rb +6 -4
  24. data/bundler/lib/bundler/cli/outdated.rb +1 -3
  25. data/bundler/lib/bundler/cli/viz.rb +1 -1
  26. data/bundler/lib/bundler/cli.rb +45 -2
  27. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  28. data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
  29. data/bundler/lib/bundler/constants.rb +1 -1
  30. data/bundler/lib/bundler/current_ruby.rb +2 -0
  31. data/bundler/lib/bundler/definition.rb +163 -82
  32. data/bundler/lib/bundler/dependency.rb +13 -12
  33. data/bundler/lib/bundler/digest.rb +1 -1
  34. data/bundler/lib/bundler/dsl.rb +3 -3
  35. data/bundler/lib/bundler/endpoint_specification.rb +0 -4
  36. data/bundler/lib/bundler/env.rb +1 -1
  37. data/bundler/lib/bundler/environment_preserver.rb +3 -2
  38. data/bundler/lib/bundler/errors.rb +1 -11
  39. data/bundler/lib/bundler/feature_flag.rb +0 -1
  40. data/bundler/lib/bundler/fetcher/compact_index.rb +9 -11
  41. data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
  42. data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
  43. data/bundler/lib/bundler/fetcher.rb +4 -8
  44. data/bundler/lib/bundler/force_platform.rb +18 -0
  45. data/bundler/lib/bundler/friendly_errors.rb +0 -3
  46. data/bundler/lib/bundler/gem_version_promoter.rb +52 -86
  47. data/bundler/lib/bundler/graph.rb +3 -3
  48. data/bundler/lib/bundler/index.rb +7 -15
  49. data/bundler/lib/bundler/injector.rb +2 -2
  50. data/bundler/lib/bundler/inline.rb +8 -10
  51. data/bundler/lib/bundler/installer/parallel_installer.rb +3 -33
  52. data/bundler/lib/bundler/installer/standalone.rb +12 -8
  53. data/bundler/lib/bundler/installer.rb +10 -24
  54. data/bundler/lib/bundler/lazy_specification.rb +42 -42
  55. data/bundler/lib/bundler/lockfile_generator.rb +2 -2
  56. data/bundler/lib/bundler/lockfile_parser.rb +17 -16
  57. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  58. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  59. data/bundler/lib/bundler/man/bundle-cache.1 +3 -3
  60. data/bundler/lib/bundler/man/bundle-cache.1.ronn +2 -2
  61. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  62. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  63. data/bundler/lib/bundler/man/bundle-config.1 +2 -5
  64. data/bundler/lib/bundler/man/bundle-config.1.ronn +1 -4
  65. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  66. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  67. data/bundler/lib/bundler/man/bundle-exec.1 +5 -5
  68. data/bundler/lib/bundler/man/bundle-exec.1.ronn +5 -5
  69. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  70. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  71. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  72. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  73. data/bundler/lib/bundler/man/bundle-init.1 +5 -1
  74. data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
  75. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  76. data/bundler/lib/bundler/man/bundle-install.1 +1 -30
  77. data/bundler/lib/bundler/man/bundle-install.1.ronn +0 -29
  78. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  79. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  80. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  81. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  82. data/bundler/lib/bundler/man/bundle-outdated.1 +13 -9
  83. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +12 -9
  84. data/bundler/lib/bundler/man/bundle-platform.1 +2 -2
  85. data/bundler/lib/bundler/man/bundle-platform.1.ronn +1 -1
  86. data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
  87. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  88. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  89. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  90. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  91. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  92. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  93. data/bundler/lib/bundler/man/bundle.1 +1 -1
  94. data/bundler/lib/bundler/man/gemfile.5 +2 -2
  95. data/bundler/lib/bundler/man/gemfile.5.ronn +1 -1
  96. data/bundler/lib/bundler/mirror.rb +5 -7
  97. data/bundler/lib/bundler/plugin/index.rb +4 -4
  98. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
  99. data/bundler/lib/bundler/plugin/installer.rb +5 -2
  100. data/bundler/lib/bundler/plugin.rb +1 -1
  101. data/bundler/lib/bundler/remote_specification.rb +2 -6
  102. data/bundler/lib/bundler/resolver/base.rb +72 -15
  103. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  104. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  105. data/bundler/lib/bundler/resolver/package.rb +72 -0
  106. data/bundler/lib/bundler/resolver/root.rb +25 -0
  107. data/bundler/lib/bundler/resolver/spec_group.rb +26 -36
  108. data/bundler/lib/bundler/resolver.rb +324 -277
  109. data/bundler/lib/bundler/ruby_version.rb +1 -1
  110. data/bundler/lib/bundler/rubygems_ext.rb +16 -9
  111. data/bundler/lib/bundler/rubygems_gem_installer.rb +4 -2
  112. data/bundler/lib/bundler/rubygems_integration.rb +10 -14
  113. data/bundler/lib/bundler/runtime.rb +2 -6
  114. data/bundler/lib/bundler/safe_marshal.rb +31 -0
  115. data/bundler/lib/bundler/settings.rb +4 -10
  116. data/bundler/lib/bundler/setup.rb +4 -1
  117. data/bundler/lib/bundler/shared_helpers.rb +2 -1
  118. data/bundler/lib/bundler/source/git/git_proxy.rb +237 -74
  119. data/bundler/lib/bundler/source/git.rb +48 -30
  120. data/bundler/lib/bundler/source/metadata.rb +0 -1
  121. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  122. data/bundler/lib/bundler/source/path.rb +6 -6
  123. data/bundler/lib/bundler/source/rubygems.rb +26 -81
  124. data/bundler/lib/bundler/source.rb +1 -1
  125. data/bundler/lib/bundler/source_list.rb +8 -2
  126. data/bundler/lib/bundler/spec_set.rb +22 -14
  127. data/bundler/lib/bundler/templates/Executable +1 -1
  128. data/bundler/lib/bundler/templates/Executable.bundler +5 -10
  129. data/bundler/lib/bundler/templates/Executable.standalone +2 -0
  130. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  131. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  132. data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
  133. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -1
  134. data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
  135. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  136. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  137. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  138. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  139. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  140. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  141. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
  142. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  143. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +8 -0
  144. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -2
  145. data/bundler/lib/bundler/ui/shell.rb +35 -12
  146. data/bundler/lib/bundler/ui/silent.rb +21 -5
  147. data/bundler/lib/bundler/uri_normalizer.rb +23 -0
  148. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  149. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  150. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  151. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1351 -409
  152. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  153. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  154. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  155. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  156. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  157. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  158. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  159. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  160. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  161. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  162. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  163. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  164. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  165. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  166. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  167. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  168. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  169. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  170. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  171. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  172. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  173. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  174. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  175. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  176. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  177. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  178. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  179. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  180. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  181. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +15 -9
  182. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -6
  183. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  184. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  185. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  186. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  187. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  188. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  189. data/bundler/lib/bundler/version.rb +5 -1
  190. data/bundler/lib/bundler/worker.rb +5 -7
  191. data/bundler/lib/bundler.rb +21 -72
  192. data/{bin → exe}/gem +3 -4
  193. data/{bin → exe}/update_rubygems +8 -6
  194. data/lib/rubygems/available_set.rb +1 -0
  195. data/lib/rubygems/basic_specification.rb +1 -0
  196. data/lib/rubygems/bundler_version_finder.rb +1 -1
  197. data/lib/rubygems/command.rb +16 -7
  198. data/lib/rubygems/command_manager.rb +23 -8
  199. data/lib/rubygems/commands/build_command.rb +4 -0
  200. data/lib/rubygems/commands/cert_command.rb +1 -0
  201. data/lib/rubygems/commands/check_command.rb +1 -0
  202. data/lib/rubygems/commands/cleanup_command.rb +1 -0
  203. data/lib/rubygems/commands/contents_command.rb +1 -0
  204. data/lib/rubygems/commands/dependency_command.rb +1 -0
  205. data/lib/rubygems/commands/environment_command.rb +1 -0
  206. data/lib/rubygems/commands/exec_command.rb +249 -0
  207. data/lib/rubygems/commands/fetch_command.rb +2 -1
  208. data/lib/rubygems/commands/generate_index_command.rb +1 -0
  209. data/lib/rubygems/commands/help_command.rb +4 -3
  210. data/lib/rubygems/commands/install_command.rb +8 -3
  211. data/lib/rubygems/commands/list_command.rb +1 -0
  212. data/lib/rubygems/commands/lock_command.rb +1 -0
  213. data/lib/rubygems/commands/mirror_command.rb +1 -0
  214. data/lib/rubygems/commands/open_command.rb +1 -0
  215. data/lib/rubygems/commands/outdated_command.rb +1 -0
  216. data/lib/rubygems/commands/owner_command.rb +6 -3
  217. data/lib/rubygems/commands/pristine_command.rb +10 -0
  218. data/lib/rubygems/commands/push_command.rb +1 -0
  219. data/lib/rubygems/commands/query_command.rb +1 -0
  220. data/lib/rubygems/commands/rdoc_command.rb +4 -2
  221. data/lib/rubygems/commands/search_command.rb +1 -0
  222. data/lib/rubygems/commands/server_command.rb +1 -0
  223. data/lib/rubygems/commands/setup_command.rb +4 -3
  224. data/lib/rubygems/commands/signin_command.rb +1 -0
  225. data/lib/rubygems/commands/signout_command.rb +1 -0
  226. data/lib/rubygems/commands/sources_command.rb +1 -0
  227. data/lib/rubygems/commands/specification_command.rb +1 -0
  228. data/lib/rubygems/commands/stale_command.rb +1 -0
  229. data/lib/rubygems/commands/uninstall_command.rb +4 -0
  230. data/lib/rubygems/commands/unpack_command.rb +2 -1
  231. data/lib/rubygems/commands/update_command.rb +2 -7
  232. data/lib/rubygems/commands/which_command.rb +1 -0
  233. data/lib/rubygems/commands/yank_command.rb +1 -0
  234. data/lib/rubygems/config_file.rb +34 -0
  235. data/lib/rubygems/core_ext/kernel_gem.rb +0 -5
  236. data/lib/rubygems/core_ext/kernel_require.rb +108 -114
  237. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  238. data/lib/rubygems/core_ext/tcpsocket_init.rb +2 -0
  239. data/lib/rubygems/defaults.rb +17 -2
  240. data/lib/rubygems/dependency.rb +6 -2
  241. data/lib/rubygems/dependency_installer.rb +25 -24
  242. data/lib/rubygems/dependency_list.rb +1 -0
  243. data/lib/rubygems/deprecate.rb +3 -2
  244. data/lib/rubygems/doctor.rb +1 -0
  245. data/lib/rubygems/errors.rb +1 -0
  246. data/lib/rubygems/exceptions.rb +11 -3
  247. data/lib/rubygems/ext/build_error.rb +1 -0
  248. data/lib/rubygems/ext/builder.rb +23 -7
  249. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
  250. data/lib/rubygems/ext/cargo_builder.rb +145 -110
  251. data/lib/rubygems/ext/configure_builder.rb +1 -0
  252. data/lib/rubygems/ext/ext_conf_builder.rb +4 -2
  253. data/lib/rubygems/ext/rake_builder.rb +5 -3
  254. data/lib/rubygems/ext.rb +1 -0
  255. data/lib/rubygems/gem_runner.rb +1 -0
  256. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
  257. data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
  258. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
  259. data/lib/rubygems/gemcutter_utilities.rb +53 -6
  260. data/lib/rubygems/indexer.rb +2 -1
  261. data/lib/rubygems/install_default_message.rb +1 -0
  262. data/lib/rubygems/install_message.rb +1 -0
  263. data/lib/rubygems/install_update_options.rb +1 -0
  264. data/lib/rubygems/installer.rb +22 -6
  265. data/lib/rubygems/local_remote_options.rb +1 -0
  266. data/lib/rubygems/mock_gem_ui.rb +1 -0
  267. data/lib/rubygems/name_tuple.rb +1 -0
  268. data/lib/rubygems/optparse/lib/optparse.rb +20 -15
  269. data/lib/rubygems/package/digest_io.rb +1 -0
  270. data/lib/rubygems/package/file_source.rb +1 -0
  271. data/lib/rubygems/package/io_source.rb +1 -0
  272. data/lib/rubygems/package/old.rb +1 -0
  273. data/lib/rubygems/package/source.rb +1 -0
  274. data/lib/rubygems/package/tar_header.rb +13 -12
  275. data/lib/rubygems/package/tar_reader/entry.rb +89 -7
  276. data/lib/rubygems/package/tar_reader.rb +1 -28
  277. data/lib/rubygems/package/tar_writer.rb +1 -0
  278. data/lib/rubygems/package.rb +1 -0
  279. data/lib/rubygems/package_task.rb +1 -0
  280. data/lib/rubygems/path_support.rb +1 -0
  281. data/lib/rubygems/platform.rb +4 -5
  282. data/lib/rubygems/psych_tree.rb +1 -0
  283. data/lib/rubygems/rdoc.rb +1 -0
  284. data/lib/rubygems/remote_fetcher.rb +1 -0
  285. data/lib/rubygems/request/http_pool.rb +1 -0
  286. data/lib/rubygems/request/https_pool.rb +1 -0
  287. data/lib/rubygems/request.rb +1 -0
  288. data/lib/rubygems/request_set/gem_dependency_api.rb +105 -105
  289. data/lib/rubygems/request_set/lockfile/parser.rb +1 -0
  290. data/lib/rubygems/request_set/lockfile/tokenizer.rb +2 -0
  291. data/lib/rubygems/request_set/lockfile.rb +1 -0
  292. data/lib/rubygems/request_set.rb +3 -2
  293. data/lib/rubygems/requirement.rb +9 -8
  294. data/lib/rubygems/resolver/activation_request.rb +1 -0
  295. data/lib/rubygems/resolver/api_set.rb +1 -0
  296. data/lib/rubygems/resolver/api_specification.rb +1 -0
  297. data/lib/rubygems/resolver/best_set.rb +1 -0
  298. data/lib/rubygems/resolver/composed_set.rb +1 -0
  299. data/lib/rubygems/resolver/conflict.rb +1 -0
  300. data/lib/rubygems/resolver/current_set.rb +1 -0
  301. data/lib/rubygems/resolver/dependency_request.rb +1 -0
  302. data/lib/rubygems/resolver/git_set.rb +1 -0
  303. data/lib/rubygems/resolver/git_specification.rb +1 -0
  304. data/lib/rubygems/resolver/index_set.rb +1 -0
  305. data/lib/rubygems/resolver/index_specification.rb +1 -0
  306. data/lib/rubygems/resolver/installed_specification.rb +1 -0
  307. data/lib/rubygems/resolver/installer_set.rb +5 -2
  308. data/lib/rubygems/resolver/local_specification.rb +1 -0
  309. data/lib/rubygems/resolver/lock_set.rb +1 -0
  310. data/lib/rubygems/resolver/lock_specification.rb +1 -0
  311. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  312. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  313. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  314. data/lib/rubygems/resolver/molinillo.rb +1 -0
  315. data/lib/rubygems/resolver/requirement_list.rb +1 -0
  316. data/lib/rubygems/resolver/set.rb +1 -0
  317. data/lib/rubygems/resolver/source_set.rb +2 -0
  318. data/lib/rubygems/resolver/spec_specification.rb +1 -0
  319. data/lib/rubygems/resolver/specification.rb +1 -0
  320. data/lib/rubygems/resolver/stats.rb +2 -1
  321. data/lib/rubygems/resolver/vendor_set.rb +1 -0
  322. data/lib/rubygems/resolver/vendor_specification.rb +1 -0
  323. data/lib/rubygems/resolver.rb +1 -0
  324. data/lib/rubygems/s3_uri_signer.rb +4 -2
  325. data/lib/rubygems/safe_yaml.rb +2 -0
  326. data/lib/rubygems/security/policies.rb +41 -40
  327. data/lib/rubygems/security/policy.rb +1 -0
  328. data/lib/rubygems/security/signer.rb +1 -0
  329. data/lib/rubygems/security/trust_dir.rb +2 -1
  330. data/lib/rubygems/security.rb +4 -16
  331. data/lib/rubygems/security_option.rb +1 -0
  332. data/lib/rubygems/shellwords.rb +3 -0
  333. data/lib/rubygems/source/git.rb +1 -1
  334. data/lib/rubygems/source/installed.rb +1 -0
  335. data/lib/rubygems/source/local.rb +1 -0
  336. data/lib/rubygems/source/lock.rb +1 -0
  337. data/lib/rubygems/source/specific_file.rb +1 -0
  338. data/lib/rubygems/source/vendor.rb +1 -0
  339. data/lib/rubygems/source.rb +2 -2
  340. data/lib/rubygems/spec_fetcher.rb +1 -0
  341. data/lib/rubygems/specification.rb +58 -52
  342. data/lib/rubygems/specification_policy.rb +21 -0
  343. data/lib/rubygems/stub_specification.rb +10 -8
  344. data/lib/rubygems/text.rb +2 -2
  345. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  346. data/lib/rubygems/uninstaller.rb +1 -0
  347. data/lib/rubygems/update_suggestion.rb +69 -0
  348. data/lib/rubygems/user_interaction.rb +2 -0
  349. data/lib/rubygems/util/licenses.rb +3 -2
  350. data/lib/rubygems/util/list.rb +1 -0
  351. data/lib/rubygems/util.rb +2 -5
  352. data/lib/rubygems/validator.rb +2 -1
  353. data/lib/rubygems/version.rb +2 -2
  354. data/lib/rubygems/version_option.rb +1 -0
  355. data/lib/rubygems.rb +32 -11
  356. data/rubygems-update.gemspec +6 -4
  357. data/setup.rb +1 -0
  358. data/test/rubygems/bad_rake.rb +1 -0
  359. data/test/rubygems/bundler_test_gem.rb +421 -0
  360. data/test/rubygems/fake_certlib/openssl.rb +1 -0
  361. data/test/rubygems/good_rake.rb +1 -0
  362. data/test/rubygems/helper.rb +23 -6
  363. data/test/rubygems/installer_test_case.rb +1 -0
  364. data/test/rubygems/multifactor_auth_utilities.rb +111 -0
  365. data/test/rubygems/package/tar_test_case.rb +51 -15
  366. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -0
  367. data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
  368. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -0
  369. data/test/rubygems/rubygems/commands/crash_command.rb +1 -0
  370. data/test/rubygems/rubygems_plugin.rb +1 -0
  371. data/test/rubygems/simple_gem.rb +2 -1
  372. data/test/rubygems/specifications/bar-0.0.2.gemspec +2 -0
  373. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +2 -0
  374. data/test/rubygems/test_bundled_ca.rb +3 -2
  375. data/test/rubygems/test_config.rb +2 -1
  376. data/test/rubygems/test_deprecate.rb +2 -1
  377. data/test/rubygems/test_exit.rb +7 -1
  378. data/test/rubygems/test_gem.rb +41 -421
  379. data/test/rubygems/test_gem_available_set.rb +1 -0
  380. data/test/rubygems/test_gem_bundler_version_finder.rb +5 -3
  381. data/test/rubygems/test_gem_command.rb +1 -0
  382. data/test/rubygems/test_gem_command_manager.rb +67 -1
  383. data/test/rubygems/test_gem_commands_build_command.rb +11 -0
  384. data/test/rubygems/test_gem_commands_cert_command.rb +1 -0
  385. data/test/rubygems/test_gem_commands_check_command.rb +1 -0
  386. data/test/rubygems/test_gem_commands_cleanup_command.rb +1 -0
  387. data/test/rubygems/test_gem_commands_contents_command.rb +1 -0
  388. data/test/rubygems/test_gem_commands_dependency_command.rb +1 -0
  389. data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
  390. data/test/rubygems/test_gem_commands_exec_command.rb +853 -0
  391. data/test/rubygems/test_gem_commands_fetch_command.rb +1 -0
  392. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -0
  393. data/test/rubygems/test_gem_commands_help_command.rb +1 -0
  394. data/test/rubygems/test_gem_commands_info_command.rb +1 -0
  395. data/test/rubygems/test_gem_commands_install_command.rb +21 -1
  396. data/test/rubygems/test_gem_commands_list_command.rb +1 -0
  397. data/test/rubygems/test_gem_commands_lock_command.rb +1 -0
  398. data/test/rubygems/test_gem_commands_mirror.rb +1 -0
  399. data/test/rubygems/test_gem_commands_open_command.rb +1 -0
  400. data/test/rubygems/test_gem_commands_outdated_command.rb +1 -0
  401. data/test/rubygems/test_gem_commands_owner_command.rb +103 -7
  402. data/test/rubygems/test_gem_commands_pristine_command.rb +50 -1
  403. data/test/rubygems/test_gem_commands_push_command.rb +110 -6
  404. data/test/rubygems/test_gem_commands_query_command.rb +1 -0
  405. data/test/rubygems/test_gem_commands_search_command.rb +1 -0
  406. data/test/rubygems/test_gem_commands_server_command.rb +1 -0
  407. data/test/rubygems/test_gem_commands_setup_command.rb +4 -11
  408. data/test/rubygems/test_gem_commands_signin_command.rb +1 -0
  409. data/test/rubygems/test_gem_commands_sources_command.rb +1 -0
  410. data/test/rubygems/test_gem_commands_specification_command.rb +1 -0
  411. data/test/rubygems/test_gem_commands_stale_command.rb +1 -0
  412. data/test/rubygems/test_gem_commands_uninstall_command.rb +32 -14
  413. data/test/rubygems/test_gem_commands_unpack_command.rb +1 -0
  414. data/test/rubygems/test_gem_commands_update_command.rb +7 -6
  415. data/test/rubygems/test_gem_commands_which_command.rb +1 -0
  416. data/test/rubygems/test_gem_commands_yank_command.rb +120 -1
  417. data/test/rubygems/test_gem_config_file.rb +2 -1
  418. data/test/rubygems/test_gem_dependency.rb +3 -0
  419. data/test/rubygems/test_gem_dependency_installer.rb +35 -0
  420. data/test/rubygems/test_gem_dependency_list.rb +1 -0
  421. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -0
  422. data/test/rubygems/test_gem_doctor.rb +1 -0
  423. data/test/rubygems/test_gem_ext_builder.rb +7 -8
  424. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +4 -4
  425. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +22 -32
  426. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.toml → ext/custom_name_lib/Cargo.toml} +1 -1
  427. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{src → ext/custom_name_lib/src}/lib.rs +1 -1
  428. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +3 -0
  429. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +36 -32
  430. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  431. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +2 -0
  432. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
  433. data/test/rubygems/test_gem_ext_cargo_builder.rb +33 -44
  434. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +17 -16
  435. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +5 -20
  436. data/test/rubygems/test_gem_ext_cmake_builder.rb +1 -0
  437. data/test/rubygems/test_gem_ext_configure_builder.rb +1 -0
  438. data/test/rubygems/test_gem_ext_rake_builder.rb +1 -0
  439. data/test/rubygems/test_gem_gem_runner.rb +8 -2
  440. data/test/rubygems/test_gem_gemcutter_utilities.rb +130 -48
  441. data/test/rubygems/test_gem_impossible_dependencies_error.rb +1 -0
  442. data/test/rubygems/test_gem_indexer.rb +40 -20
  443. data/test/rubygems/test_gem_install_update_options.rb +1 -0
  444. data/test/rubygems/test_gem_installer.rb +120 -5
  445. data/test/rubygems/test_gem_local_remote_options.rb +1 -0
  446. data/test/rubygems/test_gem_name_tuple.rb +1 -0
  447. data/test/rubygems/test_gem_package.rb +0 -25
  448. data/test/rubygems/test_gem_package_old.rb +1 -0
  449. data/test/rubygems/test_gem_package_tar_header.rb +14 -13
  450. data/test/rubygems/test_gem_package_tar_reader.rb +49 -1
  451. data/test/rubygems/test_gem_package_tar_reader_entry.rb +152 -6
  452. data/test/rubygems/test_gem_package_tar_writer.rb +1 -0
  453. data/test/rubygems/test_gem_package_task.rb +1 -0
  454. data/test/rubygems/test_gem_path_support.rb +1 -0
  455. data/test/rubygems/test_gem_platform.rb +60 -60
  456. data/test/rubygems/test_gem_rdoc.rb +1 -0
  457. data/test/rubygems/test_gem_remote_fetcher.rb +6 -5
  458. data/test/rubygems/test_gem_request.rb +10 -4
  459. data/test/rubygems/test_gem_request_connection_pools.rb +1 -0
  460. data/test/rubygems/test_gem_request_set.rb +3 -2
  461. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +11 -10
  462. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -0
  463. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +7 -6
  464. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -0
  465. data/test/rubygems/test_gem_requirement.rb +2 -1
  466. data/test/rubygems/test_gem_resolver.rb +1 -0
  467. data/test/rubygems/test_gem_resolver_activation_request.rb +1 -0
  468. data/test/rubygems/test_gem_resolver_api_set.rb +13 -12
  469. data/test/rubygems/test_gem_resolver_api_specification.rb +20 -19
  470. data/test/rubygems/test_gem_resolver_best_set.rb +1 -0
  471. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -0
  472. data/test/rubygems/test_gem_resolver_conflict.rb +1 -0
  473. data/test/rubygems/test_gem_resolver_dependency_request.rb +1 -0
  474. data/test/rubygems/test_gem_resolver_git_set.rb +10 -9
  475. data/test/rubygems/test_gem_resolver_git_specification.rb +3 -2
  476. data/test/rubygems/test_gem_resolver_index_set.rb +1 -0
  477. data/test/rubygems/test_gem_resolver_index_specification.rb +1 -0
  478. data/test/rubygems/test_gem_resolver_installed_specification.rb +1 -0
  479. data/test/rubygems/test_gem_resolver_installer_set.rb +1 -0
  480. data/test/rubygems/test_gem_resolver_local_specification.rb +1 -0
  481. data/test/rubygems/test_gem_resolver_lock_set.rb +1 -0
  482. data/test/rubygems/test_gem_resolver_lock_specification.rb +1 -0
  483. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -0
  484. data/test/rubygems/test_gem_resolver_specification.rb +1 -0
  485. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -0
  486. data/test/rubygems/test_gem_resolver_vendor_specification.rb +1 -0
  487. data/test/rubygems/test_gem_security.rb +1 -0
  488. data/test/rubygems/test_gem_security_policy.rb +10 -10
  489. data/test/rubygems/test_gem_security_signer.rb +1 -0
  490. data/test/rubygems/test_gem_security_trust_dir.rb +3 -2
  491. data/test/rubygems/test_gem_silent_ui.rb +1 -0
  492. data/test/rubygems/test_gem_source.rb +2 -1
  493. data/test/rubygems/test_gem_source_fetch_problem.rb +1 -0
  494. data/test/rubygems/test_gem_source_git.rb +14 -12
  495. data/test/rubygems/test_gem_source_installed.rb +2 -1
  496. data/test/rubygems/test_gem_source_list.rb +1 -0
  497. data/test/rubygems/test_gem_source_local.rb +1 -0
  498. data/test/rubygems/test_gem_source_lock.rb +4 -3
  499. data/test/rubygems/test_gem_source_specific_file.rb +1 -0
  500. data/test/rubygems/test_gem_source_subpath_problem.rb +1 -0
  501. data/test/rubygems/test_gem_source_vendor.rb +2 -1
  502. data/test/rubygems/test_gem_spec_fetcher.rb +1 -0
  503. data/test/rubygems/test_gem_specification.rb +95 -39
  504. data/test/rubygems/test_gem_stream_ui.rb +34 -3
  505. data/test/rubygems/test_gem_stub_specification.rb +1 -0
  506. data/test/rubygems/test_gem_text.rb +1 -0
  507. data/test/rubygems/test_gem_uninstaller.rb +6 -5
  508. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +1 -0
  509. data/test/rubygems/test_gem_update_suggestion.rb +209 -0
  510. data/test/rubygems/test_gem_uri.rb +2 -0
  511. data/test/rubygems/test_gem_uri_formatter.rb +1 -0
  512. data/test/rubygems/test_gem_util.rb +1 -0
  513. data/test/rubygems/test_gem_version.rb +3 -2
  514. data/test/rubygems/test_gem_version_option.rb +1 -0
  515. data/test/rubygems/test_kernel.rb +12 -17
  516. data/test/rubygems/test_project_sanity.rb +32 -3
  517. data/test/rubygems/test_remote_fetch_error.rb +2 -1
  518. data/test/rubygems/test_require.rb +70 -55
  519. data/test/rubygems/test_rubygems.rb +2 -0
  520. data/test/rubygems/test_webauthn_listener.rb +143 -0
  521. data/test/rubygems/test_webauthn_listener_response.rb +93 -0
  522. data/test/rubygems/test_webauthn_poller.rb +124 -0
  523. data/test/rubygems/utilities.rb +45 -3
  524. data/test/test_changelog_generator.rb +1 -1
  525. metadata +59 -43
  526. data/bundler/lib/bundler/templates/gems.rb +0 -5
  527. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
  528. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  529. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  530. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  531. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  532. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  533. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  534. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  535. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  536. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  537. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  538. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  539. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  540. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  541. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  542. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  543. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  544. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  545. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  546. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  547. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  548. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  549. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  550. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  551. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  552. data/bundler/lib/bundler/version_ranges.rb +0 -122
  553. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
  554. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
data/CONTRIBUTING.md CHANGED
@@ -29,13 +29,26 @@ here: https://guides.rubygems.org/contributing/
29
29
 
30
30
  ## Getting Started
31
31
 
32
+ ### Installing dependencies
33
+
32
34
  rake setup
33
35
 
34
- > Optionally you can configure git hooks with: rake git_hooks
36
+ > **NOTE**: If the above fails with permission related errors, you're most
37
+ > likely using a global Ruby installation (like the one packaged by your OS),
38
+ > which sets `GEM_HOME` to a location regular users can't write to. Consider
39
+ > using a Ruby version manager like [RVM](https://github.com/rvm/rvm),
40
+ > [rbenv](https://github.com/rbenv/rbenv),
41
+ > [chruby](https://github.com/postmodern/chruby) or [asdf](https://github.com/asdf-vm/asdf-ruby). These will install Ruby to a
42
+ > location regular users can write to, so you won't run into permission issues.
43
+ > Alternatively, consider setting `GEM_HOME` environment variable to a writable
44
+ > location with something like `export GEM_HOME=/tmp/rubygems.gems` and try
45
+ > again.
46
+
47
+ ### Manually trying your local changes
35
48
 
36
49
  To run commands like `gem install` from the repo:
37
50
 
38
- ruby -Ilib bin/gem install
51
+ ruby -Ilib exe/gem install
39
52
 
40
53
  To run commands like `bundle install` from the repo:
41
54
 
@@ -43,15 +56,15 @@ To run commands like `bundle install` from the repo:
43
56
 
44
57
  ### Running Tests
45
58
 
46
- To run the entire test suite you can use:
59
+ To run the entire test suite you can use:
47
60
 
48
61
  rake test
49
62
 
50
- To run an individual test file located for example in `test/rubygems/test_deprecate.rb` you can use:
63
+ To run an individual test file located for example in `test/rubygems/test_deprecate.rb` you can use:
51
64
 
52
65
  ruby -Ilib:test:bundler/lib test/rubygems/test_deprecate.rb
53
-
54
- And to run an individual test method named `test_default` within a test file, you can use:
66
+
67
+ And to run an individual test method named `test_default` within a test file, you can use:
55
68
 
56
69
  ruby -Ilib:test:bundler/lib test/rubygems/test_deprecate.rb -n /test_default/
57
70
 
@@ -67,14 +80,24 @@ To run the entire bundler test suite in parallel (it takes a while):
67
80
 
68
81
  bin/parallel_rspec
69
82
 
70
- To run the entire bundler test suite sequentially (get a coffee because it's very slow):
83
+ There are some realworld higher level specs run in CI, but not run by `bin/parallel_rspec`. You can run those with:
71
84
 
72
- bin/rspec
85
+ bin/rake spec:realworld
73
86
 
74
87
  To run an individual test file location for example in `spec/install/gems/standalone_spec.rb` you can use:
75
88
 
76
89
  bin/rspec spec/install/gems/standalone_spec.rb
77
90
 
91
+ ### Checking code style
92
+
93
+ You can check compliance with our code style with
94
+
95
+ rake rubocop
96
+
97
+ Optionally you can configure git hooks with to check this before every commit with
98
+
99
+ rake git_hooks
100
+
78
101
  ## Issues
79
102
 
80
103
  RubyGems uses labels to track all issues and pull requests. In order to
data/Manifest.txt CHANGED
@@ -8,8 +8,6 @@ Manifest.txt
8
8
  POLICIES.md
9
9
  README.md
10
10
  UPGRADING.md
11
- bin/gem
12
- bin/update_rubygems
13
11
  bundler/CHANGELOG.md
14
12
  bundler/LICENSE.md
15
13
  bundler/README.md
@@ -73,6 +71,7 @@ bundler/lib/bundler/fetcher/compact_index.rb
73
71
  bundler/lib/bundler/fetcher/dependency.rb
74
72
  bundler/lib/bundler/fetcher/downloader.rb
75
73
  bundler/lib/bundler/fetcher/index.rb
74
+ bundler/lib/bundler/force_platform.rb
76
75
  bundler/lib/bundler/friendly_errors.rb
77
76
  bundler/lib/bundler/gem_helper.rb
78
77
  bundler/lib/bundler/gem_helpers.rb
@@ -167,6 +166,10 @@ bundler/lib/bundler/process_lock.rb
167
166
  bundler/lib/bundler/remote_specification.rb
168
167
  bundler/lib/bundler/resolver.rb
169
168
  bundler/lib/bundler/resolver/base.rb
169
+ bundler/lib/bundler/resolver/candidate.rb
170
+ bundler/lib/bundler/resolver/incompatibility.rb
171
+ bundler/lib/bundler/resolver/package.rb
172
+ bundler/lib/bundler/resolver/root.rb
170
173
  bundler/lib/bundler/resolver/spec_group.rb
171
174
  bundler/lib/bundler/retry.rb
172
175
  bundler/lib/bundler/ruby_dsl.rb
@@ -175,6 +178,7 @@ bundler/lib/bundler/rubygems_ext.rb
175
178
  bundler/lib/bundler/rubygems_gem_installer.rb
176
179
  bundler/lib/bundler/rubygems_integration.rb
177
180
  bundler/lib/bundler/runtime.rb
181
+ bundler/lib/bundler/safe_marshal.rb
178
182
  bundler/lib/bundler/self_manager.rb
179
183
  bundler/lib/bundler/settings.rb
180
184
  bundler/lib/bundler/settings/validator.rb
@@ -200,9 +204,9 @@ bundler/lib/bundler/templates/Executable
200
204
  bundler/lib/bundler/templates/Executable.bundler
201
205
  bundler/lib/bundler/templates/Executable.standalone
202
206
  bundler/lib/bundler/templates/Gemfile
203
- bundler/lib/bundler/templates/gems.rb
204
207
  bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt
205
208
  bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
209
+ bundler/lib/bundler/templates/newgem/Cargo.toml.tt
206
210
  bundler/lib/bundler/templates/newgem/Gemfile.tt
207
211
  bundler/lib/bundler/templates/newgem/LICENSE.txt.tt
208
212
  bundler/lib/bundler/templates/newgem/README.md.tt
@@ -211,9 +215,12 @@ bundler/lib/bundler/templates/newgem/bin/console.tt
211
215
  bundler/lib/bundler/templates/newgem/bin/setup.tt
212
216
  bundler/lib/bundler/templates/newgem/circleci/config.yml.tt
213
217
  bundler/lib/bundler/templates/newgem/exe/newgem.tt
214
- bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt
218
+ bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt
219
+ bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt
220
+ bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt
215
221
  bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt
216
222
  bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt
223
+ bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt
217
224
  bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt
218
225
  bundler/lib/bundler/templates/newgem/gitignore.tt
219
226
  bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt
@@ -230,12 +237,12 @@ bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt
230
237
  bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
231
238
  bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt
232
239
  bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt
233
- bundler/lib/bundler/templates/newgem/travis.yml.tt
234
240
  bundler/lib/bundler/ui.rb
235
241
  bundler/lib/bundler/ui/rg_proxy.rb
236
242
  bundler/lib/bundler/ui/shell.rb
237
243
  bundler/lib/bundler/ui/silent.rb
238
244
  bundler/lib/bundler/uri_credentials_filter.rb
245
+ bundler/lib/bundler/uri_normalizer.rb
239
246
  bundler/lib/bundler/vendor/.document
240
247
  bundler/lib/bundler/vendor/connection_pool/LICENSE
241
248
  bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb
@@ -244,32 +251,28 @@ bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
244
251
  bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb
245
252
  bundler/lib/bundler/vendor/fileutils/LICENSE.txt
246
253
  bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb
247
- bundler/lib/bundler/vendor/molinillo/LICENSE
248
- bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb
249
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
250
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
251
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb
252
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb
253
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb
254
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
255
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb
256
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb
257
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb
258
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb
259
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb
260
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb
261
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb
262
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb
263
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb
264
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
265
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
266
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
267
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb
268
254
  bundler/lib/bundler/vendor/net-http-persistent/README.rdoc
269
255
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
270
256
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
271
257
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
272
258
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
259
+ bundler/lib/bundler/vendor/pub_grub/LICENSE.txt
260
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb
261
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb
262
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb
263
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb
264
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb
265
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb
266
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb
267
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
268
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb
269
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb
270
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb
271
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb
272
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb
273
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb
274
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb
275
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb
273
276
  bundler/lib/bundler/vendor/thor/LICENSE.md
274
277
  bundler/lib/bundler/vendor/thor/lib/thor.rb
275
278
  bundler/lib/bundler/vendor/thor/lib/thor/actions.rb
@@ -302,7 +305,6 @@ bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb
302
305
  bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb
303
306
  bundler/lib/bundler/vendor/thor/lib/thor/util.rb
304
307
  bundler/lib/bundler/vendor/thor/lib/thor/version.rb
305
- bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb
306
308
  bundler/lib/bundler/vendor/tsort/LICENSE.txt
307
309
  bundler/lib/bundler/vendor/tsort/lib/tsort.rb
308
310
  bundler/lib/bundler/vendor/uri/LICENSE.txt
@@ -322,17 +324,17 @@ bundler/lib/bundler/vendor/uri/lib/uri/version.rb
322
324
  bundler/lib/bundler/vendor/uri/lib/uri/ws.rb
323
325
  bundler/lib/bundler/vendor/uri/lib/uri/wss.rb
324
326
  bundler/lib/bundler/vendored_fileutils.rb
325
- bundler/lib/bundler/vendored_molinillo.rb
326
327
  bundler/lib/bundler/vendored_persistent.rb
328
+ bundler/lib/bundler/vendored_pub_grub.rb
327
329
  bundler/lib/bundler/vendored_thor.rb
328
- bundler/lib/bundler/vendored_tmpdir.rb
329
330
  bundler/lib/bundler/vendored_tsort.rb
330
331
  bundler/lib/bundler/vendored_uri.rb
331
332
  bundler/lib/bundler/version.rb
332
- bundler/lib/bundler/version_ranges.rb
333
333
  bundler/lib/bundler/vlad.rb
334
334
  bundler/lib/bundler/worker.rb
335
335
  bundler/lib/bundler/yaml_serializer.rb
336
+ exe/gem
337
+ exe/update_rubygems
336
338
  hide_lib_for_update/note.txt
337
339
  lib/rubygems.rb
338
340
  lib/rubygems/available_set.rb
@@ -347,6 +349,7 @@ lib/rubygems/commands/cleanup_command.rb
347
349
  lib/rubygems/commands/contents_command.rb
348
350
  lib/rubygems/commands/dependency_command.rb
349
351
  lib/rubygems/commands/environment_command.rb
352
+ lib/rubygems/commands/exec_command.rb
350
353
  lib/rubygems/commands/fetch_command.rb
351
354
  lib/rubygems/commands/generate_index_command.rb
352
355
  lib/rubygems/commands/help_command.rb
@@ -400,6 +403,9 @@ lib/rubygems/ext/ext_conf_builder.rb
400
403
  lib/rubygems/ext/rake_builder.rb
401
404
  lib/rubygems/gem_runner.rb
402
405
  lib/rubygems/gemcutter_utilities.rb
406
+ lib/rubygems/gemcutter_utilities/webauthn_listener.rb
407
+ lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb
408
+ lib/rubygems/gemcutter_utilities/webauthn_poller.rb
403
409
  lib/rubygems/indexer.rb
404
410
  lib/rubygems/install_default_message.rb
405
411
  lib/rubygems/install_message.rb
@@ -506,6 +512,7 @@ lib/rubygems/security/policy.rb
506
512
  lib/rubygems/security/signer.rb
507
513
  lib/rubygems/security/trust_dir.rb
508
514
  lib/rubygems/security_option.rb
515
+ lib/rubygems/shellwords.rb
509
516
  lib/rubygems/source.rb
510
517
  lib/rubygems/source/git.rb
511
518
  lib/rubygems/source/installed.rb
@@ -528,6 +535,7 @@ lib/rubygems/tsort/LICENSE.txt
528
535
  lib/rubygems/tsort/lib/tsort.rb
529
536
  lib/rubygems/uninstaller.rb
530
537
  lib/rubygems/unknown_command_spell_checker.rb
538
+ lib/rubygems/update_suggestion.rb
531
539
  lib/rubygems/uri.rb
532
540
  lib/rubygems/uri_formatter.rb
533
541
  lib/rubygems/user_interaction.rb
@@ -543,6 +551,7 @@ test/rubygems/alternate_cert.pem
543
551
  test/rubygems/alternate_cert_32.pem
544
552
  test/rubygems/alternate_key.pem
545
553
  test/rubygems/bad_rake.rb
554
+ test/rubygems/bundler_test_gem.rb
546
555
  test/rubygems/ca_cert.pem
547
556
  test/rubygems/child_cert.pem
548
557
  test/rubygems/child_cert_32.pem
@@ -575,6 +584,7 @@ test/rubygems/invalid_signer_cert_32.pem
575
584
  test/rubygems/invalidchild_cert.pem
576
585
  test/rubygems/invalidchild_cert_32.pem
577
586
  test/rubygems/invalidchild_key.pem
587
+ test/rubygems/multifactor_auth_utilities.rb
578
588
  test/rubygems/package/tar_test_case.rb
579
589
  test/rubygems/packages/Bluebie-legs-0.6.2.gem
580
590
  test/rubygems/packages/ascii_binder-0.1.10.1.gem
@@ -614,6 +624,7 @@ test/rubygems/test_gem_commands_cleanup_command.rb
614
624
  test/rubygems/test_gem_commands_contents_command.rb
615
625
  test/rubygems/test_gem_commands_dependency_command.rb
616
626
  test/rubygems/test_gem_commands_environment_command.rb
627
+ test/rubygems/test_gem_commands_exec_command.rb
617
628
  test/rubygems/test_gem_commands_fetch_command.rb
618
629
  test/rubygems/test_gem_commands_generate_index_command.rb
619
630
  test/rubygems/test_gem_commands_help_command.rb
@@ -650,15 +661,14 @@ test/rubygems/test_gem_doctor.rb
650
661
  test/rubygems/test_gem_ext_builder.rb
651
662
  test/rubygems/test_gem_ext_cargo_builder.rb
652
663
  test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore
653
- test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock
654
- test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml
655
- test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb
656
664
  test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec
657
- test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs
665
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock
666
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml
667
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs
668
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb
658
669
  test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore
659
670
  test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock
660
671
  test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml
661
- test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb
662
672
  test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec
663
673
  test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs
664
674
  test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb
@@ -737,6 +747,7 @@ test/rubygems/test_gem_stub_specification.rb
737
747
  test/rubygems/test_gem_text.rb
738
748
  test/rubygems/test_gem_uninstaller.rb
739
749
  test/rubygems/test_gem_unsatisfiable_dependency_error.rb
750
+ test/rubygems/test_gem_update_suggestion.rb
740
751
  test/rubygems/test_gem_uri.rb
741
752
  test/rubygems/test_gem_uri_formatter.rb
742
753
  test/rubygems/test_gem_util.rb
@@ -748,6 +759,9 @@ test/rubygems/test_project_sanity.rb
748
759
  test/rubygems/test_remote_fetch_error.rb
749
760
  test/rubygems/test_require.rb
750
761
  test/rubygems/test_rubygems.rb
762
+ test/rubygems/test_webauthn_listener.rb
763
+ test/rubygems/test_webauthn_listener_response.rb
764
+ test/rubygems/test_webauthn_poller.rb
751
765
  test/rubygems/utilities.rb
752
766
  test/rubygems/wrong_key_cert.pem
753
767
  test/rubygems/wrong_key_cert_32.pem
data/POLICIES.md CHANGED
@@ -102,14 +102,16 @@ and not get any conflicts.
102
102
 
103
103
  * Confirm all PRs that you want listed in changelogs are properly tagged with
104
104
  `rubygems: <type>` or `bundler: <type>` labels at GitHub.
105
- * Run `rake prepare_release[<target_version>]`.
106
- * Add the new stable branch `x.y` where `x.y` are the first two components of
107
- the rubygems version being released to the CI workflows as an extra commit
108
- on top of what the `prepare_release` task generated.
109
- * Create a PR to the main branch, and merge it once CI passes.
110
- * From the main branch, cut a new stable branch with `git pull && git checkout
111
- -b x.y`.
112
- * Push the stable branch and wait for CI to be green.
105
+ * Run `rake prepare_release[<target_version>]`. This will create a new stable
106
+ branch off the master branch, and create a PR to it with the proper version
107
+ bumps and changelogs. It will also create a PR to merge release changelogs
108
+ into master.
109
+ * Replace the stable branch in the workflows with the new stable branch, and
110
+ push that change to the release PR.
111
+ * Replace version numbers with the next ".dev" version, and push that change
112
+ to the master PR.
113
+ * Once CI passes, merge the release PR, switch to the stable branch and pull
114
+ the PR just merged.
113
115
  * Release `bundler` with `(cd bundler && bin/rake release)`.
114
116
  * Release `rubygems` with `rake release`.
115
117
 
@@ -126,8 +128,8 @@ permissions compromised or exposed.
126
128
 
127
129
  ## Changing These Policies
128
130
 
129
- These policies were set in order to reduce the burden of maintenance and to
130
- keep committers current with existing development and policies. RubyGems work
131
- is primarily volunteer-driven which limits the ability to provide long-term
132
- support. By joining [Ruby Together](https://rubytogether.org) you can help
133
- extend support for older RubyGems versions.
131
+ These policies were set in order to reduce the burden of maintenance and to keep
132
+ committers current with existing development and policies. RubyGems work is
133
+ primarily volunteer-driven which limits the ability to provide long-term
134
+ support. By joining [Ruby Central](https://rubycentral.org/#/portal/signup) you
135
+ can help extend support for older RubyGems versions.
data/README.md CHANGED
@@ -64,6 +64,22 @@ To upgrade to the latest RubyGems, run:
64
64
 
65
65
  See [UPGRADING](UPGRADING.md) for more details and alternative instructions.
66
66
 
67
+ ## Release policy
68
+
69
+ RubyGems and Bundler are released in sync, although they do not share their
70
+ major version number. It is planned that also their major version numbers will
71
+ be sync'ed in the future.
72
+
73
+ The release policy is somewhat similar to the release policy of Ruby itself:
74
+
75
+ * Frequent patch releases (every 2-4 weeks) including bug fixes, minor
76
+ enhancements, small features, or even medium sized features declared as
77
+ experimental for battle testing.
78
+ * Yearly minor releases including bigger features, and minor breaking changes
79
+ (affecting only edge cases and a very small set of users).
80
+ * Occasional major releases (replacing yearly minors) including major breaking
81
+ changes.
82
+
67
83
  ## Documentation
68
84
 
69
85
  RubyGems uses [rdoc](https://github.com/rdoc/rdoc) for documentation. A compiled set of the docs
@@ -79,23 +95,20 @@ creating a new gem, security practices and other resources at https://guides.rub
79
95
  Got a bug and you're not sure? You're sure you have a bug, but don't know
80
96
  what to do next? In any case, let us know about it! The best place
81
97
  for letting the RubyGems team know about bugs or problems you're having is
82
- [on the RubyGems issues page at GitHub](http://github.com/rubygems/rubygems/issues).
98
+ [on the RubyGems issues page at GitHub](https://github.com/rubygems/rubygems/issues).
83
99
 
84
100
  ### Bundler Compatibility
85
101
 
86
- See http://bundler.io/compatibility for known issues.
102
+ See https://bundler.io/compatibility for known issues.
87
103
 
88
104
  ### Supporting
89
105
 
90
- <a href="https://rubytogether.org/"><img src="https://rubytogether.org/images/rubies.svg" width=200></a><br/>
91
- <a href="https://rubytogether.org/">Ruby Together</a> pays some RubyGems maintainers for their ongoing work. As a grassroots initiative committed to supporting the critical Ruby infrastructure you rely on, Ruby Together is funded entirely by the Ruby community. Contribute today <a href="https://rubytogether.org/developers">as an individual</a> or even better, <a href="https://rubytogether.org/companies">as a company</a>, and ensure that RubyGems, Bundler, and other shared tooling is around for years to come.
106
+ RubyGems is managed by [Ruby Central](https://rubycentral.org), a non-profit organization that supports the Ruby community through projects like this one, as well as [RubyConf](https://rubyconf.org), [RailsConf](https://railsconf.org), and [RubyGems.org](https://rubygems.org). You can support Ruby Central by attending or [sponsoring](sponsors@rubycentral.org) a conference, or by [joining as a supporting member](https://rubycentral.org/#/portal/signup).
92
107
 
93
108
  ### Contributing
94
109
 
95
110
  If you'd like to contribute to RubyGems, that's awesome, and we <3 you. Check out our [guide to contributing](CONTRIBUTING.md) for more information.
96
111
 
97
- While some RubyGems contributors are compensated by Ruby Together, the project maintainers make decisions independent of Ruby Together. As a project, we welcome contributions regardless of the author’s affiliation with Ruby Together.
98
-
99
112
  ### Code of Conduct
100
113
 
101
114
  Everyone interacting in the RubyGems project’s codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [contributor code of conduct](https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md).