rubygems-update 3.3.7 → 3.4.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (600) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1419 -1036
  3. data/CONTRIBUTING.md +30 -7
  4. data/Manifest.txt +63 -31
  5. data/POLICIES.md +53 -18
  6. data/README.md +3 -6
  7. data/bin/gem +2 -5
  8. data/bin/update_rubygems +5 -5
  9. data/bundler/CHANGELOG.md +457 -1
  10. data/bundler/README.md +3 -6
  11. data/bundler/UPGRADING.md +11 -4
  12. data/bundler/bundler.gemspec +8 -10
  13. data/bundler/exe/bundle +2 -5
  14. data/bundler/exe/bundler +1 -1
  15. data/bundler/lib/bundler/build_metadata.rb +3 -3
  16. data/bundler/lib/bundler/cli/add.rb +1 -1
  17. data/bundler/lib/bundler/cli/binstubs.rb +5 -1
  18. data/bundler/lib/bundler/cli/check.rb +1 -1
  19. data/bundler/lib/bundler/cli/common.rb +4 -2
  20. data/bundler/lib/bundler/cli/console.rb +2 -2
  21. data/bundler/lib/bundler/cli/doctor.rb +4 -6
  22. data/bundler/lib/bundler/cli/gem.rb +62 -40
  23. data/bundler/lib/bundler/cli/info.rb +1 -1
  24. data/bundler/lib/bundler/cli/init.rb +6 -2
  25. data/bundler/lib/bundler/cli/install.rb +7 -5
  26. data/bundler/lib/bundler/cli/lock.rb +8 -5
  27. data/bundler/lib/bundler/cli/open.rb +6 -4
  28. data/bundler/lib/bundler/cli/outdated.rb +13 -6
  29. data/bundler/lib/bundler/cli/platform.rb +1 -1
  30. data/bundler/lib/bundler/cli/show.rb +1 -1
  31. data/bundler/lib/bundler/cli/viz.rb +1 -1
  32. data/bundler/lib/bundler/cli.rb +55 -10
  33. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  34. data/bundler/lib/bundler/compact_index_client/updater.rb +53 -39
  35. data/bundler/lib/bundler/constants.rb +1 -1
  36. data/bundler/lib/bundler/current_ruby.rb +18 -6
  37. data/bundler/lib/bundler/definition.rb +206 -129
  38. data/bundler/lib/bundler/dependency.rb +21 -66
  39. data/bundler/lib/bundler/digest.rb +1 -1
  40. data/bundler/lib/bundler/dsl.rb +13 -18
  41. data/bundler/lib/bundler/endpoint_specification.rb +6 -10
  42. data/bundler/lib/bundler/env.rb +1 -1
  43. data/bundler/lib/bundler/environment_preserver.rb +3 -2
  44. data/bundler/lib/bundler/errors.rb +15 -15
  45. data/bundler/lib/bundler/feature_flag.rb +0 -1
  46. data/bundler/lib/bundler/fetcher/base.rb +6 -8
  47. data/bundler/lib/bundler/fetcher/compact_index.rb +9 -11
  48. data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
  49. data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
  50. data/bundler/lib/bundler/fetcher.rb +15 -14
  51. data/bundler/lib/bundler/force_platform.rb +18 -0
  52. data/bundler/lib/bundler/friendly_errors.rb +21 -7
  53. data/bundler/lib/bundler/gem_helpers.rb +9 -2
  54. data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
  55. data/bundler/lib/bundler/graph.rb +3 -3
  56. data/bundler/lib/bundler/index.rb +13 -51
  57. data/bundler/lib/bundler/injector.rb +9 -4
  58. data/bundler/lib/bundler/inline.rb +9 -21
  59. data/bundler/lib/bundler/installer/gem_installer.rb +14 -1
  60. data/bundler/lib/bundler/installer/parallel_installer.rb +3 -33
  61. data/bundler/lib/bundler/installer/standalone.rb +42 -11
  62. data/bundler/lib/bundler/installer.rb +20 -41
  63. data/bundler/lib/bundler/lazy_specification.rb +53 -48
  64. data/bundler/lib/bundler/lockfile_generator.rb +2 -2
  65. data/bundler/lib/bundler/lockfile_parser.rb +18 -14
  66. data/bundler/lib/bundler/man/bundle-add.1 +13 -5
  67. data/bundler/lib/bundler/man/bundle-add.1.ronn +10 -4
  68. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  69. data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
  70. data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
  71. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  72. data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
  73. data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
  74. data/bundler/lib/bundler/man/bundle-config.1 +30 -11
  75. data/bundler/lib/bundler/man/bundle-config.1.ronn +26 -14
  76. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  77. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  78. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  79. data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
  80. data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
  81. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  82. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  83. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  84. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  85. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  86. data/bundler/lib/bundler/man/bundle-init.1 +5 -1
  87. data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
  88. data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
  89. data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
  90. data/bundler/lib/bundler/man/bundle-install.1 +5 -30
  91. data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -29
  92. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  93. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  94. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  95. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  96. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -10
  97. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -10
  98. data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
  99. data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
  100. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  101. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  102. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  103. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  104. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  105. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  106. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  107. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  108. data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
  109. data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
  110. data/bundler/lib/bundler/man/bundle.1 +15 -10
  111. data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
  112. data/bundler/lib/bundler/man/gemfile.5 +92 -81
  113. data/bundler/lib/bundler/man/gemfile.5.ronn +98 -85
  114. data/bundler/lib/bundler/man/index.txt +4 -0
  115. data/bundler/lib/bundler/match_metadata.rb +13 -0
  116. data/bundler/lib/bundler/match_platform.rb +0 -1
  117. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  118. data/bundler/lib/bundler/mirror.rb +5 -7
  119. data/bundler/lib/bundler/plugin/api/source.rb +3 -9
  120. data/bundler/lib/bundler/plugin/index.rb +4 -4
  121. data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
  122. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -8
  123. data/bundler/lib/bundler/plugin.rb +3 -1
  124. data/bundler/lib/bundler/process_lock.rb +1 -1
  125. data/bundler/lib/bundler/remote_specification.rb +8 -9
  126. data/bundler/lib/bundler/resolver/base.rb +77 -0
  127. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  128. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  129. data/bundler/lib/bundler/resolver/package.rb +72 -0
  130. data/bundler/lib/bundler/resolver/root.rb +25 -0
  131. data/bundler/lib/bundler/resolver/spec_group.rb +42 -70
  132. data/bundler/lib/bundler/resolver.rb +328 -299
  133. data/bundler/lib/bundler/ruby_dsl.rb +1 -1
  134. data/bundler/lib/bundler/ruby_version.rb +5 -18
  135. data/bundler/lib/bundler/rubygems_ext.rb +131 -17
  136. data/bundler/lib/bundler/rubygems_gem_installer.rb +32 -20
  137. data/bundler/lib/bundler/rubygems_integration.rb +13 -35
  138. data/bundler/lib/bundler/runtime.rb +1 -6
  139. data/bundler/lib/bundler/settings.rb +2 -8
  140. data/bundler/lib/bundler/setup.rb +4 -1
  141. data/bundler/lib/bundler/shared_helpers.rb +12 -12
  142. data/bundler/lib/bundler/source/git/git_proxy.rb +209 -69
  143. data/bundler/lib/bundler/source/git.rb +22 -25
  144. data/bundler/lib/bundler/source/metadata.rb +2 -3
  145. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  146. data/bundler/lib/bundler/source/path.rb +7 -7
  147. data/bundler/lib/bundler/source/rubygems.rb +75 -117
  148. data/bundler/lib/bundler/source.rb +3 -4
  149. data/bundler/lib/bundler/source_list.rb +12 -2
  150. data/bundler/lib/bundler/source_map.rb +15 -2
  151. data/bundler/lib/bundler/spec_set.rb +58 -34
  152. data/bundler/lib/bundler/stub_specification.rb +5 -3
  153. data/bundler/lib/bundler/templates/Executable +3 -5
  154. data/bundler/lib/bundler/templates/Executable.bundler +6 -11
  155. data/bundler/lib/bundler/templates/Executable.standalone +4 -4
  156. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  157. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  158. data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -11
  159. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -1
  160. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  161. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  162. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  163. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  164. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +11 -1
  165. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  166. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  167. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -3
  168. data/bundler/lib/bundler/ui/shell.rb +35 -12
  169. data/bundler/lib/bundler/ui/silent.rb +21 -5
  170. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  171. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  172. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  173. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
  174. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  175. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  176. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  177. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  178. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  179. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  180. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +155 -0
  181. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  182. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  183. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  184. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  185. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  186. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  187. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  188. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  189. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  190. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +243 -0
  191. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  192. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  193. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  194. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +318 -319
  195. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  196. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  197. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  198. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  199. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  200. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  201. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  202. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  203. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  204. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +13 -7
  205. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +10 -5
  206. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  207. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  208. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  209. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  210. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  211. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  212. data/bundler/lib/bundler/version.rb +5 -1
  213. data/bundler/lib/bundler/worker.rb +5 -7
  214. data/bundler/lib/bundler.rb +39 -73
  215. data/lib/rubygems/available_set.rb +3 -3
  216. data/lib/rubygems/basic_specification.rb +4 -4
  217. data/lib/rubygems/bundler_version_finder.rb +1 -1
  218. data/lib/rubygems/command.rb +40 -32
  219. data/lib/rubygems/command_manager.rb +33 -14
  220. data/lib/rubygems/commands/build_command.rb +11 -8
  221. data/lib/rubygems/commands/cert_command.rb +33 -33
  222. data/lib/rubygems/commands/check_command.rb +20 -20
  223. data/lib/rubygems/commands/cleanup_command.rb +17 -17
  224. data/lib/rubygems/commands/contents_command.rb +13 -13
  225. data/lib/rubygems/commands/dependency_command.rb +16 -16
  226. data/lib/rubygems/commands/environment_command.rb +10 -7
  227. data/lib/rubygems/commands/exec_command.rb +248 -0
  228. data/lib/rubygems/commands/fetch_command.rb +9 -9
  229. data/lib/rubygems/commands/generate_index_command.rb +17 -17
  230. data/lib/rubygems/commands/help_command.rb +6 -6
  231. data/lib/rubygems/commands/info_command.rb +3 -3
  232. data/lib/rubygems/commands/install_command.rb +28 -24
  233. data/lib/rubygems/commands/list_command.rb +3 -3
  234. data/lib/rubygems/commands/lock_command.rb +4 -4
  235. data/lib/rubygems/commands/mirror_command.rb +3 -3
  236. data/lib/rubygems/commands/open_command.rb +9 -9
  237. data/lib/rubygems/commands/outdated_command.rb +5 -5
  238. data/lib/rubygems/commands/owner_command.rb +17 -12
  239. data/lib/rubygems/commands/pristine_command.rb +37 -37
  240. data/lib/rubygems/commands/push_command.rb +8 -8
  241. data/lib/rubygems/commands/query_command.rb +8 -8
  242. data/lib/rubygems/commands/rdoc_command.rb +20 -19
  243. data/lib/rubygems/commands/search_command.rb +3 -3
  244. data/lib/rubygems/commands/server_command.rb +3 -3
  245. data/lib/rubygems/commands/setup_command.rb +99 -108
  246. data/lib/rubygems/commands/signin_command.rb +9 -9
  247. data/lib/rubygems/commands/signout_command.rb +7 -7
  248. data/lib/rubygems/commands/sources_command.rb +22 -22
  249. data/lib/rubygems/commands/specification_command.rb +14 -14
  250. data/lib/rubygems/commands/stale_command.rb +2 -2
  251. data/lib/rubygems/commands/uninstall_command.rb +40 -40
  252. data/lib/rubygems/commands/unpack_command.rb +13 -13
  253. data/lib/rubygems/commands/update_command.rb +49 -68
  254. data/lib/rubygems/commands/which_command.rb +7 -7
  255. data/lib/rubygems/commands/yank_command.rb +11 -11
  256. data/lib/rubygems/compatibility.rb +4 -2
  257. data/lib/rubygems/config_file.rb +54 -21
  258. data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
  259. data/lib/rubygems/core_ext/kernel_require.rb +117 -114
  260. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  261. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  262. data/lib/rubygems/defaults.rb +32 -18
  263. data/lib/rubygems/dependency.rb +14 -11
  264. data/lib/rubygems/dependency_installer.rb +37 -37
  265. data/lib/rubygems/dependency_list.rb +6 -6
  266. data/lib/rubygems/deprecate.rb +2 -2
  267. data/lib/rubygems/doctor.rb +18 -18
  268. data/lib/rubygems/errors.rb +3 -3
  269. data/lib/rubygems/exceptions.rb +6 -8
  270. data/lib/rubygems/ext/build_error.rb +1 -1
  271. data/lib/rubygems/ext/builder.rb +27 -18
  272. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
  273. data/lib/rubygems/ext/cargo_builder.rb +360 -0
  274. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  275. data/lib/rubygems/ext/configure_builder.rb +1 -1
  276. data/lib/rubygems/ext/ext_conf_builder.rb +36 -59
  277. data/lib/rubygems/ext/rake_builder.rb +3 -3
  278. data/lib/rubygems/ext.rb +7 -6
  279. data/lib/rubygems/gem_runner.rb +8 -12
  280. data/lib/rubygems/gemcutter_utilities.rb +60 -21
  281. data/lib/rubygems/indexer.rb +30 -28
  282. data/lib/rubygems/install_default_message.rb +2 -2
  283. data/lib/rubygems/install_message.rb +2 -2
  284. data/lib/rubygems/install_update_options.rb +55 -55
  285. data/lib/rubygems/installer.rb +40 -50
  286. data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
  287. data/lib/rubygems/local_remote_options.rb +19 -21
  288. data/lib/rubygems/mock_gem_ui.rb +2 -2
  289. data/lib/rubygems/name_tuple.rb +4 -4
  290. data/lib/rubygems/optparse/lib/optparse/ac.rb +1 -1
  291. data/lib/rubygems/optparse/lib/optparse/date.rb +1 -1
  292. data/lib/rubygems/optparse/lib/optparse/kwargs.rb +1 -1
  293. data/lib/rubygems/optparse/lib/optparse/shellwords.rb +1 -1
  294. data/lib/rubygems/optparse/lib/optparse/time.rb +1 -1
  295. data/lib/rubygems/optparse/lib/optparse/uri.rb +1 -1
  296. data/lib/rubygems/optparse/lib/optparse.rb +95 -17
  297. data/lib/rubygems/optparse.rb +1 -1
  298. data/lib/rubygems/package/file_source.rb +2 -2
  299. data/lib/rubygems/package/old.rb +8 -8
  300. data/lib/rubygems/package/tar_header.rb +61 -61
  301. data/lib/rubygems/package/tar_reader/entry.rb +90 -9
  302. data/lib/rubygems/package/tar_reader.rb +1 -29
  303. data/lib/rubygems/package/tar_writer.rb +7 -7
  304. data/lib/rubygems/package.rb +66 -49
  305. data/lib/rubygems/package_task.rb +4 -4
  306. data/lib/rubygems/platform.rb +80 -51
  307. data/lib/rubygems/psych_tree.rb +1 -1
  308. data/lib/rubygems/query_utils.rb +36 -36
  309. data/lib/rubygems/rdoc.rb +2 -2
  310. data/lib/rubygems/remote_fetcher.rb +22 -22
  311. data/lib/rubygems/request/connection_pools.rb +4 -4
  312. data/lib/rubygems/request/http_pool.rb +1 -1
  313. data/lib/rubygems/request.rb +24 -24
  314. data/lib/rubygems/request_set/gem_dependency_api.rb +122 -123
  315. data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
  316. data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
  317. data/lib/rubygems/request_set/lockfile.rb +5 -5
  318. data/lib/rubygems/request_set.rb +17 -17
  319. data/lib/rubygems/requirement.rb +14 -14
  320. data/lib/rubygems/resolver/activation_request.rb +3 -3
  321. data/lib/rubygems/resolver/api_set.rb +4 -4
  322. data/lib/rubygems/resolver/api_specification.rb +6 -6
  323. data/lib/rubygems/resolver/best_set.rb +5 -5
  324. data/lib/rubygems/resolver/conflict.rb +10 -10
  325. data/lib/rubygems/resolver/dependency_request.rb +2 -2
  326. data/lib/rubygems/resolver/git_set.rb +2 -2
  327. data/lib/rubygems/resolver/git_specification.rb +6 -6
  328. data/lib/rubygems/resolver/index_set.rb +3 -3
  329. data/lib/rubygems/resolver/index_specification.rb +6 -5
  330. data/lib/rubygems/resolver/installed_specification.rb +4 -4
  331. data/lib/rubygems/resolver/installer_set.rb +11 -16
  332. data/lib/rubygems/resolver/local_specification.rb +2 -2
  333. data/lib/rubygems/resolver/lock_set.rb +4 -4
  334. data/lib/rubygems/resolver/lock_specification.rb +4 -4
  335. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  336. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  337. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  338. data/lib/rubygems/resolver/molinillo.rb +1 -1
  339. data/lib/rubygems/resolver/specification.rb +1 -1
  340. data/lib/rubygems/resolver/stats.rb +1 -1
  341. data/lib/rubygems/resolver/vendor_set.rb +1 -1
  342. data/lib/rubygems/resolver/vendor_specification.rb +3 -3
  343. data/lib/rubygems/resolver.rb +40 -40
  344. data/lib/rubygems/s3_uri_signer.rb +6 -6
  345. data/lib/rubygems/safe_yaml.rb +2 -2
  346. data/lib/rubygems/security/policies.rb +47 -47
  347. data/lib/rubygems/security/policy.rb +18 -18
  348. data/lib/rubygems/security/signer.rb +5 -5
  349. data/lib/rubygems/security/trust_dir.rb +4 -4
  350. data/lib/rubygems/security.rb +29 -42
  351. data/lib/rubygems/security_option.rb +5 -5
  352. data/lib/rubygems/source/git.rb +25 -24
  353. data/lib/rubygems/source/installed.rb +1 -1
  354. data/lib/rubygems/source/local.rb +2 -2
  355. data/lib/rubygems/source/specific_file.rb +1 -1
  356. data/lib/rubygems/source.rb +18 -25
  357. data/lib/rubygems/source_list.rb +1 -5
  358. data/lib/rubygems/spec_fetcher.rb +11 -11
  359. data/lib/rubygems/specification.rb +175 -118
  360. data/lib/rubygems/specification_policy.rb +35 -16
  361. data/lib/rubygems/stub_specification.rb +8 -8
  362. data/lib/rubygems/text.rb +2 -2
  363. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  364. data/lib/rubygems/tsort.rb +1 -1
  365. data/lib/rubygems/uninstaller.rb +18 -18
  366. data/lib/rubygems/update_suggestion.rb +69 -0
  367. data/lib/rubygems/uri.rb +45 -30
  368. data/lib/rubygems/uri_formatter.rb +1 -1
  369. data/lib/rubygems/user_interaction.rb +33 -19
  370. data/lib/rubygems/util/licenses.rb +3 -3
  371. data/lib/rubygems/util.rb +12 -16
  372. data/lib/rubygems/validator.rb +6 -6
  373. data/lib/rubygems/version.rb +17 -11
  374. data/lib/rubygems/version_option.rb +3 -3
  375. data/lib/rubygems.rb +96 -77
  376. data/rubygems-update.gemspec +3 -3
  377. data/setup.rb +10 -10
  378. data/test/rubygems/alternate_cert.pem +14 -14
  379. data/test/rubygems/alternate_cert_32.pem +15 -15
  380. data/test/rubygems/alternate_key.pem +25 -25
  381. data/test/rubygems/bundler_test_gem.rb +419 -0
  382. data/test/rubygems/child_cert.pem +15 -16
  383. data/test/rubygems/child_cert_32.pem +15 -16
  384. data/test/rubygems/child_key.pem +25 -25
  385. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  386. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  387. data/test/rubygems/encrypted_private_key.pem +26 -26
  388. data/test/rubygems/expired_cert.pem +15 -15
  389. data/test/rubygems/future_cert.pem +15 -15
  390. data/test/rubygems/future_cert_32.pem +15 -15
  391. data/test/rubygems/grandchild_cert.pem +15 -16
  392. data/test/rubygems/grandchild_cert_32.pem +15 -16
  393. data/test/rubygems/grandchild_key.pem +25 -25
  394. data/test/rubygems/helper.rb +183 -163
  395. data/test/rubygems/installer_test_case.rb +13 -13
  396. data/test/rubygems/invalid_issuer_cert.pem +16 -16
  397. data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
  398. data/test/rubygems/invalid_key.pem +25 -25
  399. data/test/rubygems/invalid_signer_cert.pem +15 -15
  400. data/test/rubygems/invalid_signer_cert_32.pem +15 -15
  401. data/test/rubygems/invalidchild_cert.pem +15 -16
  402. data/test/rubygems/invalidchild_cert_32.pem +15 -16
  403. data/test/rubygems/invalidchild_key.pem +25 -25
  404. data/test/rubygems/package/tar_test_case.rb +52 -17
  405. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  406. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
  407. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
  408. data/test/rubygems/private_key.pem +25 -25
  409. data/test/rubygems/public_cert.pem +16 -16
  410. data/test/rubygems/public_cert_32.pem +15 -15
  411. data/test/rubygems/public_key.pem +7 -7
  412. data/test/rubygems/rubygems_plugin.rb +2 -2
  413. data/test/rubygems/simple_gem.rb +1 -1
  414. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
  415. data/test/rubygems/test_bundled_ca.rb +11 -11
  416. data/test/rubygems/test_config.rb +3 -3
  417. data/test/rubygems/test_deprecate.rb +3 -3
  418. data/test/rubygems/test_exit.rb +8 -2
  419. data/test/rubygems/test_gem.rb +327 -694
  420. data/test/rubygems/test_gem_available_set.rb +21 -21
  421. data/test/rubygems/test_gem_bundler_version_finder.rb +5 -4
  422. data/test/rubygems/test_gem_command.rb +44 -44
  423. data/test/rubygems/test_gem_command_manager.rb +102 -31
  424. data/test/rubygems/test_gem_commands_build_command.rb +73 -63
  425. data/test/rubygems/test_gem_commands_cert_command.rb +97 -99
  426. data/test/rubygems/test_gem_commands_check_command.rb +4 -4
  427. data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
  428. data/test/rubygems/test_gem_commands_contents_command.rb +28 -28
  429. data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
  430. data/test/rubygems/test_gem_commands_environment_command.rb +38 -14
  431. data/test/rubygems/test_gem_commands_exec_command.rb +851 -0
  432. data/test/rubygems/test_gem_commands_fetch_command.rb +37 -37
  433. data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
  434. data/test/rubygems/test_gem_commands_help_command.rb +13 -13
  435. data/test/rubygems/test_gem_commands_info_command.rb +28 -2
  436. data/test/rubygems/test_gem_commands_install_command.rb +153 -134
  437. data/test/rubygems/test_gem_commands_list_command.rb +4 -4
  438. data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
  439. data/test/rubygems/test_gem_commands_mirror.rb +2 -2
  440. data/test/rubygems/test_gem_commands_open_command.rb +4 -4
  441. data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
  442. data/test/rubygems/test_gem_commands_owner_command.rb +126 -45
  443. data/test/rubygems/test_gem_commands_pristine_command.rb +93 -92
  444. data/test/rubygems/test_gem_commands_push_command.rb +85 -59
  445. data/test/rubygems/test_gem_commands_query_command.rb +73 -73
  446. data/test/rubygems/test_gem_commands_search_command.rb +2 -2
  447. data/test/rubygems/test_gem_commands_server_command.rb +2 -2
  448. data/test/rubygems/test_gem_commands_setup_command.rb +123 -94
  449. data/test/rubygems/test_gem_commands_signin_command.rb +153 -25
  450. data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
  451. data/test/rubygems/test_gem_commands_sources_command.rb +74 -25
  452. data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
  453. data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
  454. data/test/rubygems/test_gem_commands_uninstall_command.rb +75 -75
  455. data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
  456. data/test/rubygems/test_gem_commands_update_command.rb +145 -93
  457. data/test/rubygems/test_gem_commands_which_command.rb +6 -6
  458. data/test/rubygems/test_gem_commands_yank_command.rb +42 -42
  459. data/test/rubygems/test_gem_config_file.rb +93 -81
  460. data/test/rubygems/test_gem_dependency.rb +75 -73
  461. data/test/rubygems/test_gem_dependency_installer.rb +165 -165
  462. data/test/rubygems/test_gem_dependency_list.rb +47 -47
  463. data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
  464. data/test/rubygems/test_gem_doctor.rb +26 -26
  465. data/test/rubygems/test_gem_ext_builder.rb +60 -62
  466. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
  467. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +8 -0
  468. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +233 -0
  469. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +10 -0
  470. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +27 -0
  471. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +1 -0
  472. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
  473. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +247 -0
  474. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
  475. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
  476. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +51 -0
  477. data/test/rubygems/test_gem_ext_cargo_builder.rb +166 -0
  478. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
  479. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +60 -0
  480. data/test/rubygems/test_gem_ext_cmake_builder.rb +17 -15
  481. data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
  482. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
  483. data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
  484. data/test/rubygems/test_gem_gem_runner.rb +9 -9
  485. data/test/rubygems/test_gem_gemcutter_utilities.rb +71 -65
  486. data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
  487. data/test/rubygems/test_gem_indexer.rb +90 -67
  488. data/test/rubygems/test_gem_install_update_options.rb +16 -16
  489. data/test/rubygems/test_gem_installer.rb +371 -304
  490. data/test/rubygems/test_gem_local_remote_options.rb +10 -10
  491. data/test/rubygems/test_gem_name_tuple.rb +4 -4
  492. data/test/rubygems/test_gem_package.rb +244 -234
  493. data/test/rubygems/test_gem_package_old.rb +13 -13
  494. data/test/rubygems/test_gem_package_tar_header.rb +47 -47
  495. data/test/rubygems/test_gem_package_tar_reader.rb +55 -8
  496. data/test/rubygems/test_gem_package_tar_reader_entry.rb +161 -16
  497. data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
  498. data/test/rubygems/test_gem_package_task.rb +18 -18
  499. data/test/rubygems/test_gem_path_support.rb +14 -14
  500. data/test/rubygems/test_gem_platform.rb +335 -214
  501. data/test/rubygems/test_gem_rdoc.rb +14 -14
  502. data/test/rubygems/test_gem_remote_fetcher.rb +157 -157
  503. data/test/rubygems/test_gem_request.rb +55 -55
  504. data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
  505. data/test/rubygems/test_gem_request_set.rb +100 -100
  506. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +209 -211
  507. data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
  508. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -58
  509. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
  510. data/test/rubygems/test_gem_requirement.rb +47 -41
  511. data/test/rubygems/test_gem_resolver.rb +166 -99
  512. data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
  513. data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
  514. data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
  515. data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
  516. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
  517. data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
  518. data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
  519. data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
  520. data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
  521. data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
  522. data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
  523. data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
  524. data/test/rubygems/test_gem_resolver_installer_set.rb +79 -35
  525. data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
  526. data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
  527. data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
  528. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
  529. data/test/rubygems/test_gem_resolver_specification.rb +8 -8
  530. data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
  531. data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
  532. data/test/rubygems/test_gem_security.rb +68 -68
  533. data/test/rubygems/test_gem_security_policy.rb +72 -72
  534. data/test/rubygems/test_gem_security_signer.rb +34 -34
  535. data/test/rubygems/test_gem_security_trust_dir.rb +6 -6
  536. data/test/rubygems/test_gem_silent_ui.rb +38 -32
  537. data/test/rubygems/test_gem_source.rb +44 -44
  538. data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
  539. data/test/rubygems/test_gem_source_git.rb +69 -62
  540. data/test/rubygems/test_gem_source_installed.rb +16 -16
  541. data/test/rubygems/test_gem_source_list.rb +5 -5
  542. data/test/rubygems/test_gem_source_local.rb +14 -14
  543. data/test/rubygems/test_gem_source_lock.rb +31 -31
  544. data/test/rubygems/test_gem_source_specific_file.rb +17 -17
  545. data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
  546. data/test/rubygems/test_gem_source_vendor.rb +13 -13
  547. data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
  548. data/test/rubygems/test_gem_specification.rb +539 -474
  549. data/test/rubygems/test_gem_stream_ui.rb +19 -19
  550. data/test/rubygems/test_gem_stub_specification.rb +32 -32
  551. data/test/rubygems/test_gem_text.rb +1 -1
  552. data/test/rubygems/test_gem_uninstaller.rb +113 -113
  553. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
  554. data/test/rubygems/test_gem_update_suggestion.rb +208 -0
  555. data/test/rubygems/test_gem_uri.rb +4 -4
  556. data/test/rubygems/test_gem_uri_formatter.rb +14 -14
  557. data/test/rubygems/test_gem_util.rb +23 -23
  558. data/test/rubygems/test_gem_validator.rb +8 -8
  559. data/test/rubygems/test_gem_version.rb +23 -16
  560. data/test/rubygems/test_gem_version_option.rb +15 -15
  561. data/test/rubygems/test_kernel.rb +41 -47
  562. data/test/rubygems/test_project_sanity.rb +1 -1
  563. data/test/rubygems/test_remote_fetch_error.rb +6 -6
  564. data/test/rubygems/test_require.rb +129 -119
  565. data/test/rubygems/test_rubygems.rb +19 -16
  566. data/test/rubygems/utilities.rb +55 -33
  567. data/test/rubygems/wrong_key_cert.pem +15 -15
  568. data/test/rubygems/wrong_key_cert_32.pem +15 -15
  569. data/test/test_changelog_generator.rb +1 -0
  570. metadata +67 -35
  571. data/bundler/lib/bundler/dep_proxy.rb +0 -55
  572. data/bundler/lib/bundler/templates/gems.rb +0 -5
  573. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  574. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  575. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  576. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  577. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  578. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  579. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  580. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  581. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  582. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  583. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  584. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  585. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  586. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  587. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
  588. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  589. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  590. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  591. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  592. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  593. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  594. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  595. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  596. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  597. data/bundler/lib/bundler/version_ranges.rb +0 -122
  598. data/lib/rubygems/psych_additions.rb +0 -10
  599. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  600. /data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
data/CONTRIBUTING.md CHANGED
@@ -29,9 +29,22 @@ 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
 
@@ -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
@@ -57,7 +57,6 @@ bundler/lib/bundler/compact_index_client/updater.rb
57
57
  bundler/lib/bundler/constants.rb
58
58
  bundler/lib/bundler/current_ruby.rb
59
59
  bundler/lib/bundler/definition.rb
60
- bundler/lib/bundler/dep_proxy.rb
61
60
  bundler/lib/bundler/dependency.rb
62
61
  bundler/lib/bundler/deployment.rb
63
62
  bundler/lib/bundler/deprecate.rb
@@ -74,6 +73,7 @@ bundler/lib/bundler/fetcher/compact_index.rb
74
73
  bundler/lib/bundler/fetcher/dependency.rb
75
74
  bundler/lib/bundler/fetcher/downloader.rb
76
75
  bundler/lib/bundler/fetcher/index.rb
76
+ bundler/lib/bundler/force_platform.rb
77
77
  bundler/lib/bundler/friendly_errors.rb
78
78
  bundler/lib/bundler/gem_helper.rb
79
79
  bundler/lib/bundler/gem_helpers.rb
@@ -103,12 +103,16 @@ bundler/lib/bundler/man/bundle-clean.1
103
103
  bundler/lib/bundler/man/bundle-clean.1.ronn
104
104
  bundler/lib/bundler/man/bundle-config.1
105
105
  bundler/lib/bundler/man/bundle-config.1.ronn
106
+ bundler/lib/bundler/man/bundle-console.1
107
+ bundler/lib/bundler/man/bundle-console.1.ronn
106
108
  bundler/lib/bundler/man/bundle-doctor.1
107
109
  bundler/lib/bundler/man/bundle-doctor.1.ronn
108
110
  bundler/lib/bundler/man/bundle-exec.1
109
111
  bundler/lib/bundler/man/bundle-exec.1.ronn
110
112
  bundler/lib/bundler/man/bundle-gem.1
111
113
  bundler/lib/bundler/man/bundle-gem.1.ronn
114
+ bundler/lib/bundler/man/bundle-help.1
115
+ bundler/lib/bundler/man/bundle-help.1.ronn
112
116
  bundler/lib/bundler/man/bundle-info.1
113
117
  bundler/lib/bundler/man/bundle-info.1.ronn
114
118
  bundler/lib/bundler/man/bundle-init.1
@@ -127,6 +131,8 @@ bundler/lib/bundler/man/bundle-outdated.1
127
131
  bundler/lib/bundler/man/bundle-outdated.1.ronn
128
132
  bundler/lib/bundler/man/bundle-platform.1
129
133
  bundler/lib/bundler/man/bundle-platform.1.ronn
134
+ bundler/lib/bundler/man/bundle-plugin.1
135
+ bundler/lib/bundler/man/bundle-plugin.1.ronn
130
136
  bundler/lib/bundler/man/bundle-pristine.1
131
137
  bundler/lib/bundler/man/bundle-pristine.1.ronn
132
138
  bundler/lib/bundler/man/bundle-remove.1
@@ -135,6 +141,8 @@ bundler/lib/bundler/man/bundle-show.1
135
141
  bundler/lib/bundler/man/bundle-show.1.ronn
136
142
  bundler/lib/bundler/man/bundle-update.1
137
143
  bundler/lib/bundler/man/bundle-update.1.ronn
144
+ bundler/lib/bundler/man/bundle-version.1
145
+ bundler/lib/bundler/man/bundle-version.1.ronn
138
146
  bundler/lib/bundler/man/bundle-viz.1
139
147
  bundler/lib/bundler/man/bundle-viz.1.ronn
140
148
  bundler/lib/bundler/man/bundle.1
@@ -142,7 +150,9 @@ bundler/lib/bundler/man/bundle.1.ronn
142
150
  bundler/lib/bundler/man/gemfile.5
143
151
  bundler/lib/bundler/man/gemfile.5.ronn
144
152
  bundler/lib/bundler/man/index.txt
153
+ bundler/lib/bundler/match_metadata.rb
145
154
  bundler/lib/bundler/match_platform.rb
155
+ bundler/lib/bundler/match_remote_metadata.rb
146
156
  bundler/lib/bundler/mirror.rb
147
157
  bundler/lib/bundler/plugin.rb
148
158
  bundler/lib/bundler/plugin/api.rb
@@ -157,6 +167,11 @@ bundler/lib/bundler/plugin/source_list.rb
157
167
  bundler/lib/bundler/process_lock.rb
158
168
  bundler/lib/bundler/remote_specification.rb
159
169
  bundler/lib/bundler/resolver.rb
170
+ bundler/lib/bundler/resolver/base.rb
171
+ bundler/lib/bundler/resolver/candidate.rb
172
+ bundler/lib/bundler/resolver/incompatibility.rb
173
+ bundler/lib/bundler/resolver/package.rb
174
+ bundler/lib/bundler/resolver/root.rb
160
175
  bundler/lib/bundler/resolver/spec_group.rb
161
176
  bundler/lib/bundler/retry.rb
162
177
  bundler/lib/bundler/ruby_dsl.rb
@@ -190,9 +205,9 @@ bundler/lib/bundler/templates/Executable
190
205
  bundler/lib/bundler/templates/Executable.bundler
191
206
  bundler/lib/bundler/templates/Executable.standalone
192
207
  bundler/lib/bundler/templates/Gemfile
193
- bundler/lib/bundler/templates/gems.rb
194
208
  bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt
195
209
  bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
210
+ bundler/lib/bundler/templates/newgem/Cargo.toml.tt
196
211
  bundler/lib/bundler/templates/newgem/Gemfile.tt
197
212
  bundler/lib/bundler/templates/newgem/LICENSE.txt.tt
198
213
  bundler/lib/bundler/templates/newgem/README.md.tt
@@ -201,9 +216,12 @@ bundler/lib/bundler/templates/newgem/bin/console.tt
201
216
  bundler/lib/bundler/templates/newgem/bin/setup.tt
202
217
  bundler/lib/bundler/templates/newgem/circleci/config.yml.tt
203
218
  bundler/lib/bundler/templates/newgem/exe/newgem.tt
204
- bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt
219
+ bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt
220
+ bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt
221
+ bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt
205
222
  bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt
206
223
  bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt
224
+ bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt
207
225
  bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt
208
226
  bundler/lib/bundler/templates/newgem/gitignore.tt
209
227
  bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt
@@ -220,7 +238,6 @@ bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt
220
238
  bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
221
239
  bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt
222
240
  bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt
223
- bundler/lib/bundler/templates/newgem/travis.yml.tt
224
241
  bundler/lib/bundler/ui.rb
225
242
  bundler/lib/bundler/ui/rg_proxy.rb
226
243
  bundler/lib/bundler/ui/shell.rb
@@ -234,32 +251,28 @@ bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
234
251
  bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb
235
252
  bundler/lib/bundler/vendor/fileutils/LICENSE.txt
236
253
  bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb
237
- bundler/lib/bundler/vendor/molinillo/LICENSE
238
- bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb
239
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
240
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
241
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb
242
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb
243
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb
244
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
245
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb
246
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb
247
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb
248
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb
249
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb
250
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb
251
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb
252
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb
253
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb
254
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
255
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
256
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
257
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb
258
254
  bundler/lib/bundler/vendor/net-http-persistent/README.rdoc
259
255
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
260
256
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
261
257
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
262
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
263
276
  bundler/lib/bundler/vendor/thor/LICENSE.md
264
277
  bundler/lib/bundler/vendor/thor/lib/thor.rb
265
278
  bundler/lib/bundler/vendor/thor/lib/thor/actions.rb
@@ -292,7 +305,6 @@ bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb
292
305
  bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb
293
306
  bundler/lib/bundler/vendor/thor/lib/thor/util.rb
294
307
  bundler/lib/bundler/vendor/thor/lib/thor/version.rb
295
- bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb
296
308
  bundler/lib/bundler/vendor/tsort/LICENSE.txt
297
309
  bundler/lib/bundler/vendor/tsort/lib/tsort.rb
298
310
  bundler/lib/bundler/vendor/uri/LICENSE.txt
@@ -312,14 +324,12 @@ bundler/lib/bundler/vendor/uri/lib/uri/version.rb
312
324
  bundler/lib/bundler/vendor/uri/lib/uri/ws.rb
313
325
  bundler/lib/bundler/vendor/uri/lib/uri/wss.rb
314
326
  bundler/lib/bundler/vendored_fileutils.rb
315
- bundler/lib/bundler/vendored_molinillo.rb
316
327
  bundler/lib/bundler/vendored_persistent.rb
328
+ bundler/lib/bundler/vendored_pub_grub.rb
317
329
  bundler/lib/bundler/vendored_thor.rb
318
- bundler/lib/bundler/vendored_tmpdir.rb
319
330
  bundler/lib/bundler/vendored_tsort.rb
320
331
  bundler/lib/bundler/vendored_uri.rb
321
332
  bundler/lib/bundler/version.rb
322
- bundler/lib/bundler/version_ranges.rb
323
333
  bundler/lib/bundler/vlad.rb
324
334
  bundler/lib/bundler/worker.rb
325
335
  bundler/lib/bundler/yaml_serializer.rb
@@ -337,6 +347,7 @@ lib/rubygems/commands/cleanup_command.rb
337
347
  lib/rubygems/commands/contents_command.rb
338
348
  lib/rubygems/commands/dependency_command.rb
339
349
  lib/rubygems/commands/environment_command.rb
350
+ lib/rubygems/commands/exec_command.rb
340
351
  lib/rubygems/commands/fetch_command.rb
341
352
  lib/rubygems/commands/generate_index_command.rb
342
353
  lib/rubygems/commands/help_command.rb
@@ -382,6 +393,8 @@ lib/rubygems/exceptions.rb
382
393
  lib/rubygems/ext.rb
383
394
  lib/rubygems/ext/build_error.rb
384
395
  lib/rubygems/ext/builder.rb
396
+ lib/rubygems/ext/cargo_builder.rb
397
+ lib/rubygems/ext/cargo_builder/link_flag_converter.rb
385
398
  lib/rubygems/ext/cmake_builder.rb
386
399
  lib/rubygems/ext/configure_builder.rb
387
400
  lib/rubygems/ext/ext_conf_builder.rb
@@ -423,7 +436,6 @@ lib/rubygems/package/tar_writer.rb
423
436
  lib/rubygems/package_task.rb
424
437
  lib/rubygems/path_support.rb
425
438
  lib/rubygems/platform.rb
426
- lib/rubygems/psych_additions.rb
427
439
  lib/rubygems/psych_tree.rb
428
440
  lib/rubygems/query_utils.rb
429
441
  lib/rubygems/rdoc.rb
@@ -517,6 +529,7 @@ lib/rubygems/tsort/LICENSE.txt
517
529
  lib/rubygems/tsort/lib/tsort.rb
518
530
  lib/rubygems/uninstaller.rb
519
531
  lib/rubygems/unknown_command_spell_checker.rb
532
+ lib/rubygems/update_suggestion.rb
520
533
  lib/rubygems/uri.rb
521
534
  lib/rubygems/uri_formatter.rb
522
535
  lib/rubygems/user_interaction.rb
@@ -532,16 +545,18 @@ test/rubygems/alternate_cert.pem
532
545
  test/rubygems/alternate_cert_32.pem
533
546
  test/rubygems/alternate_key.pem
534
547
  test/rubygems/bad_rake.rb
548
+ test/rubygems/bundler_test_gem.rb
535
549
  test/rubygems/ca_cert.pem
536
550
  test/rubygems/child_cert.pem
537
551
  test/rubygems/child_cert_32.pem
538
552
  test/rubygems/child_key.pem
539
553
  test/rubygems/client.pem
554
+ test/rubygems/data/excon-0.7.7.gemspec.rz
540
555
  test/rubygems/data/gem-private_key.pem
541
556
  test/rubygems/data/gem-public_cert.pem
542
557
  test/rubygems/data/null-required-ruby-version.gemspec.rz
543
558
  test/rubygems/data/null-required-rubygems-version.gemspec.rz
544
- test/rubygems/data/null-type.gemspec.rz
559
+ test/rubygems/data/pry-0.4.7.gemspec.rz
545
560
  test/rubygems/encrypted_private_key.pem
546
561
  test/rubygems/expired_cert.pem
547
562
  test/rubygems/fake_certlib/openssl.rb
@@ -564,6 +579,7 @@ test/rubygems/invalidchild_cert.pem
564
579
  test/rubygems/invalidchild_cert_32.pem
565
580
  test/rubygems/invalidchild_key.pem
566
581
  test/rubygems/package/tar_test_case.rb
582
+ test/rubygems/packages/Bluebie-legs-0.6.2.gem
567
583
  test/rubygems/packages/ascii_binder-0.1.10.1.gem
568
584
  test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem
569
585
  test/rubygems/plugin/exception/rubygems_plugin.rb
@@ -601,6 +617,7 @@ test/rubygems/test_gem_commands_cleanup_command.rb
601
617
  test/rubygems/test_gem_commands_contents_command.rb
602
618
  test/rubygems/test_gem_commands_dependency_command.rb
603
619
  test/rubygems/test_gem_commands_environment_command.rb
620
+ test/rubygems/test_gem_commands_exec_command.rb
604
621
  test/rubygems/test_gem_commands_fetch_command.rb
605
622
  test/rubygems/test_gem_commands_generate_index_command.rb
606
623
  test/rubygems/test_gem_commands_help_command.rb
@@ -635,6 +652,20 @@ test/rubygems/test_gem_dependency_list.rb
635
652
  test/rubygems/test_gem_dependency_resolution_error.rb
636
653
  test/rubygems/test_gem_doctor.rb
637
654
  test/rubygems/test_gem_ext_builder.rb
655
+ test/rubygems/test_gem_ext_cargo_builder.rb
656
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore
657
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec
658
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock
659
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml
660
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs
661
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb
662
+ test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore
663
+ test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock
664
+ test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml
665
+ test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec
666
+ test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs
667
+ test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb
668
+ test/rubygems/test_gem_ext_cargo_builder_unit.rb
638
669
  test/rubygems/test_gem_ext_cmake_builder.rb
639
670
  test/rubygems/test_gem_ext_configure_builder.rb
640
671
  test/rubygems/test_gem_ext_ext_conf_builder.rb
@@ -709,6 +740,7 @@ test/rubygems/test_gem_stub_specification.rb
709
740
  test/rubygems/test_gem_text.rb
710
741
  test/rubygems/test_gem_uninstaller.rb
711
742
  test/rubygems/test_gem_unsatisfiable_dependency_error.rb
743
+ test/rubygems/test_gem_update_suggestion.rb
712
744
  test/rubygems/test_gem_uri.rb
713
745
  test/rubygems/test_gem_uri_formatter.rb
714
746
  test/rubygems/test_gem_util.rb
data/POLICIES.md CHANGED
@@ -42,8 +42,19 @@ at version 2.7, so when RubyGems 2.8 is released, it will only support Ruby
42
42
 
43
43
  ## Release Process
44
44
 
45
- Releases of new versions should follow these steps, to ensure the process is
46
- smooth and no needed steps are missed.
45
+ ### Permissions
46
+
47
+ You'll need the following environment variables set to release RubyGems &
48
+ Bundler:
49
+
50
+ * AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY: to be able to push RubyGems zip
51
+ files to s3 so that they appear at RubyGems [download page].
52
+
53
+ * GITHUB_RELEASE_PAT: A [GitHub PAT] with repo permissions, in order to push
54
+ GitHub releases and to use the GitHub API for changelog generation.
55
+
56
+ [download page]: https://rubygems.org/pages/download
57
+ [GitHub PAT]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
47
58
 
48
59
  ### Recommendations for security releases
49
60
 
@@ -54,14 +65,36 @@ smooth and no needed steps are missed.
54
65
  have to work on weekends.
55
66
  * Continue with the regular release process below.
56
67
 
68
+ ### Automatic changelog and backport generation
69
+
70
+ PR labels and titles are used to automatically generate changelogs for patch and
71
+ minor releases.
72
+
73
+ When releasing, a changelog generation script goes through all PRs that have
74
+ never made it into a release, and selects only the ones with specific labels as
75
+ detailed in the `.changelog.yml` and `bundler/.changelog.yml` files. Those
76
+ particular PRs get backported to the stable branch and included in the release
77
+ changelog.
78
+
79
+ If PRs don't have a proper label, they won't be backported to patch releases.
80
+
81
+ If you want a PR to be backported to a patch level release, but don't want to
82
+ include it in the changelog, you can use the special `rubygems: backport` and
83
+ `bundler: backport` labels. For example, this is useful when backporting a PR
84
+ generates conflicts that are solved by backporting another PR with no user
85
+ visible changes. You can use these special labels to also backport the other PR
86
+ and not get any conflicts.
57
87
 
58
88
  ### Steps for patch releases
59
89
 
60
90
  * Confirm all PRs that you want backported are properly tagged with `rubygems:
61
91
  <type>` or `bundler: <type>` labels at GitHub.
62
- * Run `rake prepare_release[<target_version>]`, create a PR and merge it
63
- to the stable branch once CI passes.
64
- * Switch to the stable branch and pull the PR just merged.
92
+ * Run `rake prepare_release[<target_version>]`. This will create a PR to the
93
+ stable branch with the backports included in the release, and proper
94
+ changelogs and version bumps. It will also create a PR to merge release
95
+ changelogs into master.
96
+ * Once CI passes, merge the release PR, switch to the stable branch and pull
97
+ the PR just merged.
65
98
  * Release `bundler` with `(cd bundler && bin/rake release)`.
66
99
  * Release `rubygems` with `rake release`.
67
100
 
@@ -69,14 +102,16 @@ smooth and no needed steps are missed.
69
102
 
70
103
  * Confirm all PRs that you want listed in changelogs are properly tagged with
71
104
  `rubygems: <type>` or `bundler: <type>` labels at GitHub.
72
- * Run `rake prepare_release[<target_version>]`.
73
- * Add the new stable branch `x.y` where `x.y` are the first two components of
74
- the rubygems version being released to the CI workflows as an extra commit
75
- on top of what the `prepare_release` task generated.
76
- * Create a PR to the main branch, and merge it once CI passes.
77
- * From the main branch, cut a new stable branch with `git pull && git checkout
78
- -b x.y`.
79
- * 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.
80
115
  * Release `bundler` with `(cd bundler && bin/rake release)`.
81
116
  * Release `rubygems` with `rake release`.
82
117
 
@@ -93,8 +128,8 @@ permissions compromised or exposed.
93
128
 
94
129
  ## Changing These Policies
95
130
 
96
- These policies were set in order to reduce the burden of maintenance and to
97
- keep committers current with existing development and policies. RubyGems work
98
- is primarily volunteer-driven which limits the ability to provide long-term
99
- support. By joining [Ruby Together](https://rubytogether.org) you can help
100
- 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
@@ -79,23 +79,20 @@ creating a new gem, security practices and other resources at https://guides.rub
79
79
  Got a bug and you're not sure? You're sure you have a bug, but don't know
80
80
  what to do next? In any case, let us know about it! The best place
81
81
  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).
82
+ [on the RubyGems issues page at GitHub](https://github.com/rubygems/rubygems/issues).
83
83
 
84
84
  ### Bundler Compatibility
85
85
 
86
- See http://bundler.io/compatibility for known issues.
86
+ See https://bundler.io/compatibility for known issues.
87
87
 
88
88
  ### Supporting
89
89
 
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.
90
+ 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
91
 
93
92
  ### Contributing
94
93
 
95
94
  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
95
 
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
96
  ### Code of Conduct
100
97
 
101
98
  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).
data/bin/gem CHANGED
@@ -5,9 +5,6 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require 'rubygems'
9
- require 'rubygems/gem_runner'
8
+ require "rubygems/gem_runner"
10
9
 
11
- args = ARGV.clone
12
-
13
- Gem::GemRunner.new.run args
10
+ Gem::GemRunner.new.run ARGV.clone
data/bin/update_rubygems CHANGED
@@ -5,9 +5,9 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require 'rubygems'
8
+ require "rubygems"
9
9
 
10
- if ARGV.include? '-h' or ARGV.include? '--help'
10
+ if ARGV.include?("-h") || ARGV.include?("--help")
11
11
  $stderr.puts "rubygems_update [options]"
12
12
  $stderr.puts
13
13
  $stderr.puts "This will install the latest version of RubyGems."
@@ -17,10 +17,10 @@ if ARGV.include? '-h' or ARGV.include? '--help'
17
17
  end
18
18
 
19
19
  unless ARGV.grep(/--version=([\d\.]*)/).empty?
20
- exec Gem.ruby, '-S', $PROGRAM_NAME, "_#{$1}_"
20
+ exec Gem.ruby, "-S", $PROGRAM_NAME, "_#{$1}_"
21
21
  end
22
22
 
23
- update_dir = $LOAD_PATH.find {|dir| dir =~ /rubygems-update/ }
23
+ update_dir = $LOAD_PATH.find {|dir| dir.include?("rubygems-update") }
24
24
 
25
25
  if update_dir.nil?
26
26
  puts "Error: Cannot find RubyGems update path!"
@@ -32,5 +32,5 @@ else
32
32
  update_dir = File.dirname(update_dir)
33
33
  Dir.chdir update_dir
34
34
  ENV["GEM_PREV_VER"] = Gem::VERSION
35
- abort unless system(Gem.ruby, 'setup.rb', *ARGV)
35
+ abort unless system(Gem.ruby, "setup.rb", *ARGV)
36
36
  end