rubygems-update 3.2.24 → 3.2.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (276) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +57 -0
  3. data/Manifest.txt +7 -7
  4. data/bundler/CHANGELOG.md +62 -0
  5. data/bundler/lib/bundler/build_metadata.rb +2 -2
  6. data/bundler/lib/bundler/cli/cache.rb +1 -1
  7. data/bundler/lib/bundler/cli/doctor.rb +1 -1
  8. data/bundler/lib/bundler/cli/exec.rb +1 -6
  9. data/bundler/lib/bundler/cli/gem.rb +3 -2
  10. data/bundler/lib/bundler/cli/install.rb +4 -17
  11. data/bundler/lib/bundler/cli/list.rb +7 -1
  12. data/bundler/lib/bundler/cli/open.rb +1 -2
  13. data/bundler/lib/bundler/cli/remove.rb +1 -2
  14. data/bundler/lib/bundler/cli/update.rb +1 -1
  15. data/bundler/lib/bundler/cli.rb +12 -9
  16. data/bundler/lib/bundler/definition.rb +25 -29
  17. data/bundler/lib/bundler/dsl.rb +14 -1
  18. data/bundler/lib/bundler/errors.rb +1 -1
  19. data/bundler/lib/bundler/installer/gem_installer.rb +3 -16
  20. data/bundler/lib/bundler/installer/standalone.rb +13 -8
  21. data/bundler/lib/bundler/installer.rb +0 -1
  22. data/bundler/lib/bundler/lockfile_parser.rb +1 -0
  23. data/bundler/lib/bundler/plugin/installer.rb +2 -0
  24. data/bundler/lib/bundler/plugin.rb +23 -6
  25. data/bundler/lib/bundler/resolver.rb +10 -17
  26. data/bundler/lib/bundler/rubygems_gem_installer.rb +5 -1
  27. data/bundler/lib/bundler/rubygems_integration.rb +2 -0
  28. data/bundler/lib/bundler/runtime.rb +15 -6
  29. data/bundler/lib/bundler/settings.rb +13 -1
  30. data/bundler/lib/bundler/setup.rb +2 -2
  31. data/bundler/lib/bundler/shared_helpers.rb +0 -7
  32. data/bundler/lib/bundler/source/git/git_proxy.rb +1 -2
  33. data/bundler/lib/bundler/source/rubygems.rb +23 -2
  34. data/bundler/lib/bundler/source/rubygems_aggregate.rb +4 -0
  35. data/bundler/lib/bundler/source.rb +4 -0
  36. data/bundler/lib/bundler/source_list.rb +16 -3
  37. data/bundler/lib/bundler/spec_set.rb +13 -35
  38. data/bundler/lib/bundler/templates/Executable.bundler +6 -6
  39. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +13 -2
  40. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +4 -2
  41. data/bundler/lib/bundler/version.rb +1 -1
  42. data/bundler/lib/bundler/worker.rb +17 -2
  43. data/bundler/lib/bundler.rb +11 -21
  44. data/lib/rubygems/command_manager.rb +3 -3
  45. data/lib/rubygems/commands/build_command.rb +3 -3
  46. data/lib/rubygems/commands/cert_command.rb +2 -2
  47. data/lib/rubygems/commands/check_command.rb +4 -4
  48. data/lib/rubygems/commands/cleanup_command.rb +3 -3
  49. data/lib/rubygems/commands/contents_command.rb +2 -2
  50. data/lib/rubygems/commands/dependency_command.rb +3 -3
  51. data/lib/rubygems/commands/environment_command.rb +1 -1
  52. data/lib/rubygems/commands/fetch_command.rb +3 -3
  53. data/lib/rubygems/commands/generate_index_command.rb +2 -2
  54. data/lib/rubygems/commands/help_command.rb +1 -1
  55. data/lib/rubygems/commands/info_command.rb +2 -2
  56. data/lib/rubygems/commands/install_command.rb +12 -11
  57. data/lib/rubygems/commands/list_command.rb +2 -2
  58. data/lib/rubygems/commands/lock_command.rb +1 -1
  59. data/lib/rubygems/commands/mirror_command.rb +1 -1
  60. data/lib/rubygems/commands/open_command.rb +2 -2
  61. data/lib/rubygems/commands/outdated_command.rb +4 -4
  62. data/lib/rubygems/commands/owner_command.rb +4 -4
  63. data/lib/rubygems/commands/pristine_command.rb +5 -5
  64. data/lib/rubygems/commands/push_command.rb +4 -4
  65. data/lib/rubygems/commands/query_command.rb +3 -3
  66. data/lib/rubygems/commands/rdoc_command.rb +3 -3
  67. data/lib/rubygems/commands/search_command.rb +2 -2
  68. data/lib/rubygems/commands/server_command.rb +3 -3
  69. data/lib/rubygems/commands/setup_command.rb +5 -5
  70. data/lib/rubygems/commands/signin_command.rb +2 -2
  71. data/lib/rubygems/commands/signout_command.rb +1 -1
  72. data/lib/rubygems/commands/sources_command.rb +4 -4
  73. data/lib/rubygems/commands/specification_command.rb +4 -4
  74. data/lib/rubygems/commands/stale_command.rb +1 -1
  75. data/lib/rubygems/commands/uninstall_command.rb +3 -3
  76. data/lib/rubygems/commands/unpack_command.rb +5 -5
  77. data/lib/rubygems/commands/update_command.rb +9 -9
  78. data/lib/rubygems/commands/which_command.rb +1 -1
  79. data/lib/rubygems/commands/yank_command.rb +4 -4
  80. data/lib/rubygems/config_file.rb +5 -5
  81. data/lib/rubygems/dependency_installer.rb +8 -8
  82. data/lib/rubygems/dependency_list.rb +1 -1
  83. data/lib/rubygems/doctor.rb +2 -2
  84. data/lib/rubygems/exceptions.rb +1 -1
  85. data/lib/rubygems/ext/builder.rb +1 -0
  86. data/lib/rubygems/ext/ext_conf_builder.rb +1 -2
  87. data/lib/rubygems/ext/rake_builder.rb +1 -2
  88. data/lib/rubygems/gem_runner.rb +3 -3
  89. data/lib/rubygems/gemcutter_utilities.rb +2 -2
  90. data/lib/rubygems/indexer.rb +2 -2
  91. data/lib/rubygems/install_default_message.rb +2 -2
  92. data/lib/rubygems/install_message.rb +2 -2
  93. data/lib/rubygems/install_update_options.rb +2 -2
  94. data/lib/rubygems/installer.rb +17 -8
  95. data/lib/rubygems/local_remote_options.rb +1 -1
  96. data/lib/rubygems/mock_gem_ui.rb +1 -1
  97. data/lib/rubygems/package/tar_reader.rb +1 -1
  98. data/lib/rubygems/package.rb +12 -12
  99. data/lib/rubygems/package_task.rb +2 -2
  100. data/lib/rubygems/platform.rb +2 -1
  101. data/lib/rubygems/rdoc.rb +1 -1
  102. data/lib/rubygems/remote_fetcher.rb +14 -21
  103. data/lib/rubygems/request.rb +5 -5
  104. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -1
  105. data/lib/rubygems/request_set/lockfile.rb +1 -1
  106. data/lib/rubygems/request_set.rb +4 -4
  107. data/lib/rubygems/requirement.rb +3 -22
  108. data/lib/rubygems/resolver/git_specification.rb +1 -1
  109. data/lib/rubygems/resolver/installer_set.rb +3 -3
  110. data/lib/rubygems/resolver/molinillo.rb +1 -1
  111. data/lib/rubygems/resolver/set.rb +0 -1
  112. data/lib/rubygems/resolver/specification.rb +1 -1
  113. data/lib/rubygems/resolver.rb +31 -31
  114. data/lib/rubygems/s3_uri_signer.rb +0 -1
  115. data/lib/rubygems/safe_yaml.rb +0 -2
  116. data/lib/rubygems/security/policy.rb +1 -1
  117. data/lib/rubygems/security/signer.rb +1 -1
  118. data/lib/rubygems/security.rb +5 -5
  119. data/lib/rubygems/security_option.rb +2 -2
  120. data/lib/rubygems/server.rb +2 -2
  121. data/lib/rubygems/source.rb +6 -6
  122. data/lib/rubygems/spec_fetcher.rb +5 -5
  123. data/lib/rubygems/specification.rb +9 -15
  124. data/lib/rubygems/specification_policy.rb +2 -2
  125. data/lib/rubygems/uninstaller.rb +6 -6
  126. data/lib/rubygems/uri.rb +111 -0
  127. data/lib/rubygems/user_interaction.rb +2 -2
  128. data/lib/rubygems/util/licenses.rb +1 -1
  129. data/lib/rubygems/validator.rb +2 -2
  130. data/lib/rubygems/version_option.rb +1 -1
  131. data/lib/rubygems.rb +37 -47
  132. data/rubygems-update.gemspec +1 -1
  133. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  134. data/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +16 -19
  135. data/{lib → test}/rubygems/installer_test_case.rb +1 -1
  136. data/{lib → test}/rubygems/package/tar_test_case.rb +1 -1
  137. data/test/rubygems/test_bundled_ca.rb +1 -1
  138. data/test/rubygems/test_config.rb +1 -1
  139. data/test/rubygems/test_deprecate.rb +1 -1
  140. data/test/rubygems/test_gem.rb +190 -136
  141. data/test/rubygems/test_gem_available_set.rb +1 -1
  142. data/test/rubygems/test_gem_bundler_version_finder.rb +1 -1
  143. data/test/rubygems/test_gem_command.rb +1 -1
  144. data/test/rubygems/test_gem_command_manager.rb +1 -1
  145. data/test/rubygems/test_gem_commands_build_command.rb +1 -1
  146. data/test/rubygems/test_gem_commands_cert_command.rb +1 -1
  147. data/test/rubygems/test_gem_commands_check_command.rb +1 -1
  148. data/test/rubygems/test_gem_commands_cleanup_command.rb +1 -1
  149. data/test/rubygems/test_gem_commands_contents_command.rb +1 -1
  150. data/test/rubygems/test_gem_commands_dependency_command.rb +1 -1
  151. data/test/rubygems/test_gem_commands_environment_command.rb +1 -1
  152. data/test/rubygems/test_gem_commands_fetch_command.rb +1 -1
  153. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -1
  154. data/test/rubygems/test_gem_commands_help_command.rb +1 -1
  155. data/test/rubygems/test_gem_commands_info_command.rb +1 -1
  156. data/test/rubygems/test_gem_commands_install_command.rb +26 -1
  157. data/test/rubygems/test_gem_commands_list_command.rb +1 -1
  158. data/test/rubygems/test_gem_commands_lock_command.rb +1 -1
  159. data/test/rubygems/test_gem_commands_mirror.rb +1 -1
  160. data/test/rubygems/test_gem_commands_open_command.rb +1 -1
  161. data/test/rubygems/test_gem_commands_outdated_command.rb +1 -1
  162. data/test/rubygems/test_gem_commands_owner_command.rb +1 -1
  163. data/test/rubygems/test_gem_commands_pristine_command.rb +1 -1
  164. data/test/rubygems/test_gem_commands_push_command.rb +1 -1
  165. data/test/rubygems/test_gem_commands_query_command.rb +1 -1
  166. data/test/rubygems/test_gem_commands_search_command.rb +1 -1
  167. data/test/rubygems/test_gem_commands_server_command.rb +1 -1
  168. data/test/rubygems/test_gem_commands_setup_command.rb +3 -3
  169. data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
  170. data/test/rubygems/test_gem_commands_signout_command.rb +1 -1
  171. data/test/rubygems/test_gem_commands_sources_command.rb +1 -1
  172. data/test/rubygems/test_gem_commands_specification_command.rb +1 -1
  173. data/test/rubygems/test_gem_commands_stale_command.rb +1 -1
  174. data/test/rubygems/test_gem_commands_uninstall_command.rb +1 -1
  175. data/test/rubygems/test_gem_commands_unpack_command.rb +1 -1
  176. data/test/rubygems/test_gem_commands_update_command.rb +1 -1
  177. data/test/rubygems/test_gem_commands_which_command.rb +1 -1
  178. data/test/rubygems/test_gem_commands_yank_command.rb +1 -1
  179. data/test/rubygems/test_gem_config_file.rb +1 -1
  180. data/test/rubygems/test_gem_dependency.rb +1 -1
  181. data/test/rubygems/test_gem_dependency_installer.rb +1 -1
  182. data/test/rubygems/test_gem_dependency_list.rb +1 -1
  183. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -1
  184. data/test/rubygems/test_gem_doctor.rb +1 -1
  185. data/test/rubygems/test_gem_ext_builder.rb +4 -1
  186. data/test/rubygems/test_gem_ext_cmake_builder.rb +1 -1
  187. data/test/rubygems/test_gem_ext_configure_builder.rb +1 -1
  188. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +1 -1
  189. data/test/rubygems/test_gem_ext_rake_builder.rb +1 -1
  190. data/test/rubygems/test_gem_gem_runner.rb +1 -1
  191. data/test/rubygems/test_gem_gemcutter_utilities.rb +1 -1
  192. data/test/rubygems/test_gem_impossible_dependencies_error.rb +1 -1
  193. data/test/rubygems/test_gem_indexer.rb +1 -1
  194. data/test/rubygems/test_gem_install_update_options.rb +1 -1
  195. data/test/rubygems/test_gem_installer.rb +4 -2
  196. data/test/rubygems/test_gem_local_remote_options.rb +1 -1
  197. data/test/rubygems/test_gem_name_tuple.rb +1 -1
  198. data/test/rubygems/test_gem_package.rb +1 -1
  199. data/test/rubygems/test_gem_package_old.rb +1 -1
  200. data/test/rubygems/test_gem_package_tar_header.rb +1 -1
  201. data/test/rubygems/test_gem_package_tar_reader.rb +1 -1
  202. data/test/rubygems/test_gem_package_tar_reader_entry.rb +1 -1
  203. data/test/rubygems/test_gem_package_tar_writer.rb +1 -1
  204. data/test/rubygems/test_gem_package_task.rb +1 -1
  205. data/test/rubygems/test_gem_path_support.rb +1 -1
  206. data/test/rubygems/test_gem_platform.rb +2 -1
  207. data/test/rubygems/test_gem_rdoc.rb +1 -1
  208. data/test/rubygems/test_gem_remote_fetcher.rb +31 -1
  209. data/test/rubygems/test_gem_request.rb +36 -10
  210. data/test/rubygems/test_gem_request_connection_pools.rb +1 -1
  211. data/test/rubygems/test_gem_request_set.rb +1 -1
  212. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +1 -1
  213. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -1
  214. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +1 -1
  215. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
  216. data/test/rubygems/test_gem_requirement.rb +35 -1
  217. data/test/rubygems/test_gem_resolver.rb +1 -1
  218. data/test/rubygems/test_gem_resolver_activation_request.rb +1 -1
  219. data/test/rubygems/test_gem_resolver_api_set.rb +1 -1
  220. data/test/rubygems/test_gem_resolver_api_specification.rb +1 -1
  221. data/test/rubygems/test_gem_resolver_best_set.rb +1 -1
  222. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
  223. data/test/rubygems/test_gem_resolver_conflict.rb +1 -1
  224. data/test/rubygems/test_gem_resolver_dependency_request.rb +1 -1
  225. data/test/rubygems/test_gem_resolver_git_set.rb +1 -1
  226. data/test/rubygems/test_gem_resolver_git_specification.rb +2 -1
  227. data/test/rubygems/test_gem_resolver_index_set.rb +1 -1
  228. data/test/rubygems/test_gem_resolver_index_specification.rb +1 -1
  229. data/test/rubygems/test_gem_resolver_installed_specification.rb +1 -1
  230. data/test/rubygems/test_gem_resolver_installer_set.rb +19 -1
  231. data/test/rubygems/test_gem_resolver_local_specification.rb +1 -1
  232. data/test/rubygems/test_gem_resolver_lock_set.rb +1 -1
  233. data/test/rubygems/test_gem_resolver_lock_specification.rb +1 -1
  234. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
  235. data/test/rubygems/test_gem_resolver_specification.rb +1 -1
  236. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -1
  237. data/test/rubygems/test_gem_resolver_vendor_specification.rb +1 -1
  238. data/test/rubygems/test_gem_security.rb +1 -1
  239. data/test/rubygems/test_gem_security_policy.rb +1 -1
  240. data/test/rubygems/test_gem_security_signer.rb +1 -1
  241. data/test/rubygems/test_gem_security_trust_dir.rb +1 -1
  242. data/test/rubygems/test_gem_server.rb +1 -1
  243. data/test/rubygems/test_gem_silent_ui.rb +1 -1
  244. data/test/rubygems/test_gem_source.rb +1 -1
  245. data/test/rubygems/test_gem_source_fetch_problem.rb +1 -1
  246. data/test/rubygems/test_gem_source_git.rb +1 -1
  247. data/test/rubygems/test_gem_source_installed.rb +1 -1
  248. data/test/rubygems/test_gem_source_list.rb +1 -1
  249. data/test/rubygems/test_gem_source_local.rb +1 -1
  250. data/test/rubygems/test_gem_source_lock.rb +1 -1
  251. data/test/rubygems/test_gem_source_specific_file.rb +1 -1
  252. data/test/rubygems/test_gem_source_subpath_problem.rb +1 -1
  253. data/test/rubygems/test_gem_source_vendor.rb +1 -1
  254. data/test/rubygems/test_gem_spec_fetcher.rb +1 -1
  255. data/test/rubygems/test_gem_specification.rb +15 -165
  256. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  257. data/test/rubygems/test_gem_stub_specification.rb +1 -1
  258. data/test/rubygems/test_gem_text.rb +1 -1
  259. data/test/rubygems/test_gem_uninstaller.rb +1 -1
  260. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +1 -1
  261. data/test/rubygems/test_gem_uri.rb +39 -0
  262. data/test/rubygems/test_gem_uri_formatter.rb +1 -1
  263. data/test/rubygems/test_gem_util.rb +1 -1
  264. data/test/rubygems/test_gem_validator.rb +1 -1
  265. data/test/rubygems/test_gem_version.rb +1 -1
  266. data/test/rubygems/test_gem_version_option.rb +1 -1
  267. data/test/rubygems/test_kernel.rb +1 -1
  268. data/test/rubygems/test_project_sanity.rb +1 -1
  269. data/test/rubygems/test_remote_fetch_error.rb +1 -1
  270. data/test/rubygems/test_require.rb +1 -1
  271. data/test/rubygems/test_rubygems.rb +44 -0
  272. data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +0 -2
  273. metadata +10 -10
  274. data/lib/rubygems/syck_hack.rb +0 -77
  275. data/lib/rubygems/uri_parser.rb +0 -34
  276. data/lib/rubygems/uri_parsing.rb +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4e4aacbfe1b4e9161fb46d8c061fbeef0eb1021c6637e728b21411c0bc98027
4
- data.tar.gz: 9b2e7347fce9d278b068fa8f61ae126b884a70b21d2b14b2628fce82c5db8442
3
+ metadata.gz: ef3b3d5da1e7cb11b95714c00fa4e0b0026112870503550c694d5c502dab5339
4
+ data.tar.gz: 7ec21881232ed07b1061a4570f5af5e80246f74cd20e8a27592f45c609c70f8d
5
5
  SHA512:
6
- metadata.gz: 1dba7bb0f85830a5751e4c35393681a1f724039d0b1f0d7477d89fb7c8d32c3d9e7037dcb9410c1219b282070f2e518328c6220618a8adb86ff6e5783a62e804
7
- data.tar.gz: c35f72c29ee46ad3f8f9d343d480a33b8d5cd7dcb07bbf272722fd9462b1c62a8dde6814e822a309c0e04dfd6c7e0b45d2ad4a35bf758a406782dde7f947fa93
6
+ metadata.gz: 4806038e2893fd4957e02b09f6ed6289ec5759142c8ba3329500b5423aa4d1e6dddeb3f2f218667bfd17791b886f0a7d436b465795368217d9ee7e94d0e4479f
7
+ data.tar.gz: 680548baf911d819513df953d56005d4bf59f903d5a37dc0fb24eb057f5e0cf7bcf77cad9821efb9962f95c13353f0858538ddc1ebc5844f31f8237d83e48c4b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,60 @@
1
+ # 3.2.28 / 2021-09-23
2
+
3
+ ## Enhancements:
4
+
5
+ * Support MINGW-UCRT. Pull request #4925 by hsbt
6
+ * Only check if descriptions *start with* FIXME/TODO. Pull request #4841
7
+ by duckinator
8
+ * Avoid loading `uri` unnecessarily when activating gems. Pull request
9
+ #4897 by deivid-rodriguez
10
+
11
+ ## Bug fixes:
12
+
13
+ * Fix redacted credentials being sent to gemserver. Pull request #4919 by
14
+ jdliss
15
+
16
+ # 3.2.27 / 2021-09-03
17
+
18
+ ## Enhancements:
19
+
20
+ * Redact credentails when printing URI. Pull request #4868 by intuxicated
21
+ * Prefer `require_relative` to `require` for internal requires. Pull
22
+ request #4858 by deivid-rodriguez
23
+ * Prioritise gems with higher version for fetching metadata, and stop
24
+ fetching once we find a valid candidate. Pull request #4843 by intuxicated
25
+
26
+ # 3.2.26 / 2021-08-17
27
+
28
+ ## Enhancements:
29
+
30
+ * Enhance the error handling for loading the
31
+ `rubygems/defaults/operating_system` file. Pull request #4824 by
32
+ intuxicated
33
+ * Ignore `RUBYGEMS_GEMDEPS` for the bundler gem. Pull request #4532 by
34
+ deivid-rodriguez
35
+
36
+ ## Bug fixes:
37
+
38
+ * Also load user installed rubygems plugins. Pull request #4829 by
39
+ deivid-rodriguez
40
+
41
+ # 3.2.25 / 2021-07-30
42
+
43
+ ## Enhancements:
44
+
45
+ * Don't load the `base64` library since it's not used. Pull request #4785
46
+ by deivid-rodriguez
47
+ * Don't load the `resolv` library since it's not used. Pull request #4784
48
+ by deivid-rodriguez
49
+ * Lazily load `shellwords` library. Pull request #4783 by deivid-rodriguez
50
+ * Check requirements class before loading marshalled requirements. Pull
51
+ request #4651 by nobu
52
+
53
+ ## Bug fixes:
54
+
55
+ * Add missing `require 'fileutils'` in `Gem::ConfigFile`. Pull request
56
+ #4768 by ybiquitous
57
+
1
58
  # 3.2.24 / 2021-07-15
2
59
 
3
60
  ## Bug fixes:
data/Manifest.txt CHANGED
@@ -378,7 +378,6 @@ lib/rubygems/install_default_message.rb
378
378
  lib/rubygems/install_message.rb
379
379
  lib/rubygems/install_update_options.rb
380
380
  lib/rubygems/installer.rb
381
- lib/rubygems/installer_test_case.rb
382
381
  lib/rubygems/installer_uninstaller_utils.rb
383
382
  lib/rubygems/local_remote_options.rb
384
383
  lib/rubygems/mock_gem_ui.rb
@@ -393,7 +392,6 @@ lib/rubygems/package/source.rb
393
392
  lib/rubygems/package/tar_header.rb
394
393
  lib/rubygems/package/tar_reader.rb
395
394
  lib/rubygems/package/tar_reader/entry.rb
396
- lib/rubygems/package/tar_test_case.rb
397
395
  lib/rubygems/package/tar_writer.rb
398
396
  lib/rubygems/package_task.rb
399
397
  lib/rubygems/path_support.rb
@@ -485,14 +483,10 @@ lib/rubygems/ssl_certs/.document
485
483
  lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem
486
484
  lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem
487
485
  lib/rubygems/stub_specification.rb
488
- lib/rubygems/syck_hack.rb
489
- lib/rubygems/test_case.rb
490
- lib/rubygems/test_utilities.rb
491
486
  lib/rubygems/text.rb
492
487
  lib/rubygems/uninstaller.rb
488
+ lib/rubygems/uri.rb
493
489
  lib/rubygems/uri_formatter.rb
494
- lib/rubygems/uri_parser.rb
495
- lib/rubygems/uri_parsing.rb
496
490
  lib/rubygems/user_interaction.rb
497
491
  lib/rubygems/util.rb
498
492
  lib/rubygems/util/licenses.rb
@@ -527,6 +521,8 @@ test/rubygems/good_rake.rb
527
521
  test/rubygems/grandchild_cert.pem
528
522
  test/rubygems/grandchild_cert_32.pem
529
523
  test/rubygems/grandchild_key.pem
524
+ test/rubygems/helper.rb
525
+ test/rubygems/installer_test_case.rb
530
526
  test/rubygems/invalid_client.pem
531
527
  test/rubygems/invalid_issuer_cert.pem
532
528
  test/rubygems/invalid_issuer_cert_32.pem
@@ -536,6 +532,7 @@ test/rubygems/invalid_signer_cert_32.pem
536
532
  test/rubygems/invalidchild_cert.pem
537
533
  test/rubygems/invalidchild_cert_32.pem
538
534
  test/rubygems/invalidchild_key.pem
535
+ test/rubygems/package/tar_test_case.rb
539
536
  test/rubygems/packages/ascii_binder-0.1.10.1.gem
540
537
  test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem
541
538
  test/rubygems/plugin/exception/rubygems_plugin.rb
@@ -680,6 +677,7 @@ test/rubygems/test_gem_stub_specification.rb
680
677
  test/rubygems/test_gem_text.rb
681
678
  test/rubygems/test_gem_uninstaller.rb
682
679
  test/rubygems/test_gem_unsatisfiable_dependency_error.rb
680
+ test/rubygems/test_gem_uri.rb
683
681
  test/rubygems/test_gem_uri_formatter.rb
684
682
  test/rubygems/test_gem_util.rb
685
683
  test/rubygems/test_gem_validator.rb
@@ -689,6 +687,8 @@ test/rubygems/test_kernel.rb
689
687
  test/rubygems/test_project_sanity.rb
690
688
  test/rubygems/test_remote_fetch_error.rb
691
689
  test/rubygems/test_require.rb
690
+ test/rubygems/test_rubygems.rb
691
+ test/rubygems/utilities.rb
692
692
  test/rubygems/wrong_key_cert.pem
693
693
  test/rubygems/wrong_key_cert_32.pem
694
694
  test/test_changelog_generator.rb
data/bundler/CHANGELOG.md CHANGED
@@ -1,3 +1,65 @@
1
+ # 2.2.28 (September 23, 2021)
2
+
3
+ ## Enhancements:
4
+
5
+ - Use example.com in new gem template, since it will never have a potentially dangerous backing website [#4918](https://github.com/rubygems/rubygems/pull/4918)
6
+ - Deprecate `--install` flag to `bundle remove` and trigger install by default [#4891](https://github.com/rubygems/rubygems/pull/4891)
7
+
8
+ # 2.2.27 (September 3, 2021)
9
+
10
+ ## Enhancements:
11
+
12
+ - Optimize some requires [#4887](https://github.com/rubygems/rubygems/pull/4887)
13
+ - Correctly redact credentials when using x-oauth-basic [#4866](https://github.com/rubygems/rubygems/pull/4866)
14
+
15
+ ## Bug fixes:
16
+
17
+ - Add missing key `branches:` to template for GitHub Actions [#4883](https://github.com/rubygems/rubygems/pull/4883)
18
+ - Fix `bundle plugin install` detection of already installed plugins [#4869](https://github.com/rubygems/rubygems/pull/4869)
19
+ - Make plugin installation idempotent [#4864](https://github.com/rubygems/rubygems/pull/4864)
20
+ - Fix `bundle check` showing duplicated gems when multiple platforms are locked [#4854](https://github.com/rubygems/rubygems/pull/4854)
21
+ - Fix `bundle check` incorrectly considering cached gems [#4853](https://github.com/rubygems/rubygems/pull/4853)
22
+
23
+ # 2.2.26 (August 17, 2021)
24
+
25
+ ## Enhancements:
26
+
27
+ - Remove `RUBYGEMS_GEMDEPS` warning [#4827](https://github.com/rubygems/rubygems/pull/4827)
28
+ - Better defaults for GitHub Actions template generated by `bundle gem` [#4619](https://github.com/rubygems/rubygems/pull/4619)
29
+ - Make `bundle exec` keep file descriptors by default [#4812](https://github.com/rubygems/rubygems/pull/4812)
30
+ - Exclude gemspec file itself from file list of gems generated by `bundle gem` [#4650](https://github.com/rubygems/rubygems/pull/4650)
31
+ - Fix a couple small typos in deprecation / error messages [#4806](https://github.com/rubygems/rubygems/pull/4806)
32
+ - Make script generated by `bundle install --standalone` resilient to moving the application to a differently nested folder when `path` sources are used [#4792](https://github.com/rubygems/rubygems/pull/4792)
33
+ - Exclude CI files and issue templates from file list of gems generated by `bundle gem` [#4033](https://github.com/rubygems/rubygems/pull/4033)
34
+
35
+ ## Bug fixes:
36
+
37
+ - Respect `BUNDLE_USER_HOME` env when choosing config location [#4828](https://github.com/rubygems/rubygems/pull/4828)
38
+ - Fix `bundle gem` on path with spaces [#4816](https://github.com/rubygems/rubygems/pull/4816)
39
+ - Fix bundler hitting the network in some cases where not allowed [#4805](https://github.com/rubygems/rubygems/pull/4805)
40
+
41
+ # 2.2.25 (July 30, 2021)
42
+
43
+ ## Deprecations:
44
+
45
+ - Deprecate Gemfile without an explicit global source [#4779](https://github.com/rubygems/rubygems/pull/4779)
46
+ - Deprecate `bundle cache --path` [#4496](https://github.com/rubygems/rubygems/pull/4496)
47
+
48
+ ## Enhancements:
49
+
50
+ - Give better errors when materialization fails [#4788](https://github.com/rubygems/rubygems/pull/4788)
51
+ - Lazily load `shellwords` library [#4786](https://github.com/rubygems/rubygems/pull/4786)
52
+ - Show original error and backtrace directly on `bundle install` errors instead of a more brittle `gem install` hint [#4778](https://github.com/rubygems/rubygems/pull/4778)
53
+ - Remove LoadError message in regards to requiring a relative file [#4772](https://github.com/rubygems/rubygems/pull/4772)
54
+
55
+ ## Bug fixes:
56
+
57
+ - Fix `BUNDLE_USER_CONFIG` no longer respected as config location [#4797](https://github.com/rubygems/rubygems/pull/4797)
58
+ - Fix `--standalone` installation of default gems [#4782](https://github.com/rubygems/rubygems/pull/4782)
59
+ - Fix `--quiet` flag not printing warnings [#4781](https://github.com/rubygems/rubygems/pull/4781)
60
+ - Fix bundler binstub version selection [#4775](https://github.com/rubygems/rubygems/pull/4775)
61
+ - Fix interrupt handling in Bundler workers [#4767](https://github.com/rubygems/rubygems/pull/4767)
62
+
1
63
  # 2.2.24 (July 15, 2021)
2
64
 
3
65
  ## Bug fixes:
@@ -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 = "2021-07-15".freeze
8
- @git_commit_sha = "d78b1ee235".freeze
7
+ @built_at = "2021-09-23".freeze
8
+ @git_commit_sha = "99b72cbd55".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -9,7 +9,7 @@ module Bundler
9
9
  end
10
10
 
11
11
  def run
12
- Bundler.ui.level = "error" if options[:quiet]
12
+ Bundler.ui.level = "warn" if options[:quiet]
13
13
  Bundler.settings.set_command_option_if_given :path, options[:path]
14
14
  Bundler.settings.set_command_option_if_given :cache_path, options["cache-path"]
15
15
 
@@ -61,7 +61,7 @@ module Bundler
61
61
  end
62
62
 
63
63
  def run
64
- Bundler.ui.level = "error" if options[:quiet]
64
+ Bundler.ui.level = "warn" if options[:quiet]
65
65
  Bundler.settings.validate!
66
66
  check!
67
67
 
@@ -12,12 +12,7 @@ module Bundler
12
12
  @options = options
13
13
  @cmd = args.shift
14
14
  @args = args
15
-
16
- if !Bundler.current_ruby.jruby?
17
- @args << { :close_others => !options.keep_file_descriptors? }
18
- elsif options.keep_file_descriptors?
19
- Bundler.ui.warn "Ruby version #{RUBY_VERSION} defaults to keeping non-standard file descriptors on Kernel#exec."
20
- end
15
+ @args << { :close_others => !options.keep_file_descriptors? } unless Bundler.current_ruby.jruby?
21
16
  end
22
17
 
23
18
  def run
@@ -184,14 +184,15 @@ module Bundler
184
184
  )
185
185
  end
186
186
 
187
- if File.exist?(target) && !File.directory?(target)
187
+ if target.exist? && !target.directory?
188
188
  Bundler.ui.error "Couldn't create a new gem named `#{gem_name}` because there's an existing file named `#{gem_name}`."
189
189
  exit Bundler::BundlerError.all_errors[Bundler::GenericSystemCallError]
190
190
  end
191
191
 
192
192
  if use_git
193
193
  Bundler.ui.info "Initializing git repo in #{target}"
194
- `git init #{target}`
194
+ require "shellwords"
195
+ `git init #{target.to_s.shellescape}`
195
196
 
196
197
  config[:git_default_branch] = File.read("#{target}/.git/HEAD").split("/").last.chomp
197
198
  end
@@ -8,7 +8,7 @@ module Bundler
8
8
  end
9
9
 
10
10
  def run
11
- Bundler.ui.level = "error" if options[:quiet]
11
+ Bundler.ui.level = "warn" if options[:quiet]
12
12
 
13
13
  warn_if_root
14
14
 
@@ -60,7 +60,7 @@ module Bundler
60
60
  installer = Installer.install(Bundler.root, definition, options)
61
61
 
62
62
  Bundler.settings.temporary(:cache_all_platforms => options[:local] ? false : Bundler.settings[:cache_all_platforms]) do
63
- Bundler.load.cache if Bundler.app_cache.exist? && !options["no-cache"] && !Bundler.frozen_bundle?
63
+ Bundler.load.cache(nil, options[:local]) if Bundler.app_cache.exist? && !options["no-cache"] && !Bundler.frozen_bundle?
64
64
  end
65
65
 
66
66
  Bundler.ui.confirm "Bundle complete! #{dependencies_count_for(definition)}, #{gems_installed_for(definition)}."
@@ -83,22 +83,9 @@ module Bundler
83
83
  end
84
84
 
85
85
  Bundler::CLI::Common.output_fund_metadata_summary
86
- rescue GemNotFound, VersionConflict => e
87
- if options[:local] && Bundler.app_cache.exist?
88
- Bundler.ui.warn "Some gems seem to be missing from your #{Bundler.settings.app_cache_path} directory."
89
- end
90
-
91
- unless Bundler.definition.has_rubygems_remotes?
92
- Bundler.ui.warn <<-WARN, :wrap => true
93
- Your Gemfile has no gem server sources. If you need gems that are \
94
- not already on your machine, add a line like this to your Gemfile:
95
- source 'https://rubygems.org'
96
- WARN
97
- end
98
- raise e
99
- rescue Gem::InvalidSpecificationException => e
86
+ rescue Gem::InvalidSpecificationException
100
87
  Bundler.ui.warn "You have one or more invalid gemspecs that need to be fixed."
101
- raise e
88
+ raise
102
89
  end
103
90
 
104
91
  private
@@ -16,7 +16,13 @@ module Bundler
16
16
  specs = if @only_group.any? || @without_group.any?
17
17
  filtered_specs_by_groups
18
18
  else
19
- Bundler.load.specs
19
+ begin
20
+ Bundler.load.specs
21
+ rescue GemNotFound => e
22
+ Bundler.ui.error e.message
23
+ Bundler.ui.warn "Install missing gems with `bundle install`."
24
+ exit 1
25
+ end
20
26
  end.reject {|s| s.name == "bundler" }.sort_by(&:name)
21
27
 
22
28
  return Bundler.ui.info "No gems in the Gemfile" if specs.empty?
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "shellwords"
4
-
5
3
  module Bundler
6
4
  class CLI::Open
7
5
  attr_reader :options, :name
@@ -19,6 +17,7 @@ module Bundler
19
17
  else
20
18
  path = spec.full_gem_path
21
19
  Dir.chdir(path) do
20
+ require "shellwords"
22
21
  command = Shellwords.split(editor) + [path]
23
22
  Bundler.with_original_env do
24
23
  system(*command)
@@ -11,8 +11,7 @@ module Bundler
11
11
  raise InvalidOption, "Please specify gems to remove." if @gems.empty?
12
12
 
13
13
  Injector.remove(@gems, {})
14
-
15
- Installer.install(Bundler.root, Bundler.definition) if @options["install"]
14
+ Installer.install(Bundler.root, Bundler.definition)
16
15
  end
17
16
  end
18
17
  end
@@ -9,7 +9,7 @@ module Bundler
9
9
  end
10
10
 
11
11
  def run
12
- Bundler.ui.level = "error" if options[:quiet]
12
+ Bundler.ui.level = "warn" if options[:quiet]
13
13
 
14
14
  Plugin.gemfile_install(Bundler.default_gemfile) if Bundler.feature_flag.plugins?
15
15
 
@@ -73,14 +73,6 @@ module Bundler
73
73
  Bundler.ui = UI::Shell.new(options)
74
74
  Bundler.ui.level = "debug" if options["verbose"]
75
75
  unprinted_warnings.each {|w| Bundler.ui.warn(w) }
76
-
77
- if ENV["RUBYGEMS_GEMDEPS"] && !ENV["RUBYGEMS_GEMDEPS"].empty?
78
- Bundler.ui.warn(
79
- "The RUBYGEMS_GEMDEPS environment variable is set. This enables RubyGems' " \
80
- "experimental Gemfile mode, which may conflict with Bundler and cause unexpected errors. " \
81
- "To remove this warning, unset RUBYGEMS_GEMDEPS.", :wrap => true
82
- )
83
- end
84
76
  end
85
77
 
86
78
  check_unknown_options!(:except => [:config, :exec])
@@ -192,6 +184,7 @@ module Bundler
192
184
  method_option "install", :type => :boolean, :banner =>
193
185
  "Runs 'bundle install' after removing the gems from the Gemfile"
194
186
  def remove(*gems)
187
+ SharedHelpers.major_deprecation(2, "The `--install` flag has been deprecated. `bundle install` is triggered by default.") if ARGV.include?("--install")
195
188
  require_relative "cli/remove"
196
189
  Remove.new(gems, options).run
197
190
  end
@@ -456,6 +449,12 @@ module Bundler
456
449
  "do in future versions. Instead please use `bundle config set cache_all true`, " \
457
450
  "and stop using this flag" if ARGV.include?("--all")
458
451
 
452
+ SharedHelpers.major_deprecation 2,
453
+ "The `--path` flag is deprecated because its semantics are unclear. " \
454
+ "Use `bundle config cache_path` to configure the path of your cache of gems, " \
455
+ "and `bundle config path` to configure the path where your gems are installed, " \
456
+ "and stop using this flag" if ARGV.include?("--path")
457
+
459
458
  require_relative "cli/cache"
460
459
  Cache.new(options).run
461
460
  end
@@ -463,7 +462,7 @@ module Bundler
463
462
  map aliases_for("cache")
464
463
 
465
464
  desc "exec [OPTIONS]", "Run the command in context of the bundle"
466
- method_option :keep_file_descriptors, :type => :boolean, :default => false
465
+ method_option :keep_file_descriptors, :type => :boolean, :default => true
467
466
  method_option :gemfile, :type => :string, :required => false
468
467
  long_desc <<-D
469
468
  Exec runs a command, providing it access to the gems in the bundle. While using
@@ -471,6 +470,10 @@ module Bundler
471
470
  into the system wide RubyGems repository.
472
471
  D
473
472
  def exec(*args)
473
+ if ARGV.include?("--no-keep-file-descriptors")
474
+ SharedHelpers.major_deprecation(2, "The `--no-keep-file-descriptors` has been deprecated. `bundle exec` no longer mess with your file descriptors. Close them in the exec'd script if you need to")
475
+ end
476
+
474
477
  require_relative "cli/exec"
475
478
  Exec.new(options, args).run
476
479
  end
@@ -133,7 +133,7 @@ module Bundler
133
133
  @unlock[:gems] ||= @dependencies.map(&:name)
134
134
  else
135
135
  eager_unlock = expand_dependencies(@unlock[:gems] || [], true)
136
- @unlock[:gems] = @locked_specs.for(eager_unlock, false, false, false).map(&:name)
136
+ @unlock[:gems] = @locked_specs.for(eager_unlock, false, false).map(&:name)
137
137
  end
138
138
 
139
139
  @dependency_changes = converge_dependencies
@@ -185,15 +185,7 @@ module Bundler
185
185
  #
186
186
  # @return [Bundler::SpecSet]
187
187
  def specs
188
- @specs ||= add_bundler_to(resolve.materialize(requested_dependencies))
189
- rescue GemNotFound => e # Handle yanked gem
190
- gem_name, gem_version = extract_gem_info(e)
191
- locked_gem = @locked_specs[gem_name].last
192
- raise if locked_gem.nil? || locked_gem.version.to_s != gem_version || !@remote
193
- raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \
194
- "no longer be found in that source. That means the author of #{locked_gem} has removed it. " \
195
- "You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \
196
- "removed in order to install."
188
+ @specs ||= materialize(requested_dependencies)
197
189
  end
198
190
 
199
191
  def new_specs
@@ -205,9 +197,7 @@ module Bundler
205
197
  end
206
198
 
207
199
  def missing_specs
208
- missing = []
209
- resolve.materialize(requested_dependencies, missing)
210
- missing
200
+ resolve.materialize(requested_dependencies).missing_specs
211
201
  end
212
202
 
213
203
  def missing_specs?
@@ -241,7 +231,7 @@ module Bundler
241
231
  def specs_for(groups)
242
232
  groups = requested_groups if groups.empty?
243
233
  deps = dependencies_for(groups)
244
- add_bundler_to(resolve.materialize(expand_dependencies(deps)))
234
+ materialize(expand_dependencies(deps))
245
235
  end
246
236
 
247
237
  def dependencies_for(groups)
@@ -274,10 +264,6 @@ module Bundler
274
264
  end
275
265
  end
276
266
 
277
- def has_rubygems_remotes?
278
- sources.rubygems_sources.any? {|s| s.remotes.any? }
279
- end
280
-
281
267
  def spec_git_paths
282
268
  sources.git_sources.map {|s| File.realpath(s.path) if File.exist?(s.path) }.compact
283
269
  end
@@ -493,7 +479,23 @@ module Bundler
493
479
 
494
480
  private
495
481
 
496
- def add_bundler_to(specs)
482
+ def materialize(dependencies)
483
+ specs = resolve.materialize(dependencies)
484
+ missing_specs = specs.missing_specs
485
+
486
+ if missing_specs.any?
487
+ missing_specs.each do |s|
488
+ locked_gem = @locked_specs[s.name].last
489
+ next if locked_gem.nil? || locked_gem.version != s.version || !@remote
490
+ raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \
491
+ "no longer be found in that source. That means the author of #{locked_gem} has removed it. " \
492
+ "You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \
493
+ "removed in order to install."
494
+ end
495
+
496
+ raise GemNotFound, "Could not find #{missing_specs.map(&:full_name).join(", ")} in any of the sources"
497
+ end
498
+
497
499
  unless specs["bundler"].any?
498
500
  bundler = sources.metadata_source.specs.search(Gem::Dependency.new("bundler", VERSION)).last
499
501
  specs["bundler"] = bundler
@@ -503,7 +505,7 @@ module Bundler
503
505
  end
504
506
 
505
507
  def precompute_source_requirements_for_indirect_dependencies?
506
- sources.non_global_rubygems_sources.all?(&:dependency_api_available?) && !sources.aggregate_global_source?
508
+ @remote && sources.non_global_rubygems_sources.all?(&:dependency_api_available?) && !sources.aggregate_global_source?
507
509
  end
508
510
 
509
511
  def current_ruby_platform_locked?
@@ -712,7 +714,7 @@ module Bundler
712
714
  @locked_specs.each do |s|
713
715
  # Replace the locked dependency's source with the equivalent source from the Gemfile
714
716
  dep = @dependencies.find {|d| s.satisfies?(d) }
715
- s.source = (dep && dep.source) || sources.get(s.source)
717
+ s.source = (dep && dep.source) || sources.get(s.source) unless multisource_allowed?
716
718
 
717
719
  # Don't add a spec to the list if its source is expired. For example,
718
720
  # if you change a Git gem to RubyGems.
@@ -730,7 +732,7 @@ module Bundler
730
732
  # if we won't need the source (according to the lockfile),
731
733
  # don't error if the path/git source isn't available
732
734
  next if @locked_specs.
733
- for(requested_dependencies, false, true, false).
735
+ for(requested_dependencies, false, true).
734
736
  none? {|locked_spec| locked_spec.source == s.source }
735
737
 
736
738
  raise
@@ -750,7 +752,7 @@ module Bundler
750
752
 
751
753
  resolve = SpecSet.new(converged)
752
754
  @locked_specs_incomplete_for_platform = !resolve.for(expand_dependencies(requested_dependencies & deps), true, true)
753
- resolve = SpecSet.new(resolve.for(expand_dependencies(deps, true), false, false, false).reject{|s| @unlock[:gems].include?(s.name) })
755
+ resolve = SpecSet.new(resolve.for(expand_dependencies(deps, true), false, false).reject{|s| @unlock[:gems].include?(s.name) })
754
756
  diff = nil
755
757
 
756
758
  # Now, we unlock any sources that do not have anymore gems pinned to it
@@ -854,12 +856,6 @@ module Bundler
854
856
  current == proposed
855
857
  end
856
858
 
857
- def extract_gem_info(error)
858
- # This method will extract the error message like "Could not find foo-1.2.3 in any of the sources"
859
- # to an array. The first element will be the gem name (e.g. foo), the second will be the version number.
860
- error.message.scan(/Could not find (\w+)-(\d+(?:\.\d+)+)/).flatten
861
- end
862
-
863
859
  def compute_requires
864
860
  dependencies.reduce({}) do |requires, dep|
865
861
  next requires unless dep.should_include?
@@ -447,8 +447,21 @@ repo_name ||= user_name
447
447
  end
448
448
 
449
449
  def check_rubygems_source_safety
450
- return unless @sources.aggregate_global_source?
450
+ if @sources.implicit_global_source?
451
+ implicit_global_source_warning
452
+ elsif @sources.aggregate_global_source?
453
+ multiple_global_source_warning
454
+ end
455
+ end
456
+
457
+ def implicit_global_source_warning
458
+ Bundler::SharedHelpers.major_deprecation 2, "This Gemfile does not include an explicit global source. " \
459
+ "Not using an explicit global source may result in a different lockfile being generated depending on " \
460
+ "the gems you have installed locally before bundler is run. " \
461
+ "Instead, define a global source in your Gemfile like this: source \"https://rubygems.org\"."
462
+ end
451
463
 
464
+ def multiple_global_source_warning
452
465
  if Bundler.feature_flag.bundler_3_mode?
453
466
  msg = "This Gemfile contains multiple primary sources. " \
454
467
  "Each source after the first must include a block to indicate which gems " \
@@ -122,7 +122,7 @@ module Bundler
122
122
 
123
123
  class VirtualProtocolError < BundlerError
124
124
  def message
125
- "There was an error relating to virtualization and file access." \
125
+ "There was an error relating to virtualization and file access. " \
126
126
  "It is likely that you need to grant access to or mount some file system correctly."
127
127
  end
128
128
 
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "shellwords"
4
-
5
3
  module Bundler
6
4
  class GemInstaller
7
5
  attr_reader :spec, :standalone, :worker, :force, :installer
@@ -31,34 +29,23 @@ module Bundler
31
29
 
32
30
  def specific_failure_message(e)
33
31
  message = "#{e.class}: #{e.message}\n"
34
- message += " " + e.backtrace.join("\n ") + "\n\n" if Bundler.ui.debug?
32
+ message += " " + e.backtrace.join("\n ") + "\n\n"
35
33
  message = message.lines.first + Bundler.ui.add_color(message.lines.drop(1).join, :clear)
36
34
  message + Bundler.ui.add_color(failure_message, :red)
37
35
  end
38
36
 
39
37
  def failure_message
40
- return install_error_message if spec.source.options["git"]
41
- "#{install_error_message}\n#{gem_install_message}"
38
+ install_error_message
42
39
  end
43
40
 
44
41
  def install_error_message
45
42
  "An error occurred while installing #{spec.name} (#{spec.version}), and Bundler cannot continue."
46
43
  end
47
44
 
48
- def gem_install_message
49
- source = spec.source
50
- return unless source.respond_to?(:remotes)
51
-
52
- if source.remotes.size == 1
53
- "Make sure that `gem install #{spec.name} -v '#{spec.version}' --source '#{source.remotes.first}'` succeeds before bundling."
54
- else
55
- "Make sure that `gem install #{spec.name} -v '#{spec.version}'` succeeds before bundling."
56
- end
57
- end
58
-
59
45
  def spec_settings
60
46
  # Fetch the build settings, if there are any
61
47
  if settings = Bundler.settings["build.#{spec.name}"]
48
+ require "shellwords"
62
49
  Shellwords.shellsplit(settings)
63
50
  end
64
51
  end