rubygems-update 3.3.27 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (272) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/CONTRIBUTING.md +24 -1
  4. data/Manifest.txt +30 -27
  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 +48 -0
  10. data/bundler/README.md +2 -2
  11. data/bundler/bundler.gemspec +2 -2
  12. data/bundler/exe/bundle +1 -4
  13. data/bundler/lib/bundler/build_metadata.rb +2 -2
  14. data/bundler/lib/bundler/cli/add.rb +1 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +1 -0
  17. data/bundler/lib/bundler/cli/console.rb +2 -2
  18. data/bundler/lib/bundler/cli/doctor.rb +4 -6
  19. data/bundler/lib/bundler/cli/gem.rb +62 -40
  20. data/bundler/lib/bundler/cli/install.rb +2 -3
  21. data/bundler/lib/bundler/cli/lock.rb +8 -5
  22. data/bundler/lib/bundler/cli/outdated.rb +1 -3
  23. data/bundler/lib/bundler/cli/viz.rb +1 -1
  24. data/bundler/lib/bundler/cli.rb +43 -2
  25. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  26. data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
  27. data/bundler/lib/bundler/constants.rb +1 -1
  28. data/bundler/lib/bundler/definition.rb +61 -31
  29. data/bundler/lib/bundler/dependency.rb +12 -11
  30. data/bundler/lib/bundler/digest.rb +1 -1
  31. data/bundler/lib/bundler/dsl.rb +1 -1
  32. data/bundler/lib/bundler/env.rb +1 -1
  33. data/bundler/lib/bundler/environment_preserver.rb +1 -0
  34. data/bundler/lib/bundler/errors.rb +1 -11
  35. data/bundler/lib/bundler/fetcher/compact_index.rb +9 -11
  36. data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
  37. data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
  38. data/bundler/lib/bundler/fetcher.rb +2 -6
  39. data/bundler/lib/bundler/force_platform.rb +18 -0
  40. data/bundler/lib/bundler/friendly_errors.rb +0 -3
  41. data/bundler/lib/bundler/gem_version_promoter.rb +52 -86
  42. data/bundler/lib/bundler/graph.rb +3 -3
  43. data/bundler/lib/bundler/index.rb +5 -18
  44. data/bundler/lib/bundler/injector.rb +1 -1
  45. data/bundler/lib/bundler/inline.rb +2 -2
  46. data/bundler/lib/bundler/installer/parallel_installer.rb +0 -31
  47. data/bundler/lib/bundler/installer.rb +6 -16
  48. data/bundler/lib/bundler/lazy_specification.rb +37 -33
  49. data/bundler/lib/bundler/lockfile_parser.rb +5 -5
  50. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  51. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  52. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  53. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  54. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  55. data/bundler/lib/bundler/man/bundle-config.1 +1 -1
  56. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  57. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  58. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  59. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  60. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  61. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  62. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  63. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  64. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  65. data/bundler/lib/bundler/man/bundle-install.1 +1 -30
  66. data/bundler/lib/bundler/man/bundle-install.1.ronn +0 -29
  67. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  68. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  69. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  70. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  71. data/bundler/lib/bundler/man/bundle-platform.1 +2 -2
  72. data/bundler/lib/bundler/man/bundle-platform.1.ronn +1 -1
  73. data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
  74. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  75. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  76. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  77. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  78. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  79. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  80. data/bundler/lib/bundler/man/bundle.1 +1 -1
  81. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  82. data/bundler/lib/bundler/mirror.rb +5 -7
  83. data/bundler/lib/bundler/plugin/index.rb +4 -4
  84. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
  85. data/bundler/lib/bundler/resolver/base.rb +7 -11
  86. data/bundler/lib/bundler/resolver/candidate.rb +92 -0
  87. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  88. data/bundler/lib/bundler/resolver/package.rb +63 -0
  89. data/bundler/lib/bundler/resolver/root.rb +25 -0
  90. data/bundler/lib/bundler/resolver/spec_group.rb +26 -36
  91. data/bundler/lib/bundler/resolver.rb +285 -277
  92. data/bundler/lib/bundler/rubygems_ext.rb +11 -6
  93. data/bundler/lib/bundler/rubygems_gem_installer.rb +4 -2
  94. data/bundler/lib/bundler/rubygems_integration.rb +1 -9
  95. data/bundler/lib/bundler/runtime.rb +1 -5
  96. data/bundler/lib/bundler/settings.rb +0 -6
  97. data/bundler/lib/bundler/shared_helpers.rb +1 -0
  98. data/bundler/lib/bundler/source/git/git_proxy.rb +190 -67
  99. data/bundler/lib/bundler/source/git.rb +15 -17
  100. data/bundler/lib/bundler/source/metadata.rb +0 -1
  101. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  102. data/bundler/lib/bundler/source/path.rb +5 -5
  103. data/bundler/lib/bundler/source/rubygems.rb +13 -67
  104. data/bundler/lib/bundler/source_list.rb +8 -2
  105. data/bundler/lib/bundler/spec_set.rb +7 -9
  106. data/bundler/lib/bundler/templates/Executable +1 -1
  107. data/bundler/lib/bundler/templates/Executable.bundler +4 -9
  108. data/bundler/lib/bundler/templates/Executable.standalone +2 -0
  109. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  110. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  111. data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
  112. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -1
  113. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  114. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  115. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  116. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  117. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
  118. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  119. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +8 -0
  120. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
  121. data/bundler/lib/bundler/ui/shell.rb +35 -12
  122. data/bundler/lib/bundler/ui/silent.rb +21 -5
  123. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  124. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  125. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  126. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
  127. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  128. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  129. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  130. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  131. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  132. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  133. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +151 -0
  134. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  135. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  136. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  137. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  138. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +53 -0
  139. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  140. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  141. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +124 -0
  142. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +409 -0
  143. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +240 -0
  144. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  145. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  146. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  147. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  148. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  149. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  150. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  151. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  152. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  153. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  154. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  155. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  156. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +13 -7
  157. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +10 -5
  158. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  159. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  160. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  161. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  162. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  163. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  164. data/bundler/lib/bundler/version.rb +5 -1
  165. data/bundler/lib/bundler/worker.rb +5 -7
  166. data/bundler/lib/bundler.rb +20 -64
  167. data/lib/rubygems/command_manager.rb +2 -2
  168. data/lib/rubygems/commands/fetch_command.rb +1 -1
  169. data/lib/rubygems/commands/install_command.rb +7 -3
  170. data/lib/rubygems/commands/rdoc_command.rb +3 -2
  171. data/lib/rubygems/commands/setup_command.rb +2 -2
  172. data/lib/rubygems/commands/unpack_command.rb +1 -1
  173. data/lib/rubygems/commands/update_command.rb +1 -7
  174. data/lib/rubygems/config_file.rb +33 -0
  175. data/lib/rubygems/core_ext/kernel_warn.rb +1 -2
  176. data/lib/rubygems/defaults.rb +15 -1
  177. data/lib/rubygems/dependency.rb +4 -1
  178. data/lib/rubygems/dependency_installer.rb +24 -24
  179. data/lib/rubygems/exceptions.rb +1 -3
  180. data/lib/rubygems/ext/builder.rb +3 -3
  181. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
  182. data/lib/rubygems/ext/cargo_builder.rb +15 -20
  183. data/lib/rubygems/ext/ext_conf_builder.rb +2 -0
  184. data/lib/rubygems/indexer.rb +1 -1
  185. data/lib/rubygems/installer.rb +5 -5
  186. data/lib/rubygems/optparse/lib/optparse.rb +20 -15
  187. data/lib/rubygems/package/tar_header.rb +11 -11
  188. data/lib/rubygems/platform.rb +0 -2
  189. data/lib/rubygems/request_set/gem_dependency_api.rb +104 -104
  190. data/lib/rubygems/requirement.rb +7 -7
  191. data/lib/rubygems/resolver/installer_set.rb +1 -1
  192. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  193. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  194. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  195. data/lib/rubygems/security/policies.rb +40 -40
  196. data/lib/rubygems/security/trust_dir.rb +1 -1
  197. data/lib/rubygems/security.rb +3 -16
  198. data/lib/rubygems/source.rb +2 -2
  199. data/lib/rubygems/specification.rb +37 -49
  200. data/lib/rubygems/specification_policy.rb +14 -0
  201. data/lib/rubygems/stub_specification.rb +2 -2
  202. data/lib/rubygems/text.rb +1 -1
  203. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  204. data/lib/rubygems/update_suggestion.rb +69 -0
  205. data/lib/rubygems/util.rb +1 -5
  206. data/lib/rubygems/validator.rb +1 -1
  207. data/lib/rubygems.rb +8 -3
  208. data/rubygems-update.gemspec +2 -2
  209. data/test/rubygems/helper.rb +7 -3
  210. data/test/rubygems/test_bundled_ca.rb +1 -1
  211. data/test/rubygems/test_exit.rb +6 -0
  212. data/test/rubygems/test_gem.rb +4 -9
  213. data/test/rubygems/test_gem_bundler_version_finder.rb +2 -1
  214. data/test/rubygems/test_gem_command_manager.rb +1 -1
  215. data/test/rubygems/test_gem_commands_install_command.rb +19 -0
  216. data/test/rubygems/test_gem_commands_setup_command.rb +1 -8
  217. data/test/rubygems/test_gem_commands_update_command.rb +6 -6
  218. data/test/rubygems/test_gem_config_file.rb +1 -1
  219. data/test/rubygems/test_gem_dependency.rb +2 -0
  220. data/test/rubygems/test_gem_ext_builder.rb +3 -3
  221. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +22 -32
  222. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +1 -1
  223. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +22 -32
  224. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  225. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
  226. data/test/rubygems/test_gem_ext_cargo_builder.rb +22 -28
  227. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +16 -16
  228. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -10
  229. data/test/rubygems/test_gem_indexer.rb +39 -20
  230. data/test/rubygems/test_gem_installer.rb +68 -2
  231. data/test/rubygems/test_gem_package_tar_header.rb +13 -13
  232. data/test/rubygems/test_gem_platform.rb +59 -60
  233. data/test/rubygems/test_gem_remote_fetcher.rb +4 -4
  234. data/test/rubygems/test_gem_request_set.rb +2 -2
  235. data/test/rubygems/test_gem_requirement.rb +1 -1
  236. data/test/rubygems/test_gem_resolver_api_set.rb +12 -12
  237. data/test/rubygems/test_gem_resolver_api_specification.rb +19 -19
  238. data/test/rubygems/test_gem_resolver_git_specification.rb +1 -1
  239. data/test/rubygems/test_gem_security_policy.rb +10 -10
  240. data/test/rubygems/test_gem_security_trust_dir.rb +2 -2
  241. data/test/rubygems/test_gem_specification.rb +50 -37
  242. data/test/rubygems/test_gem_uninstaller.rb +1 -1
  243. data/test/rubygems/test_gem_update_suggestion.rb +208 -0
  244. data/test/rubygems/test_kernel.rb +10 -8
  245. data/test/rubygems/test_require.rb +70 -55
  246. metadata +34 -31
  247. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  248. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  249. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  250. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  251. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  252. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  253. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  254. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  255. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  256. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  257. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  258. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  259. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  260. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  261. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  262. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  263. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  264. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  265. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  266. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  267. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  268. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  269. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  270. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  271. data/bundler/lib/bundler/version_ranges.rb +0 -122
  272. /data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 408d9d522251e2fb954bfdf84102ada35c4e3566cd6f6bc4601258de20aaa289
4
- data.tar.gz: 757b2eebebe6a052bcbc0c29d5b720501024af1f2127a588b3b19acfc0bdf2f6
3
+ metadata.gz: defa5f3855c57554726a4a03c00cffbe64a1ba06e3c4c95f9f9841c5bc7317bd
4
+ data.tar.gz: 242f793a3af341087dabd3a38fba0271b56a89c01c912b5f35246e5356982956
5
5
  SHA512:
6
- metadata.gz: 7d44e28517679d5a93af05db7a4886510a86e0a286bcce642d582427abfad81123ac551003f3076731ec8034909e68adc9068194ff4429f74788bf2e06a76f6d
7
- data.tar.gz: f0b21ecf2a8bb7e34c5f25d38d27dc47b1e1b94255c616b3bf29e28d6f9fd4eb45794ff80d1f7ae91c45e40ca0542f6e5c52ca1b62c9e3893829da1bce841457
6
+ metadata.gz: 27c0065f1c65feb271ad19465d846e67d70781be9e34511c4e5c394f767a83f1bd2b05c76b93101f7f3dcfcc00ee8c8c8e45ae33b36184e65430a1382f2d508f
7
+ data.tar.gz: 45b3105bbef280a6203a7d852e7cf53b501669833b053b5a747b898a6740fd82a7cb40cd55e643509b316bae89e6b90cb27a371aa68aba2d6c505e183694629c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,32 @@
1
+ # 3.4.0 / 2022-12-24
2
+
3
+ ## Breaking changes:
4
+
5
+ * Drop support for Ruby 2.3, 2.4, 2.5 and RubyGems 2.5, 2.6, 2.7. Pull
6
+ request #6107 by deivid-rodriguez
7
+ * Remove support for deprecated OS. Pull request #6041 by peterzhu2118
8
+
9
+ ## Features:
10
+
11
+ * Add 'call for update' to RubyGems install command. Pull request #5922 by
12
+ simi
13
+
14
+ ## Enhancements:
15
+
16
+ * Add `mswin` support for cargo builder. Pull request #6167 by ianks
17
+ * Validate Cargo.lock is present for Rust based extensions. Pull request
18
+ #6151 by simi
19
+ * Clean built artifacts after building extensions. Pull request #6133 by
20
+ deivid-rodriguez
21
+ * Installs bundler 2.4.0 as a default gem.
22
+
23
+ ## Bug fixes:
24
+
25
+ * Fix crash due to `BundlerVersionFinder` not defined. Pull request #6152
26
+ by deivid-rodriguez
27
+ * Don't leave corrupted partial package download around when running out
28
+ of disk space. Pull request #5681 by duckinator
29
+
1
30
  # 3.3.26 / 2022-11-16
2
31
 
3
32
  ## Enhancements:
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
 
@@ -75,6 +88,16 @@ To run an individual test file location for example in `spec/install/gems/standa
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
@@ -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,51 @@
1
+ # 2.4.0 (December 24, 2022)
2
+
3
+ ## Security:
4
+
5
+ - 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)
6
+ - Use safe Marshal deserialization for dependency API response [#6141](https://github.com/rubygems/rubygems/pull/6141)
7
+
8
+ ## Breaking changes:
9
+
10
+ - Remove Travis CI from gem skeleton [#6150](https://github.com/rubygems/rubygems/pull/6150)
11
+ - 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)
12
+ - Completely remove "auto-sudo" feature [#5888](https://github.com/rubygems/rubygems/pull/5888)
13
+
14
+ ## Deprecations:
15
+
16
+ - Turn `--ext` option of `bundle gem` into string. Deprecate usage without explicit value [#6144](https://github.com/rubygems/rubygems/pull/6144)
17
+
18
+ ## Features:
19
+
20
+ - Add `--ext=rust` support to `bundle gem` for creating simple gems with Rust extensions [#6149](https://github.com/rubygems/rubygems/pull/6149)
21
+ - Migrate our resolver engine to PubGrub [#5960](https://github.com/rubygems/rubygems/pull/5960)
22
+
23
+ ## Performance:
24
+
25
+ - Make cloning git repos faster [#4475](https://github.com/rubygems/rubygems/pull/4475)
26
+
27
+ ## Enhancements:
28
+
29
+ - Add `bundle lock --update --bundler` [#6134](https://github.com/rubygems/rubygems/pull/6134)
30
+ - Support for pre flag in `bundle update`/`bundle lock` [#5258](https://github.com/rubygems/rubygems/pull/5258)
31
+ - Improve error message when changing Gemfile to a mistyped git ref [#6130](https://github.com/rubygems/rubygems/pull/6130)
32
+ - Remove special handling of some `LoadError` and `NoMethodError` [#6115](https://github.com/rubygems/rubygems/pull/6115)
33
+
34
+ ## Bug fixes:
35
+
36
+ - Don't unlock dependencies of a gemspec when its version changes [#6184](https://github.com/rubygems/rubygems/pull/6184)
37
+ - Fix platform specific version for libv8-node and other allowlisted gems not being chosen in Truffleruby [#6169](https://github.com/rubygems/rubygems/pull/6169)
38
+ - Fix `bundle outdated` with both `--groups` and `--parseable` flags [#6148](https://github.com/rubygems/rubygems/pull/6148)
39
+ - Auto-heal lockfile when it's missing specs [#6132](https://github.com/rubygems/rubygems/pull/6132)
40
+ - Fix unintentional downgrades when gemspec DSL is used [#6131](https://github.com/rubygems/rubygems/pull/6131)
41
+ - Fix display of previous gem version when previously downloaded already [#6110](https://github.com/rubygems/rubygems/pull/6110)
42
+ - Fix hang when a lockfile gem does not resolve on the current platform [#6070](https://github.com/rubygems/rubygems/pull/6070)
43
+
44
+ ## Documentation:
45
+
46
+ - Improve Bundler setup docs for development [#6154](https://github.com/rubygems/rubygems/pull/6154)
47
+ - Fx link in bundle-platform man page [#6071](https://github.com/rubygems/rubygems/pull/6071)
48
+
1
49
  # 2.3.26 (November 16, 2022)
2
50
 
3
51
  ## Enhancements:
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
 
@@ -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("3.0.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 = "2023-11-10".freeze
8
- @git_commit_sha = "d1204e84f1".freeze
7
+ @built_at = "2022-12-24".freeze
8
+ @git_commit_sha = "e67004d0fe".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
@@ -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] ||= []
@@ -15,7 +15,7 @@ module Bundler
15
15
  "test-unit" => "3.0",
16
16
  }.freeze
17
17
 
18
- attr_reader :options, :gem_name, :thor, :name, :target
18
+ attr_reader :options, :gem_name, :thor, :name, :target, :extension
19
19
 
20
20
  def initialize(options, gem_name, thor)
21
21
  @options = options
@@ -28,7 +28,11 @@ module Bundler
28
28
  @name = @gem_name
29
29
  @target = SharedHelpers.pwd.join(gem_name)
30
30
 
31
- validate_ext_name if options[:ext]
31
+ @extension = options[:ext]
32
+
33
+ validate_ext_name if @extension
34
+ validate_rust_builder_rubygems_version if @extension == "rust"
35
+ travis_removal_info
32
36
  end
33
37
 
34
38
  def run
@@ -55,21 +59,22 @@ module Bundler
55
59
  end
56
60
 
57
61
  config = {
58
- :name => name,
62
+ :name => name,
59
63
  :underscored_name => underscored_name,
60
- :namespaced_path => namespaced_path,
61
- :makefile_path => "#{underscored_name}/#{underscored_name}",
62
- :constant_name => constant_name,
63
- :constant_array => constant_array,
64
- :author => git_author_name.empty? ? "TODO: Write your name" : git_author_name,
65
- :email => git_user_email.empty? ? "TODO: Write your email address" : git_user_email,
66
- :test => options[:test],
67
- :ext => options[:ext],
68
- :exe => options[:exe],
69
- :bundler_version => bundler_dependency_version,
70
- :git => use_git,
71
- :github_username => github_username.empty? ? "[USERNAME]" : github_username,
64
+ :namespaced_path => namespaced_path,
65
+ :makefile_path => "#{underscored_name}/#{underscored_name}",
66
+ :constant_name => constant_name,
67
+ :constant_array => constant_array,
68
+ :author => git_author_name.empty? ? "TODO: Write your name" : git_author_name,
69
+ :email => git_user_email.empty? ? "TODO: Write your email address" : git_user_email,
70
+ :test => options[:test],
71
+ :ext => extension,
72
+ :exe => options[:exe],
73
+ :bundler_version => bundler_dependency_version,
74
+ :git => use_git,
75
+ :github_username => github_username.empty? ? "[USERNAME]" : github_username,
72
76
  :required_ruby_version => required_ruby_version,
77
+ :rust_builder_required_rubygems_version => rust_builder_required_rubygems_version,
73
78
  :minitest_constant_name => minitest_constant_name,
74
79
  }
75
80
  ensure_safe_gem_name(name, constant_array)
@@ -132,8 +137,6 @@ module Bundler
132
137
  case config[:ci]
133
138
  when "github"
134
139
  templates.merge!("github/workflows/main.yml.tt" => ".github/workflows/main.yml")
135
- when "travis"
136
- templates.merge!("travis.yml.tt" => ".travis.yml")
137
140
  when "gitlab"
138
141
  templates.merge!("gitlab-ci.yml.tt" => ".gitlab-ci.yml")
139
142
  when "circle"
@@ -188,14 +191,23 @@ module Bundler
188
191
 
189
192
  templates.merge!("exe/newgem.tt" => "exe/#{name}") if config[:exe]
190
193
 
191
- if options[:ext]
194
+ if extension == "c"
192
195
  templates.merge!(
193
- "ext/newgem/extconf.rb.tt" => "ext/#{name}/extconf.rb",
196
+ "ext/newgem/extconf-c.rb.tt" => "ext/#{name}/extconf.rb",
194
197
  "ext/newgem/newgem.h.tt" => "ext/#{name}/#{underscored_name}.h",
195
198
  "ext/newgem/newgem.c.tt" => "ext/#{name}/#{underscored_name}.c"
196
199
  )
197
200
  end
198
201
 
202
+ if extension == "rust"
203
+ templates.merge!(
204
+ "Cargo.toml.tt" => "Cargo.toml",
205
+ "ext/newgem/Cargo.toml.tt" => "ext/#{name}/Cargo.toml",
206
+ "ext/newgem/extconf-rust.rb.tt" => "ext/#{name}/extconf.rb",
207
+ "ext/newgem/src/lib.rs.tt" => "ext/#{name}/src/lib.rs",
208
+ )
209
+ end
210
+
199
211
  if target.exist? && !target.directory?
200
212
  Bundler.ui.error "Couldn't create a new gem named `#{gem_name}` because there's an existing file named `#{gem_name}`."
201
213
  exit Bundler::BundlerError.all_errors[Bundler::GenericSystemCallError]
@@ -270,7 +282,7 @@ module Bundler
270
282
  Bundler.ui.info hint_text("test")
271
283
 
272
284
  result = Bundler.ui.ask "Enter a test framework. rspec/minitest/test-unit/(none):"
273
- if result =~ /rspec|minitest|test-unit/
285
+ if /rspec|minitest|test-unit/.match?(result)
274
286
  test_framework = result
275
287
  else
276
288
  test_framework = false
@@ -306,12 +318,11 @@ module Bundler
306
318
  "* CircleCI: https://circleci.com/\n" \
307
319
  "* GitHub Actions: https://github.com/features/actions\n" \
308
320
  "* GitLab CI: https://docs.gitlab.com/ee/ci/\n" \
309
- "* Travis CI: https://travis-ci.org/\n" \
310
321
  "\n"
311
322
  Bundler.ui.info hint_text("ci")
312
323
 
313
- result = Bundler.ui.ask "Enter a CI service. github/travis/gitlab/circle/(none):"
314
- if result =~ /github|travis|gitlab|circle/
324
+ result = Bundler.ui.ask "Enter a CI service. github/gitlab/circle/(none):"
325
+ if /github|gitlab|circle/.match?(result)
315
326
  ci_template = result
316
327
  else
317
328
  ci_template = false
@@ -342,7 +353,7 @@ module Bundler
342
353
  Bundler.ui.info hint_text("linter")
343
354
 
344
355
  result = Bundler.ui.ask "Enter a linter. rubocop/standard/(none):"
345
- if result =~ /rubocop|standard/
356
+ if /rubocop|standard/.match?(result)
346
357
  linter_template = result
347
358
  else
348
359
  linter_template = false
@@ -389,7 +400,7 @@ module Bundler
389
400
  end
390
401
 
391
402
  def ensure_safe_gem_name(name, constant_array)
392
- if name =~ /^\d/
403
+ if /^\d/.match?(name)
393
404
  Bundler.ui.error "Invalid gem name #{name} Please give a name which does not start with numbers."
394
405
  exit 1
395
406
  end
@@ -415,28 +426,39 @@ module Bundler
415
426
  thor.run(%(#{editor} "#{file}"))
416
427
  end
417
428
 
429
+ def rust_builder_required_rubygems_version
430
+ "3.3.11"
431
+ end
432
+
418
433
  def required_ruby_version
419
- if Gem.ruby_version < Gem::Version.new("2.4.a") then "2.3.0"
420
- elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "2.4.0"
421
- elsif Gem.ruby_version < Gem::Version.new("2.6.a") then "2.5.0"
422
- else
423
- "2.6.0"
424
- end
434
+ "2.6.0"
425
435
  end
426
436
 
427
437
  def rubocop_version
428
- if Gem.ruby_version < Gem::Version.new("2.4.a") then "0.81.0"
429
- elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "1.12"
430
- else
431
- "1.21"
432
- end
438
+ "1.21"
433
439
  end
434
440
 
435
441
  def standard_version
436
- if Gem.ruby_version < Gem::Version.new("2.4.a") then "0.2.5"
437
- elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "1.0"
438
- else
439
- "1.3"
442
+ "1.3"
443
+ end
444
+
445
+ # TODO: remove at next minor release
446
+ def travis_removal_info
447
+ if options[:ci] == "travis"
448
+ Bundler.ui.error "Support for Travis CI was removed from gem skeleton generator."
449
+ exit 1
450
+ end
451
+
452
+ if Bundler.settings["gem.ci"] == "travis"
453
+ Bundler.ui.error "Support for Travis CI was removed from gem skeleton generator, but it is present in bundle config. Please configure another provider using `bundle config set gem.ci SERVICE` (where SERVICE is one of github/gitlab/circle) or unset configuration using `bundle config unset gem.ci`."
454
+ exit 1
455
+ end
456
+ end
457
+
458
+ def validate_rust_builder_rubygems_version
459
+ if Gem::Version.new(rust_builder_required_rubygems_version) > Gem.rubygems_version
460
+ Bundler.ui.error "Your RubyGems version (#{Gem.rubygems_version}) is too old to build Rust extension. Please update your RubyGems using `gem update --system` or any other way and try again."
461
+ exit 1
440
462
  end
441
463
  end
442
464
  end