rubygems-update 3.3.26 → 3.4.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (292) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1178 -1088
  3. data/CONTRIBUTING.md +30 -7
  4. data/Manifest.txt +35 -32
  5. data/POLICIES.md +10 -8
  6. data/README.md +2 -2
  7. data/bin/gem +1 -4
  8. data/bin/update_rubygems +1 -1
  9. data/bundler/CHANGELOG.md +122 -1
  10. data/bundler/README.md +2 -2
  11. data/bundler/UPGRADING.md +1 -1
  12. data/bundler/bundler.gemspec +2 -2
  13. data/bundler/exe/bundle +1 -4
  14. data/bundler/lib/bundler/build_metadata.rb +2 -2
  15. data/bundler/lib/bundler/cli/add.rb +1 -1
  16. data/bundler/lib/bundler/cli/binstubs.rb +5 -1
  17. data/bundler/lib/bundler/cli/check.rb +1 -1
  18. data/bundler/lib/bundler/cli/common.rb +1 -0
  19. data/bundler/lib/bundler/cli/console.rb +2 -2
  20. data/bundler/lib/bundler/cli/doctor.rb +4 -6
  21. data/bundler/lib/bundler/cli/gem.rb +62 -40
  22. data/bundler/lib/bundler/cli/install.rb +2 -3
  23. data/bundler/lib/bundler/cli/lock.rb +8 -5
  24. data/bundler/lib/bundler/cli/open.rb +6 -4
  25. data/bundler/lib/bundler/cli/outdated.rb +1 -3
  26. data/bundler/lib/bundler/cli/viz.rb +1 -1
  27. data/bundler/lib/bundler/cli.rb +44 -2
  28. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  29. data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
  30. data/bundler/lib/bundler/constants.rb +1 -1
  31. data/bundler/lib/bundler/definition.rb +87 -51
  32. data/bundler/lib/bundler/dependency.rb +12 -11
  33. data/bundler/lib/bundler/digest.rb +1 -1
  34. data/bundler/lib/bundler/dsl.rb +3 -3
  35. data/bundler/lib/bundler/env.rb +1 -1
  36. data/bundler/lib/bundler/environment_preserver.rb +1 -0
  37. data/bundler/lib/bundler/errors.rb +1 -11
  38. data/bundler/lib/bundler/fetcher/compact_index.rb +9 -11
  39. data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
  40. data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
  41. data/bundler/lib/bundler/fetcher.rb +2 -6
  42. data/bundler/lib/bundler/force_platform.rb +18 -0
  43. data/bundler/lib/bundler/friendly_errors.rb +0 -3
  44. data/bundler/lib/bundler/gem_version_promoter.rb +52 -86
  45. data/bundler/lib/bundler/graph.rb +3 -3
  46. data/bundler/lib/bundler/index.rb +5 -13
  47. data/bundler/lib/bundler/injector.rb +1 -1
  48. data/bundler/lib/bundler/inline.rb +8 -10
  49. data/bundler/lib/bundler/installer/parallel_installer.rb +0 -31
  50. data/bundler/lib/bundler/installer/standalone.rb +11 -7
  51. data/bundler/lib/bundler/installer.rb +9 -23
  52. data/bundler/lib/bundler/lazy_specification.rb +37 -33
  53. data/bundler/lib/bundler/lockfile_parser.rb +5 -5
  54. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  55. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  56. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  57. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  58. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  59. data/bundler/lib/bundler/man/bundle-config.1 +2 -2
  60. data/bundler/lib/bundler/man/bundle-config.1.ronn +1 -1
  61. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  62. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  63. data/bundler/lib/bundler/man/bundle-exec.1 +5 -5
  64. data/bundler/lib/bundler/man/bundle-exec.1.ronn +5 -5
  65. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  66. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  67. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  68. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  69. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  70. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  71. data/bundler/lib/bundler/man/bundle-install.1 +1 -30
  72. data/bundler/lib/bundler/man/bundle-install.1.ronn +0 -29
  73. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  74. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  75. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  76. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  77. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  78. data/bundler/lib/bundler/man/bundle-platform.1 +2 -2
  79. data/bundler/lib/bundler/man/bundle-platform.1.ronn +1 -1
  80. data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
  81. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  82. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  83. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  84. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  85. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  86. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  87. data/bundler/lib/bundler/man/bundle.1 +1 -1
  88. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  89. data/bundler/lib/bundler/mirror.rb +5 -7
  90. data/bundler/lib/bundler/plugin/index.rb +4 -4
  91. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
  92. data/bundler/lib/bundler/resolver/base.rb +42 -15
  93. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  94. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  95. data/bundler/lib/bundler/resolver/package.rb +72 -0
  96. data/bundler/lib/bundler/resolver/root.rb +25 -0
  97. data/bundler/lib/bundler/resolver/spec_group.rb +26 -36
  98. data/bundler/lib/bundler/resolver.rb +314 -278
  99. data/bundler/lib/bundler/rubygems_ext.rb +11 -6
  100. data/bundler/lib/bundler/rubygems_gem_installer.rb +4 -2
  101. data/bundler/lib/bundler/rubygems_integration.rb +9 -13
  102. data/bundler/lib/bundler/runtime.rb +1 -5
  103. data/bundler/lib/bundler/settings.rb +0 -6
  104. data/bundler/lib/bundler/shared_helpers.rb +1 -0
  105. data/bundler/lib/bundler/source/git/git_proxy.rb +193 -67
  106. data/bundler/lib/bundler/source/git.rb +15 -17
  107. data/bundler/lib/bundler/source/metadata.rb +0 -1
  108. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  109. data/bundler/lib/bundler/source/path.rb +5 -5
  110. data/bundler/lib/bundler/source/rubygems.rb +14 -68
  111. data/bundler/lib/bundler/source_list.rb +8 -2
  112. data/bundler/lib/bundler/spec_set.rb +7 -9
  113. data/bundler/lib/bundler/templates/Executable +1 -1
  114. data/bundler/lib/bundler/templates/Executable.bundler +4 -9
  115. data/bundler/lib/bundler/templates/Executable.standalone +2 -0
  116. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  117. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  118. data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
  119. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -1
  120. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  121. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  122. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  123. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  124. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
  125. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  126. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +8 -0
  127. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
  128. data/bundler/lib/bundler/ui/shell.rb +35 -12
  129. data/bundler/lib/bundler/ui/silent.rb +21 -5
  130. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  131. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  132. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  133. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
  134. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  135. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  136. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  137. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  138. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  139. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  140. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +151 -0
  141. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  142. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  143. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  144. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  145. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +53 -0
  146. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  147. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  148. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +128 -0
  149. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +409 -0
  150. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +240 -0
  151. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  152. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  153. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  154. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  155. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  156. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  157. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  158. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  159. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  160. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  161. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  162. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  163. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +13 -7
  164. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +10 -5
  165. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  166. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  167. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  168. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  169. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  170. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  171. data/bundler/lib/bundler/version.rb +5 -1
  172. data/bundler/lib/bundler/worker.rb +5 -7
  173. data/bundler/lib/bundler.rb +20 -64
  174. data/lib/rubygems/command.rb +5 -1
  175. data/lib/rubygems/command_manager.rb +19 -6
  176. data/lib/rubygems/commands/build_command.rb +3 -0
  177. data/lib/rubygems/commands/fetch_command.rb +1 -1
  178. data/lib/rubygems/commands/install_command.rb +7 -3
  179. data/lib/rubygems/commands/owner_command.rb +1 -1
  180. data/lib/rubygems/commands/rdoc_command.rb +3 -2
  181. data/lib/rubygems/commands/setup_command.rb +2 -2
  182. data/lib/rubygems/commands/unpack_command.rb +1 -1
  183. data/lib/rubygems/commands/update_command.rb +1 -7
  184. data/lib/rubygems/config_file.rb +33 -0
  185. data/lib/rubygems/core_ext/kernel_gem.rb +0 -5
  186. data/lib/rubygems/core_ext/kernel_require.rb +116 -113
  187. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  188. data/lib/rubygems/defaults.rb +15 -1
  189. data/lib/rubygems/dependency.rb +4 -1
  190. data/lib/rubygems/dependency_installer.rb +24 -24
  191. data/lib/rubygems/exceptions.rb +1 -3
  192. data/lib/rubygems/ext/builder.rb +4 -5
  193. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
  194. data/lib/rubygems/ext/cargo_builder.rb +144 -109
  195. data/lib/rubygems/ext/ext_conf_builder.rb +2 -0
  196. data/lib/rubygems/indexer.rb +1 -1
  197. data/lib/rubygems/installer.rb +5 -5
  198. data/lib/rubygems/optparse/lib/optparse.rb +20 -15
  199. data/lib/rubygems/package/tar_header.rb +11 -11
  200. data/lib/rubygems/platform.rb +1 -3
  201. data/lib/rubygems/request_set/gem_dependency_api.rb +104 -104
  202. data/lib/rubygems/requirement.rb +7 -7
  203. data/lib/rubygems/resolver/installer_set.rb +1 -1
  204. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  205. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  206. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  207. data/lib/rubygems/security/policies.rb +40 -40
  208. data/lib/rubygems/security/trust_dir.rb +1 -1
  209. data/lib/rubygems/security.rb +3 -16
  210. data/lib/rubygems/source.rb +2 -2
  211. data/lib/rubygems/specification.rb +37 -49
  212. data/lib/rubygems/specification_policy.rb +14 -0
  213. data/lib/rubygems/stub_specification.rb +2 -2
  214. data/lib/rubygems/text.rb +1 -1
  215. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  216. data/lib/rubygems/update_suggestion.rb +69 -0
  217. data/lib/rubygems/util.rb +1 -5
  218. data/lib/rubygems/validator.rb +1 -1
  219. data/lib/rubygems.rb +29 -9
  220. data/rubygems-update.gemspec +2 -2
  221. data/test/rubygems/bundler_test_gem.rb +419 -0
  222. data/test/rubygems/helper.rb +7 -3
  223. data/test/rubygems/test_bundled_ca.rb +1 -1
  224. data/test/rubygems/test_exit.rb +6 -0
  225. data/test/rubygems/test_gem.rb +4 -421
  226. data/test/rubygems/test_gem_bundler_version_finder.rb +2 -1
  227. data/test/rubygems/test_gem_command_manager.rb +41 -1
  228. data/test/rubygems/test_gem_commands_build_command.rb +10 -0
  229. data/test/rubygems/test_gem_commands_install_command.rb +19 -0
  230. data/test/rubygems/test_gem_commands_setup_command.rb +1 -8
  231. data/test/rubygems/test_gem_commands_update_command.rb +6 -6
  232. data/test/rubygems/test_gem_config_file.rb +1 -1
  233. data/test/rubygems/test_gem_dependency.rb +2 -0
  234. data/test/rubygems/test_gem_ext_builder.rb +3 -3
  235. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +2 -4
  236. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +22 -32
  237. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.toml → ext/custom_name_lib/Cargo.toml} +1 -1
  238. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{src → ext/custom_name_lib/src}/lib.rs +1 -1
  239. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +1 -0
  240. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +22 -32
  241. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  242. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
  243. data/test/rubygems/test_gem_ext_cargo_builder.rb +30 -42
  244. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +16 -16
  245. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +5 -20
  246. data/test/rubygems/test_gem_indexer.rb +39 -20
  247. data/test/rubygems/test_gem_installer.rb +69 -3
  248. data/test/rubygems/test_gem_package_tar_header.rb +13 -13
  249. data/test/rubygems/test_gem_platform.rb +59 -60
  250. data/test/rubygems/test_gem_remote_fetcher.rb +4 -4
  251. data/test/rubygems/test_gem_request_set.rb +2 -2
  252. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -4
  253. data/test/rubygems/test_gem_requirement.rb +1 -1
  254. data/test/rubygems/test_gem_resolver_api_set.rb +12 -12
  255. data/test/rubygems/test_gem_resolver_api_specification.rb +19 -19
  256. data/test/rubygems/test_gem_resolver_git_specification.rb +1 -1
  257. data/test/rubygems/test_gem_security_policy.rb +10 -10
  258. data/test/rubygems/test_gem_security_trust_dir.rb +2 -2
  259. data/test/rubygems/test_gem_specification.rb +50 -37
  260. data/test/rubygems/test_gem_uninstaller.rb +1 -1
  261. data/test/rubygems/test_gem_update_suggestion.rb +208 -0
  262. data/test/rubygems/test_kernel.rb +10 -8
  263. data/test/rubygems/test_require.rb +69 -55
  264. metadata +39 -36
  265. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  266. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  267. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  268. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  269. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  270. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  271. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  272. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  273. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  274. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  275. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  276. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  277. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  278. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  279. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  280. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  281. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  282. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  283. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  284. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  285. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  286. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  287. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  288. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  289. data/bundler/lib/bundler/version_ranges.rb +0 -122
  290. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
  291. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
  292. /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
@@ -73,6 +73,7 @@ bundler/lib/bundler/fetcher/compact_index.rb
73
73
  bundler/lib/bundler/fetcher/dependency.rb
74
74
  bundler/lib/bundler/fetcher/downloader.rb
75
75
  bundler/lib/bundler/fetcher/index.rb
76
+ bundler/lib/bundler/force_platform.rb
76
77
  bundler/lib/bundler/friendly_errors.rb
77
78
  bundler/lib/bundler/gem_helper.rb
78
79
  bundler/lib/bundler/gem_helpers.rb
@@ -167,6 +168,10 @@ bundler/lib/bundler/process_lock.rb
167
168
  bundler/lib/bundler/remote_specification.rb
168
169
  bundler/lib/bundler/resolver.rb
169
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
170
175
  bundler/lib/bundler/resolver/spec_group.rb
171
176
  bundler/lib/bundler/retry.rb
172
177
  bundler/lib/bundler/ruby_dsl.rb
@@ -203,6 +208,7 @@ bundler/lib/bundler/templates/Gemfile
203
208
  bundler/lib/bundler/templates/gems.rb
204
209
  bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt
205
210
  bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
211
+ bundler/lib/bundler/templates/newgem/Cargo.toml.tt
206
212
  bundler/lib/bundler/templates/newgem/Gemfile.tt
207
213
  bundler/lib/bundler/templates/newgem/LICENSE.txt.tt
208
214
  bundler/lib/bundler/templates/newgem/README.md.tt
@@ -211,9 +217,12 @@ bundler/lib/bundler/templates/newgem/bin/console.tt
211
217
  bundler/lib/bundler/templates/newgem/bin/setup.tt
212
218
  bundler/lib/bundler/templates/newgem/circleci/config.yml.tt
213
219
  bundler/lib/bundler/templates/newgem/exe/newgem.tt
214
- bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt
220
+ bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt
221
+ bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt
222
+ bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt
215
223
  bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt
216
224
  bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt
225
+ bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt
217
226
  bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt
218
227
  bundler/lib/bundler/templates/newgem/gitignore.tt
219
228
  bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt
@@ -230,7 +239,6 @@ bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt
230
239
  bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
231
240
  bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt
232
241
  bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt
233
- bundler/lib/bundler/templates/newgem/travis.yml.tt
234
242
  bundler/lib/bundler/ui.rb
235
243
  bundler/lib/bundler/ui/rg_proxy.rb
236
244
  bundler/lib/bundler/ui/shell.rb
@@ -244,32 +252,28 @@ bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
244
252
  bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb
245
253
  bundler/lib/bundler/vendor/fileutils/LICENSE.txt
246
254
  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
255
  bundler/lib/bundler/vendor/net-http-persistent/README.rdoc
269
256
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
270
257
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
271
258
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
272
259
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
260
+ bundler/lib/bundler/vendor/pub_grub/LICENSE.txt
261
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb
262
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb
263
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb
264
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb
265
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb
266
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb
267
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb
268
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
269
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb
270
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb
271
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb
272
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb
273
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb
274
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb
275
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb
276
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb
273
277
  bundler/lib/bundler/vendor/thor/LICENSE.md
274
278
  bundler/lib/bundler/vendor/thor/lib/thor.rb
275
279
  bundler/lib/bundler/vendor/thor/lib/thor/actions.rb
@@ -302,7 +306,6 @@ bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb
302
306
  bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb
303
307
  bundler/lib/bundler/vendor/thor/lib/thor/util.rb
304
308
  bundler/lib/bundler/vendor/thor/lib/thor/version.rb
305
- bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb
306
309
  bundler/lib/bundler/vendor/tsort/LICENSE.txt
307
310
  bundler/lib/bundler/vendor/tsort/lib/tsort.rb
308
311
  bundler/lib/bundler/vendor/uri/LICENSE.txt
@@ -322,14 +325,12 @@ bundler/lib/bundler/vendor/uri/lib/uri/version.rb
322
325
  bundler/lib/bundler/vendor/uri/lib/uri/ws.rb
323
326
  bundler/lib/bundler/vendor/uri/lib/uri/wss.rb
324
327
  bundler/lib/bundler/vendored_fileutils.rb
325
- bundler/lib/bundler/vendored_molinillo.rb
326
328
  bundler/lib/bundler/vendored_persistent.rb
329
+ bundler/lib/bundler/vendored_pub_grub.rb
327
330
  bundler/lib/bundler/vendored_thor.rb
328
- bundler/lib/bundler/vendored_tmpdir.rb
329
331
  bundler/lib/bundler/vendored_tsort.rb
330
332
  bundler/lib/bundler/vendored_uri.rb
331
333
  bundler/lib/bundler/version.rb
332
- bundler/lib/bundler/version_ranges.rb
333
334
  bundler/lib/bundler/vlad.rb
334
335
  bundler/lib/bundler/worker.rb
335
336
  bundler/lib/bundler/yaml_serializer.rb
@@ -528,6 +529,7 @@ lib/rubygems/tsort/LICENSE.txt
528
529
  lib/rubygems/tsort/lib/tsort.rb
529
530
  lib/rubygems/uninstaller.rb
530
531
  lib/rubygems/unknown_command_spell_checker.rb
532
+ lib/rubygems/update_suggestion.rb
531
533
  lib/rubygems/uri.rb
532
534
  lib/rubygems/uri_formatter.rb
533
535
  lib/rubygems/user_interaction.rb
@@ -543,6 +545,7 @@ test/rubygems/alternate_cert.pem
543
545
  test/rubygems/alternate_cert_32.pem
544
546
  test/rubygems/alternate_key.pem
545
547
  test/rubygems/bad_rake.rb
548
+ test/rubygems/bundler_test_gem.rb
546
549
  test/rubygems/ca_cert.pem
547
550
  test/rubygems/child_cert.pem
548
551
  test/rubygems/child_cert_32.pem
@@ -650,15 +653,14 @@ test/rubygems/test_gem_doctor.rb
650
653
  test/rubygems/test_gem_ext_builder.rb
651
654
  test/rubygems/test_gem_ext_cargo_builder.rb
652
655
  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
656
  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
657
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock
658
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml
659
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs
660
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb
658
661
  test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore
659
662
  test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock
660
663
  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
664
  test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec
663
665
  test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs
664
666
  test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb
@@ -737,6 +739,7 @@ test/rubygems/test_gem_stub_specification.rb
737
739
  test/rubygems/test_gem_text.rb
738
740
  test/rubygems/test_gem_uninstaller.rb
739
741
  test/rubygems/test_gem_unsatisfiable_dependency_error.rb
742
+ test/rubygems/test_gem_update_suggestion.rb
740
743
  test/rubygems/test_gem_uri.rb
741
744
  test/rubygems/test_gem_uri_formatter.rb
742
745
  test/rubygems/test_gem_util.rb
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
 
data/README.md CHANGED
@@ -79,11 +79,11 @@ 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
 
data/bin/gem CHANGED
@@ -5,9 +5,6 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require "rubygems"
9
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
@@ -20,7 +20,7 @@ unless ARGV.grep(/--version=([\d\.]*)/).empty?
20
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!"
data/bundler/CHANGELOG.md CHANGED
@@ -1,3 +1,124 @@
1
+ # 2.4.6 (January 31, 2023)
2
+
3
+ ## Enhancements:
4
+
5
+ - Don't warn on `bundle binstubs --standalone --all` [#6312](https://github.com/rubygems/rubygems/pull/6312)
6
+
7
+ ## Bug fixes:
8
+
9
+ - Don't undo require decorations made by other gems [#6308](https://github.com/rubygems/rubygems/pull/6308)
10
+ - Fix `bundler/inline` not properly installing gems with extensions when used more than once [#6306](https://github.com/rubygems/rubygems/pull/6306)
11
+ - Fix `bundler/inline` not skipping installation when gems already there, when used more than once [#6305](https://github.com/rubygems/rubygems/pull/6305)
12
+
13
+ # 2.4.5 (January 21, 2023)
14
+
15
+ ## Bug fixes:
16
+
17
+ - Fix `bundler/inline` not resolving properly if gems not preinstalled [#6282](https://github.com/rubygems/rubygems/pull/6282)
18
+ - Fix packages for external platforms being introduced in lockfile when Bundler retries resolution [#6285](https://github.com/rubygems/rubygems/pull/6285)
19
+
20
+ ## Documentation:
21
+
22
+ - Update bundle-exec man page to not use deprecated `Bundler.with_clean_env` [#6284](https://github.com/rubygems/rubygems/pull/6284)
23
+
24
+ # 2.4.4 (January 16, 2023)
25
+
26
+ ## Bug fixes:
27
+
28
+ - Fix platform specific gems removed from the lockfile [#6266](https://github.com/rubygems/rubygems/pull/6266)
29
+ - Properly handle incompatibilities on platform specific gems [#6270](https://github.com/rubygems/rubygems/pull/6270)
30
+ - Optimistically exclude prereleases from initial resolution [#6246](https://github.com/rubygems/rubygems/pull/6246)
31
+ - Fix another case of not properly falling back to ruby variant when materializing [#6261](https://github.com/rubygems/rubygems/pull/6261)
32
+ - Skip setting `BUNDLER_SETUP` on Ruby 2.6 [#6252](https://github.com/rubygems/rubygems/pull/6252)
33
+ - Let resolver deal with legacy gems with equivalent version and different dependencies [#6219](https://github.com/rubygems/rubygems/pull/6219)
34
+
35
+ # 2.4.3 (January 6, 2023)
36
+
37
+ ## Enhancements:
38
+
39
+ - Enhance `bundle open` command to allow opening subdir/file of gem [#6146](https://github.com/rubygems/rubygems/pull/6146)
40
+
41
+ ## Bug fixes:
42
+
43
+ - Fix pointing GitHub sources to PRs [#6241](https://github.com/rubygems/rubygems/pull/6241)
44
+ - Fix version ranges incorrectly handling platforms [#6240](https://github.com/rubygems/rubygems/pull/6240)
45
+ - Cleanup unnecessary gems when removing lockfile platforms [#6234](https://github.com/rubygems/rubygems/pull/6234)
46
+ - When auto-removing RUBY platform don't add specific platform if not needed [#6233](https://github.com/rubygems/rubygems/pull/6233)
47
+ - Fallback to selecting installable candidates if possible when materializing specs [#6225](https://github.com/rubygems/rubygems/pull/6225)
48
+
49
+ ## Documentation:
50
+
51
+ - Fix several typos [#6224](https://github.com/rubygems/rubygems/pull/6224)
52
+
53
+ # 2.4.2 (January 1, 2023)
54
+
55
+ ## Performance:
56
+
57
+ - Speed up resolution by properly merging incompatibility ranges [#6215](https://github.com/rubygems/rubygems/pull/6215)
58
+
59
+ ## Documentation:
60
+
61
+ - Remove stray word in `bundle config` man page [#6220](https://github.com/rubygems/rubygems/pull/6220)
62
+
63
+ # 2.4.1 (December 24, 2022)
64
+
65
+ ## Enhancements:
66
+
67
+ - Allow Bundler to run on old RubyGems + Ruby 2.7 without warnings [#6187](https://github.com/rubygems/rubygems/pull/6187)
68
+
69
+ ## Bug fixes:
70
+
71
+ - Fix dependencies scoped to other platforms making resolver fail [#6189](https://github.com/rubygems/rubygems/pull/6189)
72
+ - Restore annotated git tag support [#6186](https://github.com/rubygems/rubygems/pull/6186)
73
+
74
+ # 2.4.0 (December 24, 2022)
75
+
76
+ ## Security:
77
+
78
+ - In README generated by `bundle gem`, do not fill rubygems.org install commands with the gem name automatically [#6093](https://github.com/rubygems/rubygems/pull/6093)
79
+ - Use safe Marshal deserialization for dependency API response [#6141](https://github.com/rubygems/rubygems/pull/6141)
80
+
81
+ ## Breaking changes:
82
+
83
+ - Remove Travis CI from gem skeleton [#6150](https://github.com/rubygems/rubygems/pull/6150)
84
+ - Drop support for Ruby 2.3, 2.4, 2.5 and RubyGems 2.5, 2.6, 2.7 [#6107](https://github.com/rubygems/rubygems/pull/6107)
85
+ - Completely remove "auto-sudo" feature [#5888](https://github.com/rubygems/rubygems/pull/5888)
86
+
87
+ ## Deprecations:
88
+
89
+ - Turn `--ext` option of `bundle gem` into string. Deprecate usage without explicit value [#6144](https://github.com/rubygems/rubygems/pull/6144)
90
+
91
+ ## Features:
92
+
93
+ - Add `--ext=rust` support to `bundle gem` for creating simple gems with Rust extensions [#6149](https://github.com/rubygems/rubygems/pull/6149)
94
+ - Migrate our resolver engine to PubGrub [#5960](https://github.com/rubygems/rubygems/pull/5960)
95
+
96
+ ## Performance:
97
+
98
+ - Make cloning git repos faster [#4475](https://github.com/rubygems/rubygems/pull/4475)
99
+
100
+ ## Enhancements:
101
+
102
+ - Add `bundle lock --update --bundler` [#6134](https://github.com/rubygems/rubygems/pull/6134)
103
+ - Support for pre flag in `bundle update`/`bundle lock` [#5258](https://github.com/rubygems/rubygems/pull/5258)
104
+ - Improve error message when changing Gemfile to a mistyped git ref [#6130](https://github.com/rubygems/rubygems/pull/6130)
105
+ - Remove special handling of some `LoadError` and `NoMethodError` [#6115](https://github.com/rubygems/rubygems/pull/6115)
106
+
107
+ ## Bug fixes:
108
+
109
+ - Don't unlock dependencies of a gemspec when its version changes [#6184](https://github.com/rubygems/rubygems/pull/6184)
110
+ - Fix platform specific version for libv8-node and other allowlisted gems not being chosen in Truffleruby [#6169](https://github.com/rubygems/rubygems/pull/6169)
111
+ - Fix `bundle outdated` with both `--groups` and `--parseable` flags [#6148](https://github.com/rubygems/rubygems/pull/6148)
112
+ - Auto-heal lockfile when it's missing specs [#6132](https://github.com/rubygems/rubygems/pull/6132)
113
+ - Fix unintentional downgrades when gemspec DSL is used [#6131](https://github.com/rubygems/rubygems/pull/6131)
114
+ - Fix display of previous gem version when previously downloaded already [#6110](https://github.com/rubygems/rubygems/pull/6110)
115
+ - Fix hang when a lockfile gem does not resolve on the current platform [#6070](https://github.com/rubygems/rubygems/pull/6070)
116
+
117
+ ## Documentation:
118
+
119
+ - Improve Bundler setup docs for development [#6154](https://github.com/rubygems/rubygems/pull/6154)
120
+ - Fx link in bundle-platform man page [#6071](https://github.com/rubygems/rubygems/pull/6071)
121
+
1
122
  # 2.3.26 (November 16, 2022)
2
123
 
3
124
  ## Enhancements:
@@ -1449,7 +1570,7 @@ Changes
1449
1570
 
1450
1571
  - avoid new RubyGems warning about unsafe YAML loading (to keep output consistent) (@segiddins)
1451
1572
  - load digest subclasses in a thread-safe manner (@segiddins, @colby-swandale)
1452
- - avoid unusued variable warnings under ruby 2.5 (@amatsuda)
1573
+ - avoid unused variable warnings under ruby 2.5 (@amatsuda)
1453
1574
  - fix printing the same message twice in verbose mode ([#6028](https://github.com/rubygems/bundler/issues/6028), @akhramov)
1454
1575
  - allow `SignalException`s to bubble up to the interpreter during `bundle exec` ([#6090](https://github.com/rubygems/bundler/issues/6090), @dekellum)
1455
1576
  - avoid activating stdlib digest under Ruby 2.5 (@segiddins)
data/bundler/README.md CHANGED
@@ -38,13 +38,13 @@ Still stuck? Try [filing an issue](https://github.com/rubygems/rubygems/issues/n
38
38
 
39
39
  To see what has changed in recent versions of Bundler, see the [CHANGELOG](CHANGELOG.md).
40
40
 
41
- To get in touch with the Bundler core team and other Bundler users, please see [getting help](doc/contributing/GETTING_HELP.md).
41
+ To get in touch with the Bundler core team and other Bundler users, please join [the Bundler slack](https://slack.bundler.io).
42
42
 
43
43
  ### Contributing
44
44
 
45
45
  If you'd like to contribute to Bundler, that's awesome, and we <3 you. We've put together [the Bundler contributor guide](https://github.com/rubygems/rubygems/blob/master/bundler/doc/contributing/README.md) with all of the information you need to get started.
46
46
 
47
- If you'd like to request a substantial change to Bundler or its documentation, refer to the [Bundler RFC process](https://github.com/bundler/rfcs) for more information.
47
+ If you'd like to request a substantial change to Bundler or its documentation, refer to the [Bundler RFC process](https://github.com/rubygems/rfcs) for more information.
48
48
 
49
49
  While some Bundler 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.
50
50
 
data/bundler/UPGRADING.md CHANGED
@@ -103,7 +103,7 @@ in the upcoming 3 version.
103
103
 
104
104
  #### Cancelled CLI deprecations
105
105
 
106
- These deprecations have been initally announced before, but the deprecations
106
+ These deprecations have been initially announced before, but the deprecations
107
107
  were cancelled before the release of Bundler 2.1.0 in [rubygems/bundler#7475](https://github.com/rubygems/bundler/pull/7475).
108
108
 
109
109
  * ~The `bundle update` command will no longer update all gems, you'll need to pass `--all` to it.~ (postponed)
@@ -29,8 +29,8 @@ Gem::Specification.new do |s|
29
29
  "source_code_uri" => "https://github.com/rubygems/rubygems/tree/master/bundler",
30
30
  }
31
31
 
32
- s.required_ruby_version = ">= 2.3.0"
33
- s.required_rubygems_version = ">= 2.5.2"
32
+ s.required_ruby_version = ">= 2.6.0"
33
+ s.required_rubygems_version = ">= 3.0.1"
34
34
 
35
35
  s.files = Dir.glob("lib/bundler{.rb,/**/*}", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
36
36
 
data/bundler/exe/bundle CHANGED
@@ -15,10 +15,7 @@ else
15
15
  require "bundler"
16
16
  end
17
17
 
18
- # Workaround for non-activated bundler spec due to missing https://github.com/rubygems/rubygems/commit/4e306d7bcdee924b8d80ca9db6125aa59ee4e5a3
19
- gem "bundler", Bundler::VERSION if Gem.rubygems_version < Gem::Version.new("2.6.2")
20
-
21
- if Gem.rubygems_version < Gem::Version.new("3.2.3") && Gem.ruby_version < Gem::Version.new("2.6.a") && !ENV["BUNDLER_NO_OLD_RUBYGEMS_WARNING"]
18
+ if Gem.rubygems_version < Gem::Version.new("3.2.3") && Gem.ruby_version < Gem::Version.new("2.7.a") && !ENV["BUNDLER_NO_OLD_RUBYGEMS_WARNING"]
22
19
  Bundler.ui.warn \
23
20
  "Your RubyGems version (#{Gem::VERSION}) has a bug that prevents " \
24
21
  "`required_ruby_version` from working for Bundler. Any scripts that use " \
@@ -4,8 +4,8 @@ module Bundler
4
4
  # Represents metadata from when the Bundler gem was built.
5
5
  module BuildMetadata
6
6
  # begin ivars
7
- @built_at = "2022-11-17".freeze
8
- @git_commit_sha = "23ec5b8501".freeze
7
+ @built_at = "2023-01-31".freeze
8
+ @git_commit_sha = "598c04d54a".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -40,7 +40,7 @@ module Bundler
40
40
  raise InvalidOption, "Please specify gems to add." if gems.empty?
41
41
 
42
42
  version.to_a.each do |v|
43
- raise InvalidOption, "Invalid gem requirement pattern '#{v}'" unless Gem::Requirement::PATTERN =~ v.to_s
43
+ raise InvalidOption, "Invalid gem requirement pattern '#{v}'" unless Gem::Requirement::PATTERN.match?(v.to_s)
44
44
  end
45
45
  end
46
46
  end
@@ -40,7 +40,11 @@ module Bundler
40
40
  end
41
41
 
42
42
  if options[:standalone]
43
- next Bundler.ui.warn("Sorry, Bundler can only be run via RubyGems.") if gem_name == "bundler"
43
+ if gem_name == "bundler"
44
+ Bundler.ui.warn("Sorry, Bundler can only be run via RubyGems.") unless options[:all]
45
+ next
46
+ end
47
+
44
48
  Bundler.settings.temporary(:path => (Bundler.settings[:path] || Bundler.root)) do
45
49
  installer.generate_standalone_bundler_executable_stubs(spec, installer_opts)
46
50
  end
@@ -17,7 +17,7 @@ module Bundler
17
17
  begin
18
18
  definition.resolve_only_locally!
19
19
  not_installed = definition.missing_specs
20
- rescue GemNotFound, VersionConflict
20
+ rescue GemNotFound, SolveFailure
21
21
  Bundler.ui.error "Bundler can't satisfy your Gemfile's dependencies."
22
22
  Bundler.ui.warn "Install missing gems with `bundle install`."
23
23
  exit 1
@@ -111,6 +111,7 @@ module Bundler
111
111
  definition.gem_version_promoter.tap do |gvp|
112
112
  gvp.level = patch_level.first || :major
113
113
  gvp.strict = options[:strict] || options["filter-strict"]
114
+ gvp.pre = options[:pre]
114
115
  end
115
116
  end
116
117
 
@@ -30,9 +30,9 @@ module Bundler
30
30
 
31
31
  def get_constant(name)
32
32
  const_name = {
33
- "pry" => :Pry,
33
+ "pry" => :Pry,
34
34
  "ripl" => :Ripl,
35
- "irb" => :IRB,
35
+ "irb" => :IRB,
36
36
  }[name]
37
37
  Object.const_get(const_name)
38
38
  rescue NameError
@@ -73,12 +73,10 @@ module Bundler
73
73
  definition.specs.each do |spec|
74
74
  bundles_for_gem(spec).each do |bundle|
75
75
  bad_paths = dylibs(bundle).select do |f|
76
- begin
77
- Fiddle.dlopen(f)
78
- false
79
- rescue Fiddle::DLError
80
- true
81
- end
76
+ Fiddle.dlopen(f)
77
+ false
78
+ rescue Fiddle::DLError
79
+ true
82
80
  end
83
81
  if bad_paths.any?
84
82
  broken_links[spec] ||= []