rubygems-update 3.2.23 → 3.2.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (275) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/Manifest.txt +7 -7
  4. data/bundler/CHANGELOG.md +68 -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/update.rb +1 -1
  14. data/bundler/lib/bundler/cli.rb +12 -9
  15. data/bundler/lib/bundler/definition.rb +38 -47
  16. data/bundler/lib/bundler/dsl.rb +40 -26
  17. data/bundler/lib/bundler/errors.rb +1 -1
  18. data/bundler/lib/bundler/installer/gem_installer.rb +3 -16
  19. data/bundler/lib/bundler/installer/standalone.rb +14 -9
  20. data/bundler/lib/bundler/installer.rb +0 -1
  21. data/bundler/lib/bundler/lockfile_parser.rb +1 -0
  22. data/bundler/lib/bundler/plugin/index.rb +4 -1
  23. data/bundler/lib/bundler/plugin/installer.rb +2 -0
  24. data/bundler/lib/bundler/plugin.rb +25 -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 +16 -9
  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 +14 -37
  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 +3 -1
  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 +4 -3
  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 +1 -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/specification.rb +1 -1
  112. data/lib/rubygems/resolver.rb +31 -31
  113. data/lib/rubygems/s3_uri_signer.rb +0 -1
  114. data/lib/rubygems/safe_yaml.rb +0 -2
  115. data/lib/rubygems/security/policy.rb +1 -1
  116. data/lib/rubygems/security/signer.rb +1 -1
  117. data/lib/rubygems/security.rb +5 -5
  118. data/lib/rubygems/security_option.rb +2 -2
  119. data/lib/rubygems/server.rb +2 -2
  120. data/lib/rubygems/source.rb +6 -6
  121. data/lib/rubygems/spec_fetcher.rb +5 -5
  122. data/lib/rubygems/specification.rb +9 -15
  123. data/lib/rubygems/specification_policy.rb +1 -1
  124. data/lib/rubygems/uninstaller.rb +42 -11
  125. data/lib/rubygems/uri.rb +102 -0
  126. data/lib/rubygems/user_interaction.rb +2 -2
  127. data/lib/rubygems/util/licenses.rb +1 -1
  128. data/lib/rubygems/validator.rb +2 -2
  129. data/lib/rubygems/version_option.rb +1 -1
  130. data/lib/rubygems.rb +37 -47
  131. data/rubygems-update.gemspec +1 -1
  132. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  133. data/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +16 -19
  134. data/{lib → test}/rubygems/installer_test_case.rb +1 -1
  135. data/{lib → test}/rubygems/package/tar_test_case.rb +1 -1
  136. data/test/rubygems/test_bundled_ca.rb +1 -1
  137. data/test/rubygems/test_config.rb +1 -1
  138. data/test/rubygems/test_deprecate.rb +1 -1
  139. data/test/rubygems/test_gem.rb +190 -136
  140. data/test/rubygems/test_gem_available_set.rb +1 -1
  141. data/test/rubygems/test_gem_bundler_version_finder.rb +1 -1
  142. data/test/rubygems/test_gem_command.rb +1 -1
  143. data/test/rubygems/test_gem_command_manager.rb +1 -1
  144. data/test/rubygems/test_gem_commands_build_command.rb +1 -1
  145. data/test/rubygems/test_gem_commands_cert_command.rb +1 -1
  146. data/test/rubygems/test_gem_commands_check_command.rb +1 -1
  147. data/test/rubygems/test_gem_commands_cleanup_command.rb +1 -1
  148. data/test/rubygems/test_gem_commands_contents_command.rb +1 -1
  149. data/test/rubygems/test_gem_commands_dependency_command.rb +1 -1
  150. data/test/rubygems/test_gem_commands_environment_command.rb +1 -1
  151. data/test/rubygems/test_gem_commands_fetch_command.rb +1 -1
  152. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -1
  153. data/test/rubygems/test_gem_commands_help_command.rb +1 -1
  154. data/test/rubygems/test_gem_commands_info_command.rb +1 -1
  155. data/test/rubygems/test_gem_commands_install_command.rb +26 -1
  156. data/test/rubygems/test_gem_commands_list_command.rb +1 -1
  157. data/test/rubygems/test_gem_commands_lock_command.rb +1 -1
  158. data/test/rubygems/test_gem_commands_mirror.rb +1 -1
  159. data/test/rubygems/test_gem_commands_open_command.rb +1 -1
  160. data/test/rubygems/test_gem_commands_outdated_command.rb +1 -1
  161. data/test/rubygems/test_gem_commands_owner_command.rb +1 -1
  162. data/test/rubygems/test_gem_commands_pristine_command.rb +1 -1
  163. data/test/rubygems/test_gem_commands_push_command.rb +1 -1
  164. data/test/rubygems/test_gem_commands_query_command.rb +1 -1
  165. data/test/rubygems/test_gem_commands_search_command.rb +1 -1
  166. data/test/rubygems/test_gem_commands_server_command.rb +1 -1
  167. data/test/rubygems/test_gem_commands_setup_command.rb +3 -3
  168. data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
  169. data/test/rubygems/test_gem_commands_signout_command.rb +1 -1
  170. data/test/rubygems/test_gem_commands_sources_command.rb +1 -1
  171. data/test/rubygems/test_gem_commands_specification_command.rb +1 -1
  172. data/test/rubygems/test_gem_commands_stale_command.rb +1 -1
  173. data/test/rubygems/test_gem_commands_uninstall_command.rb +1 -1
  174. data/test/rubygems/test_gem_commands_unpack_command.rb +1 -1
  175. data/test/rubygems/test_gem_commands_update_command.rb +1 -1
  176. data/test/rubygems/test_gem_commands_which_command.rb +1 -1
  177. data/test/rubygems/test_gem_commands_yank_command.rb +1 -1
  178. data/test/rubygems/test_gem_config_file.rb +1 -1
  179. data/test/rubygems/test_gem_dependency.rb +1 -1
  180. data/test/rubygems/test_gem_dependency_installer.rb +1 -1
  181. data/test/rubygems/test_gem_dependency_list.rb +1 -1
  182. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -1
  183. data/test/rubygems/test_gem_doctor.rb +1 -1
  184. data/test/rubygems/test_gem_ext_builder.rb +4 -1
  185. data/test/rubygems/test_gem_ext_cmake_builder.rb +1 -1
  186. data/test/rubygems/test_gem_ext_configure_builder.rb +1 -1
  187. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +1 -1
  188. data/test/rubygems/test_gem_ext_rake_builder.rb +1 -1
  189. data/test/rubygems/test_gem_gem_runner.rb +1 -1
  190. data/test/rubygems/test_gem_gemcutter_utilities.rb +1 -1
  191. data/test/rubygems/test_gem_impossible_dependencies_error.rb +1 -1
  192. data/test/rubygems/test_gem_indexer.rb +1 -1
  193. data/test/rubygems/test_gem_install_update_options.rb +1 -1
  194. data/test/rubygems/test_gem_installer.rb +4 -2
  195. data/test/rubygems/test_gem_local_remote_options.rb +1 -1
  196. data/test/rubygems/test_gem_name_tuple.rb +1 -1
  197. data/test/rubygems/test_gem_package.rb +1 -1
  198. data/test/rubygems/test_gem_package_old.rb +1 -1
  199. data/test/rubygems/test_gem_package_tar_header.rb +1 -1
  200. data/test/rubygems/test_gem_package_tar_reader.rb +1 -1
  201. data/test/rubygems/test_gem_package_tar_reader_entry.rb +1 -1
  202. data/test/rubygems/test_gem_package_tar_writer.rb +1 -1
  203. data/test/rubygems/test_gem_package_task.rb +1 -1
  204. data/test/rubygems/test_gem_path_support.rb +1 -1
  205. data/test/rubygems/test_gem_platform.rb +1 -1
  206. data/test/rubygems/test_gem_rdoc.rb +1 -1
  207. data/test/rubygems/test_gem_remote_fetcher.rb +31 -1
  208. data/test/rubygems/test_gem_request.rb +31 -5
  209. data/test/rubygems/test_gem_request_connection_pools.rb +1 -1
  210. data/test/rubygems/test_gem_request_set.rb +1 -1
  211. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +1 -1
  212. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -1
  213. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +1 -1
  214. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
  215. data/test/rubygems/test_gem_requirement.rb +35 -1
  216. data/test/rubygems/test_gem_resolver.rb +1 -1
  217. data/test/rubygems/test_gem_resolver_activation_request.rb +1 -1
  218. data/test/rubygems/test_gem_resolver_api_set.rb +1 -1
  219. data/test/rubygems/test_gem_resolver_api_specification.rb +1 -1
  220. data/test/rubygems/test_gem_resolver_best_set.rb +1 -1
  221. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
  222. data/test/rubygems/test_gem_resolver_conflict.rb +1 -1
  223. data/test/rubygems/test_gem_resolver_dependency_request.rb +1 -1
  224. data/test/rubygems/test_gem_resolver_git_set.rb +1 -1
  225. data/test/rubygems/test_gem_resolver_git_specification.rb +2 -1
  226. data/test/rubygems/test_gem_resolver_index_set.rb +1 -1
  227. data/test/rubygems/test_gem_resolver_index_specification.rb +1 -1
  228. data/test/rubygems/test_gem_resolver_installed_specification.rb +1 -1
  229. data/test/rubygems/test_gem_resolver_installer_set.rb +19 -1
  230. data/test/rubygems/test_gem_resolver_local_specification.rb +1 -1
  231. data/test/rubygems/test_gem_resolver_lock_set.rb +1 -1
  232. data/test/rubygems/test_gem_resolver_lock_specification.rb +1 -1
  233. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
  234. data/test/rubygems/test_gem_resolver_specification.rb +1 -1
  235. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -1
  236. data/test/rubygems/test_gem_resolver_vendor_specification.rb +1 -1
  237. data/test/rubygems/test_gem_security.rb +1 -1
  238. data/test/rubygems/test_gem_security_policy.rb +1 -1
  239. data/test/rubygems/test_gem_security_signer.rb +1 -1
  240. data/test/rubygems/test_gem_security_trust_dir.rb +1 -1
  241. data/test/rubygems/test_gem_server.rb +1 -1
  242. data/test/rubygems/test_gem_silent_ui.rb +1 -1
  243. data/test/rubygems/test_gem_source.rb +1 -1
  244. data/test/rubygems/test_gem_source_fetch_problem.rb +1 -1
  245. data/test/rubygems/test_gem_source_git.rb +1 -1
  246. data/test/rubygems/test_gem_source_installed.rb +1 -1
  247. data/test/rubygems/test_gem_source_list.rb +1 -1
  248. data/test/rubygems/test_gem_source_local.rb +1 -1
  249. data/test/rubygems/test_gem_source_lock.rb +1 -1
  250. data/test/rubygems/test_gem_source_specific_file.rb +1 -1
  251. data/test/rubygems/test_gem_source_subpath_problem.rb +1 -1
  252. data/test/rubygems/test_gem_source_vendor.rb +1 -1
  253. data/test/rubygems/test_gem_spec_fetcher.rb +1 -1
  254. data/test/rubygems/test_gem_specification.rb +1 -165
  255. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  256. data/test/rubygems/test_gem_stub_specification.rb +1 -1
  257. data/test/rubygems/test_gem_text.rb +1 -1
  258. data/test/rubygems/test_gem_uninstaller.rb +10 -3
  259. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +1 -1
  260. data/test/rubygems/test_gem_uri.rb +32 -0
  261. data/test/rubygems/test_gem_uri_formatter.rb +1 -1
  262. data/test/rubygems/test_gem_util.rb +1 -1
  263. data/test/rubygems/test_gem_validator.rb +1 -1
  264. data/test/rubygems/test_gem_version.rb +1 -1
  265. data/test/rubygems/test_gem_version_option.rb +1 -1
  266. data/test/rubygems/test_kernel.rb +1 -1
  267. data/test/rubygems/test_project_sanity.rb +1 -1
  268. data/test/rubygems/test_remote_fetch_error.rb +1 -1
  269. data/test/rubygems/test_require.rb +1 -1
  270. data/test/rubygems/test_rubygems.rb +44 -0
  271. data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +0 -2
  272. metadata +10 -10
  273. data/lib/rubygems/syck_hack.rb +0 -77
  274. data/lib/rubygems/uri_parser.rb +0 -34
  275. data/lib/rubygems/uri_parsing.rb +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 34d592c07f3fc05d6a1201bb1cd26e0ace4cbced2f6030cdc552a8f8fc2a384f
4
- data.tar.gz: 4cc3ad43ce2aad0c4787622f521b1d10fac300dc68b17926067f26b69c64f558
3
+ metadata.gz: 3ce1a1e494194a4df6708ff29699aa24f85cae78793b58ea82a9432d80fc7d58
4
+ data.tar.gz: 5a922a7db514f0b88f2b93aea3c830086362ee161f85146dd3f2fd7113e4c405
5
5
  SHA512:
6
- metadata.gz: 1e8ae581d0b154dc77f54c9235c186034a374f456d3f226157c6a9852389c047449cfb7d8959258fceef79ce6f6695d0aa2ad4c003c0cd4968f3fffa81c60c6a
7
- data.tar.gz: fe0aa438ee051a2f4e66c309f3d5945d53deba4ddf63a2118ad68a859591c17a2b30dd9f88d76be84b99c167b34627da43c49ee3eca929ced2926a6ed6a8000a
6
+ metadata.gz: 49129d596674dd6f3ed1e5192ff959bcaee181eb9940871b75728d29f4bc09c18ab8edcccdd31de259048e3c58fec08738f7c065d345b701863ea4a5772ef980
7
+ data.tar.gz: c303eb6c77393bd3770e962b2bd3af13725af4626b952b2ea7ad012f85dd96879615306727ed1882935476087bd7f4222692dc602b9e891b9b66b9bd8d6fc14c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,57 @@
1
+ # 3.2.27 / 2021-09-03
2
+
3
+ ## Enhancements:
4
+
5
+ * Redact credentails when printing URI. Pull request #4868 by intuxicated
6
+ * Prefer `require_relative` to `require` for internal requires. Pull
7
+ request #4858 by deivid-rodriguez
8
+ * Prioritise gems with higher version for fetching metadata, and stop
9
+ fetching once we find a valid candidate. Pull request #4843 by intuxicated
10
+
11
+ # 3.2.26 / 2021-08-17
12
+
13
+ ## Enhancements:
14
+
15
+ * Enhance the error handling for loading the
16
+ `rubygems/defaults/operating_system` file. Pull request #4824 by
17
+ intuxicated
18
+ * Ignore `RUBYGEMS_GEMDEPS` for the bundler gem. Pull request #4532 by
19
+ deivid-rodriguez
20
+
21
+ ## Bug fixes:
22
+
23
+ * Also load user installed rubygems plugins. Pull request #4829 by
24
+ deivid-rodriguez
25
+
26
+ # 3.2.25 / 2021-07-30
27
+
28
+ ## Enhancements:
29
+
30
+ * Don't load the `base64` library since it's not used. Pull request #4785
31
+ by deivid-rodriguez
32
+ * Don't load the `resolv` library since it's not used. Pull request #4784
33
+ by deivid-rodriguez
34
+ * Lazily load `shellwords` library. Pull request #4783 by deivid-rodriguez
35
+ * Check requirements class before loading marshalled requirements. Pull
36
+ request #4651 by nobu
37
+
38
+ ## Bug fixes:
39
+
40
+ * Add missing `require 'fileutils'` in `Gem::ConfigFile`. Pull request
41
+ #4768 by ybiquitous
42
+
43
+ # 3.2.24 / 2021-07-15
44
+
45
+ ## Bug fixes:
46
+
47
+ * Fix contradictory message about deletion of default gem. Pull request
48
+ #4739 by jaredbeck
49
+
50
+ ## Documentation:
51
+
52
+ * Add a description about `GEM_HOST_OTP_CODE` to help text. Pull request
53
+ #4742 by ybiquitous
54
+
1
55
  # 3.2.23 / 2021-07-09
2
56
 
3
57
  ## Enhancements:
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,71 @@
1
+ # 2.2.27 (September 3, 2021)
2
+
3
+ ## Enhancements:
4
+
5
+ - Optimize some requires [#4887](https://github.com/rubygems/rubygems/pull/4887)
6
+ - Correctly redact credentials when using x-oauth-basic [#4866](https://github.com/rubygems/rubygems/pull/4866)
7
+
8
+ ## Bug fixes:
9
+
10
+ - Add missing key `branches:` to template for GitHub Actions [#4883](https://github.com/rubygems/rubygems/pull/4883)
11
+ - Fix `bundle plugin install` detection of already installed plugins [#4869](https://github.com/rubygems/rubygems/pull/4869)
12
+ - Make plugin installation idempotent [#4864](https://github.com/rubygems/rubygems/pull/4864)
13
+ - Fix `bundle check` showing duplicated gems when multiple platforms are locked [#4854](https://github.com/rubygems/rubygems/pull/4854)
14
+ - Fix `bundle check` incorrectly considering cached gems [#4853](https://github.com/rubygems/rubygems/pull/4853)
15
+
16
+ # 2.2.26 (August 17, 2021)
17
+
18
+ ## Enhancements:
19
+
20
+ - Remove `RUBYGEMS_GEMDEPS` warning [#4827](https://github.com/rubygems/rubygems/pull/4827)
21
+ - Better defaults for GitHub Actions template generated by `bundle gem` [#4619](https://github.com/rubygems/rubygems/pull/4619)
22
+ - Make `bundle exec` keep file descriptors by default [#4812](https://github.com/rubygems/rubygems/pull/4812)
23
+ - Exclude gemspec file itself from file list of gems generated by `bundle gem` [#4650](https://github.com/rubygems/rubygems/pull/4650)
24
+ - Fix a couple small typos in deprecation / error messages [#4806](https://github.com/rubygems/rubygems/pull/4806)
25
+ - 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)
26
+ - Exclude CI files and issue templates from file list of gems generated by `bundle gem` [#4033](https://github.com/rubygems/rubygems/pull/4033)
27
+
28
+ ## Bug fixes:
29
+
30
+ - Respect `BUNDLE_USER_HOME` env when choosing config location [#4828](https://github.com/rubygems/rubygems/pull/4828)
31
+ - Fix `bundle gem` on path with spaces [#4816](https://github.com/rubygems/rubygems/pull/4816)
32
+ - Fix bundler hitting the network in some cases where not allowed [#4805](https://github.com/rubygems/rubygems/pull/4805)
33
+
34
+ # 2.2.25 (July 30, 2021)
35
+
36
+ ## Deprecations:
37
+
38
+ - Deprecate Gemfile without an explicit global source [#4779](https://github.com/rubygems/rubygems/pull/4779)
39
+ - Deprecate `bundle cache --path` [#4496](https://github.com/rubygems/rubygems/pull/4496)
40
+
41
+ ## Enhancements:
42
+
43
+ - Give better errors when materialization fails [#4788](https://github.com/rubygems/rubygems/pull/4788)
44
+ - Lazily load `shellwords` library [#4786](https://github.com/rubygems/rubygems/pull/4786)
45
+ - 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)
46
+ - Remove LoadError message in regards to requiring a relative file [#4772](https://github.com/rubygems/rubygems/pull/4772)
47
+
48
+ ## Bug fixes:
49
+
50
+ - Fix `BUNDLE_USER_CONFIG` no longer respected as config location [#4797](https://github.com/rubygems/rubygems/pull/4797)
51
+ - Fix `--standalone` installation of default gems [#4782](https://github.com/rubygems/rubygems/pull/4782)
52
+ - Fix `--quiet` flag not printing warnings [#4781](https://github.com/rubygems/rubygems/pull/4781)
53
+ - Fix bundler binstub version selection [#4775](https://github.com/rubygems/rubygems/pull/4775)
54
+ - Fix interrupt handling in Bundler workers [#4767](https://github.com/rubygems/rubygems/pull/4767)
55
+
56
+ # 2.2.24 (July 15, 2021)
57
+
58
+ ## Bug fixes:
59
+
60
+ - Fix development gem unintentionally removed on an edge case [#4751](https://github.com/rubygems/rubygems/pull/4751)
61
+ - Fix dangling empty plugin hooks [#4755](https://github.com/rubygems/rubygems/pull/4755)
62
+ - Fix `bundle plugin install --help` showing `bundle install`'s help [#4756](https://github.com/rubygems/rubygems/pull/4756)
63
+ - Make sure `bundle check` shows uniq missing gems [#4749](https://github.com/rubygems/rubygems/pull/4749)
64
+
65
+ ## Performance:
66
+
67
+ - Slightly speed up `bundler/setup` [#4750](https://github.com/rubygems/rubygems/pull/4750)
68
+
1
69
  # 2.2.23 (July 9, 2021)
2
70
 
3
71
  ## Enhancements:
@@ -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-09".freeze
8
- @git_commit_sha = "e863a3905d".freeze
7
+ @built_at = "2021-09-03".freeze
8
+ @git_commit_sha = "b737e1c930".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)
@@ -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
 
@@ -14,6 +14,7 @@ module Bundler
14
14
  COMMAND_ALIASES = {
15
15
  "check" => "c",
16
16
  "install" => "i",
17
+ "plugin" => "",
17
18
  "list" => "ls",
18
19
  "exec" => ["e", "ex", "exe"],
19
20
  "cache" => ["package", "pack"],
@@ -72,14 +73,6 @@ module Bundler
72
73
  Bundler.ui = UI::Shell.new(options)
73
74
  Bundler.ui.level = "debug" if options["verbose"]
74
75
  unprinted_warnings.each {|w| Bundler.ui.warn(w) }
75
-
76
- if ENV["RUBYGEMS_GEMDEPS"] && !ENV["RUBYGEMS_GEMDEPS"].empty?
77
- Bundler.ui.warn(
78
- "The RUBYGEMS_GEMDEPS environment variable is set. This enables RubyGems' " \
79
- "experimental Gemfile mode, which may conflict with Bundler and cause unexpected errors. " \
80
- "To remove this warning, unset RUBYGEMS_GEMDEPS.", :wrap => true
81
- )
82
- end
83
76
  end
84
77
 
85
78
  check_unknown_options!(:except => [:config, :exec])
@@ -455,6 +448,12 @@ module Bundler
455
448
  "do in future versions. Instead please use `bundle config set cache_all true`, " \
456
449
  "and stop using this flag" if ARGV.include?("--all")
457
450
 
451
+ SharedHelpers.major_deprecation 2,
452
+ "The `--path` flag is deprecated because its semantics are unclear. " \
453
+ "Use `bundle config cache_path` to configure the path of your cache of gems, " \
454
+ "and `bundle config path` to configure the path where your gems are installed, " \
455
+ "and stop using this flag" if ARGV.include?("--path")
456
+
458
457
  require_relative "cli/cache"
459
458
  Cache.new(options).run
460
459
  end
@@ -462,7 +461,7 @@ module Bundler
462
461
  map aliases_for("cache")
463
462
 
464
463
  desc "exec [OPTIONS]", "Run the command in context of the bundle"
465
- method_option :keep_file_descriptors, :type => :boolean, :default => false
464
+ method_option :keep_file_descriptors, :type => :boolean, :default => true
466
465
  method_option :gemfile, :type => :string, :required => false
467
466
  long_desc <<-D
468
467
  Exec runs a command, providing it access to the gems in the bundle. While using
@@ -470,6 +469,10 @@ module Bundler
470
469
  into the system wide RubyGems repository.
471
470
  D
472
471
  def exec(*args)
472
+ if ARGV.include?("--no-keep-file-descriptors")
473
+ 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")
474
+ end
475
+
473
476
  require_relative "cli/exec"
474
477
  Exec.new(options, args).run
475
478
  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,25 +185,7 @@ module Bundler
185
185
  #
186
186
  # @return [Bundler::SpecSet]
187
187
  def specs
188
- @specs ||= begin
189
- begin
190
- specs = resolve.materialize(requested_dependencies)
191
- rescue GemNotFound => e # Handle yanked gem
192
- gem_name, gem_version = extract_gem_info(e)
193
- locked_gem = @locked_specs[gem_name].last
194
- raise if locked_gem.nil? || locked_gem.version.to_s != gem_version || !@remote
195
- raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \
196
- "no longer be found in that source. That means the author of #{locked_gem} has removed it. " \
197
- "You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \
198
- "removed in order to install."
199
- end
200
- unless specs["bundler"].any?
201
- bundler = sources.metadata_source.specs.search(Gem::Dependency.new("bundler", VERSION)).last
202
- specs["bundler"] = bundler
203
- end
204
-
205
- specs
206
- end
188
+ @specs ||= materialize(requested_dependencies)
207
189
  end
208
190
 
209
191
  def new_specs
@@ -215,9 +197,7 @@ module Bundler
215
197
  end
216
198
 
217
199
  def missing_specs
218
- missing = []
219
- resolve.materialize(requested_dependencies, missing)
220
- missing
200
+ resolve.materialize(requested_dependencies).missing_specs
221
201
  end
222
202
 
223
203
  def missing_specs?
@@ -235,17 +215,11 @@ module Bundler
235
215
  end
236
216
 
237
217
  def requested_specs
238
- @requested_specs ||= begin
239
- groups = requested_groups
240
- groups.map!(&:to_sym)
241
- specs_for(groups)
242
- end
218
+ specs_for(requested_groups)
243
219
  end
244
220
 
245
221
  def requested_dependencies
246
- groups = requested_groups
247
- groups.map!(&:to_sym)
248
- dependencies_for(groups)
222
+ dependencies_for(requested_groups)
249
223
  end
250
224
 
251
225
  def current_dependencies
@@ -255,11 +229,13 @@ module Bundler
255
229
  end
256
230
 
257
231
  def specs_for(groups)
232
+ groups = requested_groups if groups.empty?
258
233
  deps = dependencies_for(groups)
259
- SpecSet.new(specs.for(expand_dependencies(deps)))
234
+ materialize(expand_dependencies(deps))
260
235
  end
261
236
 
262
237
  def dependencies_for(groups)
238
+ groups.map!(&:to_sym)
263
239
  current_dependencies.reject do |d|
264
240
  (d.groups & groups).empty?
265
241
  end
@@ -288,10 +264,6 @@ module Bundler
288
264
  end
289
265
  end
290
266
 
291
- def has_rubygems_remotes?
292
- sources.rubygems_sources.any? {|s| s.remotes.any? }
293
- end
294
-
295
267
  def spec_git_paths
296
268
  sources.git_sources.map {|s| File.realpath(s.path) if File.exist?(s.path) }.compact
297
269
  end
@@ -507,8 +479,33 @@ module Bundler
507
479
 
508
480
  private
509
481
 
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
+
499
+ unless specs["bundler"].any?
500
+ bundler = sources.metadata_source.specs.search(Gem::Dependency.new("bundler", VERSION)).last
501
+ specs["bundler"] = bundler
502
+ end
503
+
504
+ specs
505
+ end
506
+
510
507
  def precompute_source_requirements_for_indirect_dependencies?
511
- 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?
512
509
  end
513
510
 
514
511
  def current_ruby_platform_locked?
@@ -717,7 +714,7 @@ module Bundler
717
714
  @locked_specs.each do |s|
718
715
  # Replace the locked dependency's source with the equivalent source from the Gemfile
719
716
  dep = @dependencies.find {|d| s.satisfies?(d) }
720
- s.source = (dep && dep.source) || sources.get(s.source)
717
+ s.source = (dep && dep.source) || sources.get(s.source) unless multisource_allowed?
721
718
 
722
719
  # Don't add a spec to the list if its source is expired. For example,
723
720
  # if you change a Git gem to RubyGems.
@@ -735,7 +732,7 @@ module Bundler
735
732
  # if we won't need the source (according to the lockfile),
736
733
  # don't error if the path/git source isn't available
737
734
  next if @locked_specs.
738
- for(requested_dependencies, [], false, true, false).
735
+ for(requested_dependencies, false, true).
739
736
  none? {|locked_spec| locked_spec.source == s.source }
740
737
 
741
738
  raise
@@ -754,8 +751,8 @@ module Bundler
754
751
  end
755
752
 
756
753
  resolve = SpecSet.new(converged)
757
- @locked_specs_incomplete_for_platform = !resolve.for(expand_dependencies(requested_dependencies & deps), @unlock[:gems], true, true)
758
- resolve = SpecSet.new(resolve.for(expand_dependencies(deps, true), [], false, false, false).reject{|s| @unlock[:gems].include?(s.name) })
754
+ @locked_specs_incomplete_for_platform = !resolve.for(expand_dependencies(requested_dependencies & deps), true, true)
755
+ resolve = SpecSet.new(resolve.for(expand_dependencies(deps, true), false, false).reject{|s| @unlock[:gems].include?(s.name) })
759
756
  diff = nil
760
757
 
761
758
  # Now, we unlock any sources that do not have anymore gems pinned to it
@@ -859,12 +856,6 @@ module Bundler
859
856
  current == proposed
860
857
  end
861
858
 
862
- def extract_gem_info(error)
863
- # This method will extract the error message like "Could not find foo-1.2.3 in any of the sources"
864
- # to an array. The first element will be the gem name (e.g. foo), the second will be the version number.
865
- error.message.scan(/Could not find (\w+)-(\d+(?:\.\d+)+)/).flatten
866
- end
867
-
868
859
  def compute_requires
869
860
  dependencies.reduce({}) do |requires, dep|
870
861
  next requires unless dep.should_include?