rubygems-update 3.5.22 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -0
  3. data/Manifest.txt +23 -16
  4. data/README.md +14 -9
  5. data/bundler/CHANGELOG.md +83 -0
  6. data/bundler/bundler.gemspec +2 -2
  7. data/bundler/lib/bundler/build_metadata.rb +2 -2
  8. data/bundler/lib/bundler/cli/add.rb +2 -0
  9. data/bundler/lib/bundler/cli/check.rb +2 -2
  10. data/bundler/lib/bundler/cli/console.rb +0 -4
  11. data/bundler/lib/bundler/cli/doctor.rb +4 -4
  12. data/bundler/lib/bundler/cli/exec.rb +1 -0
  13. data/bundler/lib/bundler/cli/gem.rb +1 -1
  14. data/bundler/lib/bundler/cli/info.rb +2 -2
  15. data/bundler/lib/bundler/cli/inject.rb +1 -1
  16. data/bundler/lib/bundler/cli/install.rb +4 -0
  17. data/bundler/lib/bundler/cli/lock.rb +20 -1
  18. data/bundler/lib/bundler/cli/pristine.rb +1 -1
  19. data/bundler/lib/bundler/cli/show.rb +2 -2
  20. data/bundler/lib/bundler/cli.rb +23 -53
  21. data/bundler/lib/bundler/compact_index_client/cache_file.rb +0 -5
  22. data/bundler/lib/bundler/compact_index_client/updater.rb +0 -11
  23. data/bundler/lib/bundler/definition.rb +143 -76
  24. data/bundler/lib/bundler/dependency.rb +1 -1
  25. data/bundler/lib/bundler/dsl.rb +33 -28
  26. data/bundler/lib/bundler/endpoint_specification.rb +10 -1
  27. data/bundler/lib/bundler/errors.rb +10 -0
  28. data/bundler/lib/bundler/feature_flag.rb +1 -0
  29. data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
  30. data/bundler/lib/bundler/fetcher.rb +10 -3
  31. data/bundler/lib/bundler/gem_helpers.rb +21 -5
  32. data/bundler/lib/bundler/injector.rb +2 -2
  33. data/bundler/lib/bundler/inline.rb +12 -8
  34. data/bundler/lib/bundler/installer/standalone.rb +2 -2
  35. data/bundler/lib/bundler/installer.rb +4 -38
  36. data/bundler/lib/bundler/lazy_specification.rb +74 -26
  37. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  38. data/bundler/lib/bundler/lockfile_parser.rb +9 -1
  39. data/bundler/lib/bundler/man/bundle-add.1 +17 -11
  40. data/bundler/lib/bundler/man/bundle-add.1.ronn +16 -10
  41. data/bundler/lib/bundler/man/bundle-binstubs.1 +7 -4
  42. data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +6 -3
  43. data/bundler/lib/bundler/man/bundle-cache.1 +30 -2
  44. data/bundler/lib/bundler/man/bundle-cache.1.ronn +31 -2
  45. data/bundler/lib/bundler/man/bundle-check.1 +3 -3
  46. data/bundler/lib/bundler/man/bundle-check.1.ronn +4 -2
  47. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  48. data/bundler/lib/bundler/man/bundle-config.1 +3 -5
  49. data/bundler/lib/bundler/man/bundle-config.1.ronn +2 -7
  50. data/bundler/lib/bundler/man/bundle-console.1 +2 -4
  51. data/bundler/lib/bundler/man/bundle-console.1.ronn +2 -7
  52. data/bundler/lib/bundler/man/bundle-doctor.1 +2 -2
  53. data/bundler/lib/bundler/man/bundle-doctor.1.ronn +1 -1
  54. data/bundler/lib/bundler/man/bundle-env.1 +9 -0
  55. data/bundler/lib/bundler/man/bundle-env.1.ronn +10 -0
  56. data/bundler/lib/bundler/man/bundle-exec.1 +5 -2
  57. data/bundler/lib/bundler/man/bundle-exec.1.ronn +4 -1
  58. data/bundler/lib/bundler/man/bundle-fund.1 +22 -0
  59. data/bundler/lib/bundler/man/bundle-fund.1.ronn +25 -0
  60. data/bundler/lib/bundler/man/bundle-gem.1 +17 -5
  61. data/bundler/lib/bundler/man/bundle-gem.1.ronn +27 -6
  62. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  63. data/bundler/lib/bundler/man/bundle-info.1 +5 -2
  64. data/bundler/lib/bundler/man/bundle-info.1.ronn +6 -2
  65. data/bundler/lib/bundler/man/bundle-init.1 +3 -3
  66. data/bundler/lib/bundler/man/bundle-init.1.ronn +3 -2
  67. data/bundler/lib/bundler/man/bundle-inject.1 +10 -2
  68. data/bundler/lib/bundler/man/bundle-inject.1.ronn +9 -1
  69. data/bundler/lib/bundler/man/bundle-install.1 +15 -12
  70. data/bundler/lib/bundler/man/bundle-install.1.ronn +22 -18
  71. data/bundler/lib/bundler/man/bundle-issue.1 +45 -0
  72. data/bundler/lib/bundler/man/bundle-issue.1.ronn +37 -0
  73. data/bundler/lib/bundler/man/bundle-licenses.1 +9 -0
  74. data/bundler/lib/bundler/man/bundle-licenses.1.ronn +10 -0
  75. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  76. data/bundler/lib/bundler/man/bundle-list.1.ronn +4 -1
  77. data/bundler/lib/bundler/man/bundle-lock.1 +21 -6
  78. data/bundler/lib/bundler/man/bundle-lock.1.ronn +25 -4
  79. data/bundler/lib/bundler/man/bundle-open.1 +2 -2
  80. data/bundler/lib/bundler/man/bundle-open.1.ronn +2 -1
  81. data/bundler/lib/bundler/man/bundle-outdated.1 +8 -5
  82. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +8 -4
  83. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  84. data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
  85. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  86. data/bundler/lib/bundler/man/bundle-pristine.1.ronn +1 -1
  87. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  88. data/bundler/lib/bundler/man/bundle-remove.1.ronn +1 -1
  89. data/bundler/lib/bundler/man/bundle-show.1 +5 -2
  90. data/bundler/lib/bundler/man/bundle-show.1.ronn +4 -0
  91. data/bundler/lib/bundler/man/bundle-update.1 +13 -7
  92. data/bundler/lib/bundler/man/bundle-update.1.ronn +14 -6
  93. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  94. data/bundler/lib/bundler/man/bundle-viz.1 +4 -4
  95. data/bundler/lib/bundler/man/bundle-viz.1.ronn +7 -3
  96. data/bundler/lib/bundler/man/bundle.1 +1 -1
  97. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  98. data/bundler/lib/bundler/man/index.txt +4 -0
  99. data/bundler/lib/bundler/materialization.rb +59 -0
  100. data/bundler/lib/bundler/plugin/events.rb +24 -0
  101. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  102. data/bundler/lib/bundler/plugin.rb +20 -1
  103. data/bundler/lib/bundler/process_lock.rb +10 -14
  104. data/bundler/lib/bundler/remote_specification.rb +6 -1
  105. data/bundler/lib/bundler/resolver/base.rb +6 -6
  106. data/bundler/lib/bundler/resolver/candidate.rb +2 -2
  107. data/bundler/lib/bundler/resolver/spec_group.rb +4 -3
  108. data/bundler/lib/bundler/resolver.rb +5 -5
  109. data/bundler/lib/bundler/rubygems_ext.rb +30 -27
  110. data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -2
  111. data/bundler/lib/bundler/rubygems_integration.rb +23 -40
  112. data/bundler/lib/bundler/runtime.rb +27 -7
  113. data/bundler/lib/bundler/self_manager.rb +2 -3
  114. data/bundler/lib/bundler/settings.rb +6 -1
  115. data/bundler/lib/bundler/shared_helpers.rb +29 -17
  116. data/bundler/lib/bundler/source/git/git_proxy.rb +0 -6
  117. data/bundler/lib/bundler/source/git.rb +56 -31
  118. data/bundler/lib/bundler/source/metadata.rb +2 -3
  119. data/bundler/lib/bundler/source/path.rb +2 -2
  120. data/bundler/lib/bundler/source_list.rb +1 -1
  121. data/bundler/lib/bundler/spec_set.rb +81 -56
  122. data/bundler/lib/bundler/stub_specification.rb +8 -0
  123. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +0 -3
  124. data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -1
  125. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +15 -15
  126. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +4 -4
  127. data/bundler/lib/bundler/uri_credentials_filter.rb +1 -1
  128. data/bundler/lib/bundler/vendor/fileutils/COPYING +56 -0
  129. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +15 -13
  130. data/bundler/lib/bundler/vendor/securerandom/COPYING +56 -0
  131. data/bundler/lib/bundler/vendor/securerandom/lib/securerandom.rb +5 -5
  132. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +3 -5
  133. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +11 -0
  134. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +1 -4
  135. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +2 -2
  136. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +2 -1
  137. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +9 -9
  138. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
  139. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +5 -21
  140. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  141. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  142. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +11 -0
  143. data/bundler/lib/bundler/vendor/uri/COPYING +56 -0
  144. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +37 -16
  145. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +3 -3
  146. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +1 -1
  147. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +16 -26
  148. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +2 -2
  149. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +10 -3
  150. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +26 -3
  151. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  152. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +9 -9
  153. data/bundler/lib/bundler/vendored_securerandom.rb +0 -2
  154. data/bundler/lib/bundler/version.rb +1 -1
  155. data/bundler/lib/bundler.rb +38 -14
  156. data/{CONTRIBUTING.md → doc/rubygems/CONTRIBUTING.md} +9 -9
  157. data/{POLICIES.md → doc/rubygems/POLICIES.md} +11 -11
  158. data/lib/rubygems/basic_specification.rb +5 -4
  159. data/lib/rubygems/commands/cleanup_command.rb +2 -2
  160. data/lib/rubygems/commands/contents_command.rb +4 -4
  161. data/lib/rubygems/commands/exec_command.rb +3 -0
  162. data/lib/rubygems/commands/pristine_command.rb +2 -2
  163. data/lib/rubygems/commands/push_command.rb +29 -5
  164. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  165. data/lib/rubygems/commands/rebuild_command.rb +0 -2
  166. data/lib/rubygems/commands/setup_command.rb +7 -16
  167. data/lib/rubygems/commands/unpack_command.rb +0 -6
  168. data/lib/rubygems/commands/update_command.rb +2 -8
  169. data/lib/rubygems/config_file.rb +12 -0
  170. data/lib/rubygems/core_ext/kernel_warn.rb +2 -6
  171. data/lib/rubygems/defaults.rb +1 -1
  172. data/lib/rubygems/exceptions.rb +0 -6
  173. data/lib/rubygems/ext/builder.rb +6 -4
  174. data/lib/rubygems/ext/cargo_builder.rb +7 -4
  175. data/lib/rubygems/ext/cmake_builder.rb +7 -2
  176. data/lib/rubygems/ext/configure_builder.rb +7 -2
  177. data/lib/rubygems/ext/ext_conf_builder.rb +9 -5
  178. data/lib/rubygems/ext/rake_builder.rb +6 -1
  179. data/lib/rubygems/gem_runner.rb +9 -0
  180. data/lib/rubygems/gemcutter_utilities.rb +8 -2
  181. data/lib/rubygems/install_update_options.rb +5 -0
  182. data/lib/rubygems/installer.rb +8 -9
  183. data/lib/rubygems/package/tar_header.rb +11 -0
  184. data/lib/rubygems/package/tar_reader/entry.rb +1 -5
  185. data/lib/rubygems/platform.rb +4 -3
  186. data/lib/rubygems/psych_tree.rb +4 -0
  187. data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
  188. data/lib/rubygems/requirement.rb +0 -4
  189. data/lib/rubygems/resolver/composed_set.rb +3 -3
  190. data/lib/rubygems/resolver/git_set.rb +0 -1
  191. data/lib/rubygems/resolver/index_set.rb +2 -2
  192. data/lib/rubygems/resolver.rb +3 -3
  193. data/lib/rubygems/source/git.rb +13 -10
  194. data/lib/rubygems/spec_fetcher.rb +46 -7
  195. data/lib/rubygems/specification.rb +38 -32
  196. data/lib/rubygems/target_rbconfig.rb +50 -0
  197. data/lib/rubygems/uri.rb +1 -1
  198. data/lib/rubygems/util/licenses.rb +10 -1
  199. data/lib/rubygems/vendor/net-http/COPYING +56 -0
  200. data/lib/rubygems/vendor/net-http/lib/net/http/header.rb +1 -1
  201. data/lib/rubygems/vendor/net-http/lib/net/http/requests.rb +5 -0
  202. data/lib/rubygems/vendor/net-http/lib/net/http.rb +120 -36
  203. data/lib/rubygems/vendor/optparse/lib/optparse/ac.rb +16 -0
  204. data/lib/rubygems/vendor/optparse/lib/optparse/kwargs.rb +8 -3
  205. data/lib/rubygems/vendor/optparse/lib/optparse/version.rb +9 -0
  206. data/lib/rubygems/vendor/optparse/lib/optparse.rb +147 -51
  207. data/lib/rubygems/vendor/resolv/COPYING +56 -0
  208. data/lib/rubygems/vendor/resolv/lib/resolv.rb +50 -37
  209. data/lib/rubygems/vendor/securerandom/COPYING +56 -0
  210. data/lib/rubygems/vendor/securerandom/lib/securerandom.rb +5 -5
  211. data/lib/rubygems/vendor/timeout/COPYING +56 -0
  212. data/lib/rubygems/vendor/timeout/lib/timeout.rb +5 -8
  213. data/lib/rubygems/vendor/uri/COPYING +56 -0
  214. data/lib/rubygems/vendor/uri/lib/uri/common.rb +37 -16
  215. data/lib/rubygems/vendor/uri/lib/uri/file.rb +3 -3
  216. data/lib/rubygems/vendor/uri/lib/uri/ftp.rb +1 -1
  217. data/lib/rubygems/vendor/uri/lib/uri/generic.rb +16 -26
  218. data/lib/rubygems/vendor/uri/lib/uri/http.rb +2 -2
  219. data/lib/rubygems/vendor/uri/lib/uri/rfc2396_parser.rb +10 -3
  220. data/lib/rubygems/vendor/uri/lib/uri/rfc3986_parser.rb +26 -3
  221. data/lib/rubygems/vendor/uri/lib/uri/version.rb +1 -1
  222. data/lib/rubygems/vendor/uri/lib/uri.rb +9 -9
  223. data/lib/rubygems/vendored_securerandom.rb +0 -1
  224. data/lib/rubygems/version.rb +0 -4
  225. data/lib/rubygems.rb +30 -20
  226. data/rubygems-update.gemspec +5 -5
  227. data/setup.rb +1 -1
  228. metadata +36 -27
  229. data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +0 -22
  230. data/bundler/lib/bundler/vendor/securerandom/LICENSE.txt +0 -22
  231. data/bundler/lib/bundler/vendor/securerandom/lib/random/formatter.rb +0 -373
  232. data/bundler/lib/bundler/vendor/uri/LICENSE.txt +0 -22
  233. data/lib/rubygems/vendor/net-http/LICENSE.txt +0 -22
  234. data/lib/rubygems/vendor/net-http/lib/net/http/backward.rb +0 -40
  235. data/lib/rubygems/vendor/resolv/LICENSE.txt +0 -22
  236. data/lib/rubygems/vendor/securerandom/LICENSE.txt +0 -22
  237. data/lib/rubygems/vendor/securerandom/lib/random/formatter.rb +0 -373
  238. data/lib/rubygems/vendor/timeout/LICENSE.txt +0 -22
  239. data/lib/rubygems/vendor/uri/LICENSE.txt +0 -22
  240. /data/{MAINTAINERS.txt → doc/MAINTAINERS.txt} +0 -0
  241. /data/{bundler → doc/bundler}/UPGRADING.md +0 -0
  242. /data/{UPGRADING.md → doc/rubygems/UPGRADING.md} +0 -0
@@ -82,7 +82,7 @@ module Bundler::URI
82
82
  if args.kind_of?(Array)
83
83
  return self.build(args.collect{|x|
84
84
  if x.is_a?(String)
85
- DEFAULT_PARSER.escape(x)
85
+ Bundler::URI::RFC2396_PARSER.escape(x)
86
86
  else
87
87
  x
88
88
  end
@@ -91,7 +91,7 @@ module Bundler::URI
91
91
  tmp = {}
92
92
  args.each do |key, value|
93
93
  tmp[key] = if value
94
- DEFAULT_PARSER.escape(value)
94
+ Bundler::URI::RFC2396_PARSER.escape(value)
95
95
  else
96
96
  value
97
97
  end
@@ -393,7 +393,7 @@ module Bundler::URI
393
393
  def check_user(v)
394
394
  if @opaque
395
395
  raise InvalidURIError,
396
- "can not set user with opaque"
396
+ "cannot set user with opaque"
397
397
  end
398
398
 
399
399
  return v unless v
@@ -417,7 +417,7 @@ module Bundler::URI
417
417
  def check_password(v, user = @user)
418
418
  if @opaque
419
419
  raise InvalidURIError,
420
- "can not set password with opaque"
420
+ "cannot set password with opaque"
421
421
  end
422
422
  return v unless v
423
423
 
@@ -596,7 +596,7 @@ module Bundler::URI
596
596
 
597
597
  if @opaque
598
598
  raise InvalidURIError,
599
- "can not set host with registry or opaque"
599
+ "cannot set host with registry or opaque"
600
600
  elsif parser.regexp[:HOST] !~ v
601
601
  raise InvalidComponentError,
602
602
  "bad component(expected host component): #{v}"
@@ -685,7 +685,7 @@ module Bundler::URI
685
685
 
686
686
  if @opaque
687
687
  raise InvalidURIError,
688
- "can not set port with registry or opaque"
688
+ "cannot set port with registry or opaque"
689
689
  elsif !v.kind_of?(Integer) && parser.regexp[:PORT] !~ v
690
690
  raise InvalidComponentError,
691
691
  "bad component(expected port component): #{v.inspect}"
@@ -733,17 +733,17 @@ module Bundler::URI
733
733
  end
734
734
 
735
735
  def check_registry(v) # :nodoc:
736
- raise InvalidURIError, "can not set registry"
736
+ raise InvalidURIError, "cannot set registry"
737
737
  end
738
738
  private :check_registry
739
739
 
740
740
  def set_registry(v) #:nodoc:
741
- raise InvalidURIError, "can not set registry"
741
+ raise InvalidURIError, "cannot set registry"
742
742
  end
743
743
  protected :set_registry
744
744
 
745
745
  def registry=(v)
746
- raise InvalidURIError, "can not set registry"
746
+ raise InvalidURIError, "cannot set registry"
747
747
  end
748
748
 
749
749
  #
@@ -866,7 +866,7 @@ module Bundler::URI
866
866
  # hier_part = ( net_path | abs_path ) [ "?" query ]
867
867
  if @host || @port || @user || @path # userinfo = @user + ':' + @password
868
868
  raise InvalidURIError,
869
- "can not set opaque with host, port, userinfo or path"
869
+ "cannot set opaque with host, port, userinfo or path"
870
870
  elsif v && parser.regexp[:OPAQUE] !~ v
871
871
  raise InvalidComponentError,
872
872
  "bad component(expected opaque component): #{v}"
@@ -945,7 +945,7 @@ module Bundler::URI
945
945
  # == Description
946
946
  #
947
947
  # Bundler::URI has components listed in order of decreasing significance from left to right,
948
- # see RFC3986 https://tools.ietf.org/html/rfc3986 1.2.3.
948
+ # see RFC3986 https://www.rfc-editor.org/rfc/rfc3986 1.2.3.
949
949
  #
950
950
  # == Usage
951
951
  #
@@ -1235,7 +1235,7 @@ module Bundler::URI
1235
1235
  return rel, rel
1236
1236
  end
1237
1237
 
1238
- # you can modify `rel', but can not `oth'.
1238
+ # you can modify `rel', but cannot `oth'.
1239
1239
  return oth, rel
1240
1240
  end
1241
1241
  private :route_from0
@@ -1260,7 +1260,7 @@ module Bundler::URI
1260
1260
  # #=> #<Bundler::URI::Generic /main.rbx?page=1>
1261
1261
  #
1262
1262
  def route_from(oth)
1263
- # you can modify `rel', but can not `oth'.
1263
+ # you can modify `rel', but cannot `oth'.
1264
1264
  begin
1265
1265
  oth, rel = route_from0(oth)
1266
1266
  rescue
@@ -1364,6 +1364,9 @@ module Bundler::URI
1364
1364
  str << ':'
1365
1365
  str << @port.to_s
1366
1366
  end
1367
+ if (@host || @port) && [email protected]? && [email protected]_with?('/')
1368
+ str << '/'
1369
+ end
1367
1370
  str << @path
1368
1371
  if @query
1369
1372
  str << '?'
@@ -1399,19 +1402,6 @@ module Bundler::URI
1399
1402
  self.component_ary.eql?(oth.component_ary)
1400
1403
  end
1401
1404
 
1402
- =begin
1403
-
1404
- --- Bundler::URI::Generic#===(oth)
1405
-
1406
- =end
1407
- # def ===(oth)
1408
- # raise NotImplementedError
1409
- # end
1410
-
1411
- =begin
1412
- =end
1413
-
1414
-
1415
1405
  # Returns an Array of the components defined from the COMPONENT Array.
1416
1406
  def component_ary
1417
1407
  component.collect do |x|
@@ -85,7 +85,7 @@ module Bundler::URI
85
85
  # == Description
86
86
  #
87
87
  # Returns the authority for an HTTP uri, as defined in
88
- # https://datatracker.ietf.org/doc/html/rfc3986/#section-3.2.
88
+ # https://www.rfc-editor.org/rfc/rfc3986#section-3.2.
89
89
  #
90
90
  #
91
91
  # Example:
@@ -106,7 +106,7 @@ module Bundler::URI
106
106
  # == Description
107
107
  #
108
108
  # Returns the origin for an HTTP uri, as defined in
109
- # https://datatracker.ietf.org/doc/html/rfc6454.
109
+ # https://www.rfc-editor.org/rfc/rfc6454.
110
110
  #
111
111
  #
112
112
  # Example:
@@ -140,11 +140,11 @@ module Bundler::URI
140
140
 
141
141
  if !scheme
142
142
  raise InvalidURIError,
143
- "bad Bundler::URI(absolute but no scheme): #{uri}"
143
+ "bad Bundler::URI (absolute but no scheme): #{uri}"
144
144
  end
145
145
  if !opaque && (!path && (!host && !registry))
146
146
  raise InvalidURIError,
147
- "bad Bundler::URI(absolute but no path): #{uri}"
147
+ "bad Bundler::URI (absolute but no path): #{uri}"
148
148
  end
149
149
 
150
150
  when @regexp[:REL_URI]
@@ -173,7 +173,7 @@ module Bundler::URI
173
173
  # server = [ [ userinfo "@" ] hostport ]
174
174
 
175
175
  else
176
- raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri}"
176
+ raise InvalidURIError, "bad Bundler::URI (is not Bundler::URI?): #{uri}"
177
177
  end
178
178
 
179
179
  path = '' if !path && !opaque # (see RFC2396 Section 5.2)
@@ -536,4 +536,11 @@ module Bundler::URI
536
536
  end
537
537
 
538
538
  end # class Parser
539
+
540
+ # Backward compatibility for Bundler::URI::REGEXP::PATTERN::*
541
+ RFC2396_Parser.new.pattern.each_pair do |sym, str|
542
+ unless RFC2396_REGEXP::PATTERN.const_defined?(sym, false)
543
+ RFC2396_REGEXP::PATTERN.const_set(sym, str)
544
+ end
545
+ end
539
546
  end # module Bundler::URI
@@ -78,7 +78,7 @@ module Bundler::URI
78
78
  begin
79
79
  uri = uri.to_str
80
80
  rescue NoMethodError
81
- raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri.inspect}"
81
+ raise InvalidURIError, "bad Bundler::URI (is not Bundler::URI?): #{uri.inspect}"
82
82
  end
83
83
  uri.ascii_only? or
84
84
  raise InvalidURIError, "Bundler::URI must be ascii only #{uri.dump}"
@@ -127,7 +127,7 @@ module Bundler::URI
127
127
  m["fragment"]
128
128
  ]
129
129
  else
130
- raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri.inspect}"
130
+ raise InvalidURIError, "bad Bundler::URI (is not Bundler::URI?): #{uri.inspect}"
131
131
  end
132
132
  end
133
133
 
@@ -135,12 +135,35 @@ module Bundler::URI
135
135
  Bundler::URI.for(*self.split(uri), self)
136
136
  end
137
137
 
138
-
139
138
  def join(*uris) # :nodoc:
140
139
  uris[0] = convert_to_uri(uris[0])
141
140
  uris.inject :merge
142
141
  end
143
142
 
143
+ # Compatibility for RFC2396 parser
144
+ def extract(str, schemes = nil, &block) # :nodoc:
145
+ warn "Bundler::URI::RFC3986_PARSER.extract is obsolete. Use Bundler::URI::RFC2396_PARSER.extract explicitly.", uplevel: 1 if $VERBOSE
146
+ RFC2396_PARSER.extract(str, schemes, &block)
147
+ end
148
+
149
+ # Compatibility for RFC2396 parser
150
+ def make_regexp(schemes = nil) # :nodoc:
151
+ warn "Bundler::URI::RFC3986_PARSER.make_regexp is obsolete. Use Bundler::URI::RFC2396_PARSER.make_regexp explicitly.", uplevel: 1 if $VERBOSE
152
+ RFC2396_PARSER.make_regexp(schemes)
153
+ end
154
+
155
+ # Compatibility for RFC2396 parser
156
+ def escape(str, unsafe = nil) # :nodoc:
157
+ warn "Bundler::URI::RFC3986_PARSER.escape is obsolete. Use Bundler::URI::RFC2396_PARSER.escape explicitly.", uplevel: 1 if $VERBOSE
158
+ unsafe ? RFC2396_PARSER.escape(str, unsafe) : RFC2396_PARSER.escape(str)
159
+ end
160
+
161
+ # Compatibility for RFC2396 parser
162
+ def unescape(str, escaped = nil) # :nodoc:
163
+ warn "Bundler::URI::RFC3986_PARSER.unescape is obsolete. Use Bundler::URI::RFC2396_PARSER.unescape explicitly.", uplevel: 1 if $VERBOSE
164
+ escaped ? RFC2396_PARSER.unescape(str, escaped) : RFC2396_PARSER.unescape(str)
165
+ end
166
+
144
167
  @@to_s = Kernel.instance_method(:to_s)
145
168
  if @@to_s.respond_to?(:bind_call)
146
169
  def inspect
@@ -1,6 +1,6 @@
1
1
  module Bundler::URI
2
2
  # :stopdoc:
3
- VERSION_CODE = '001301'.freeze
3
+ VERSION_CODE = '010002'.freeze
4
4
  VERSION = VERSION_CODE.scan(/../).collect{|n| n.to_i}.join('.').freeze
5
5
  # :startdoc:
6
6
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: false
2
2
  # Bundler::URI is a module providing classes to handle Uniform Resource Identifiers
3
- # (RFC2396[http://tools.ietf.org/html/rfc2396]).
3
+ # (RFC2396[https://www.rfc-editor.org/rfc/rfc2396]).
4
4
  #
5
5
  # == Features
6
6
  #
@@ -47,14 +47,14 @@
47
47
  # A good place to view an RFC spec is http://www.ietf.org/rfc.html.
48
48
  #
49
49
  # Here is a list of all related RFC's:
50
- # - RFC822[http://tools.ietf.org/html/rfc822]
51
- # - RFC1738[http://tools.ietf.org/html/rfc1738]
52
- # - RFC2255[http://tools.ietf.org/html/rfc2255]
53
- # - RFC2368[http://tools.ietf.org/html/rfc2368]
54
- # - RFC2373[http://tools.ietf.org/html/rfc2373]
55
- # - RFC2396[http://tools.ietf.org/html/rfc2396]
56
- # - RFC2732[http://tools.ietf.org/html/rfc2732]
57
- # - RFC3986[http://tools.ietf.org/html/rfc3986]
50
+ # - RFC822[https://www.rfc-editor.org/rfc/rfc822]
51
+ # - RFC1738[https://www.rfc-editor.org/rfc/rfc1738]
52
+ # - RFC2255[https://www.rfc-editor.org/rfc/rfc2255]
53
+ # - RFC2368[https://www.rfc-editor.org/rfc/rfc2368]
54
+ # - RFC2373[https://www.rfc-editor.org/rfc/rfc2373]
55
+ # - RFC2396[https://www.rfc-editor.org/rfc/rfc2396]
56
+ # - RFC2732[https://www.rfc-editor.org/rfc/rfc2732]
57
+ # - RFC3986[https://www.rfc-editor.org/rfc/rfc3986]
58
58
  #
59
59
  # == Class tree
60
60
  #
@@ -7,8 +7,6 @@
7
7
  begin
8
8
  require "rubygems/vendored_securerandom"
9
9
  rescue LoadError
10
- module Bundler::Random; end
11
10
  require_relative "vendor/securerandom/lib/securerandom"
12
11
  Gem::SecureRandom = Bundler::SecureRandom
13
- Gem::Random = Bundler::Random
14
12
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.5.22".freeze
4
+ VERSION = "2.6.0".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -10,7 +10,6 @@ require_relative "bundler/plugin"
10
10
  require_relative "bundler/rubygems_ext"
11
11
  require_relative "bundler/rubygems_integration"
12
12
  require_relative "bundler/version"
13
- require_relative "bundler/constants"
14
13
  require_relative "bundler/current_ruby"
15
14
  require_relative "bundler/build_metadata"
16
15
 
@@ -52,6 +51,7 @@ module Bundler
52
51
  autoload :Env, File.expand_path("bundler/env", __dir__)
53
52
  autoload :Fetcher, File.expand_path("bundler/fetcher", __dir__)
54
53
  autoload :FeatureFlag, File.expand_path("bundler/feature_flag", __dir__)
54
+ autoload :FREEBSD, File.expand_path("bundler/constants", __dir__)
55
55
  autoload :GemHelper, File.expand_path("bundler/gem_helper", __dir__)
56
56
  autoload :GemHelpers, File.expand_path("bundler/gem_helpers", __dir__)
57
57
  autoload :GemVersionPromoter, File.expand_path("bundler/gem_version_promoter", __dir__)
@@ -62,6 +62,8 @@ module Bundler
62
62
  autoload :LazySpecification, File.expand_path("bundler/lazy_specification", __dir__)
63
63
  autoload :LockfileParser, File.expand_path("bundler/lockfile_parser", __dir__)
64
64
  autoload :MatchRemoteMetadata, File.expand_path("bundler/match_remote_metadata", __dir__)
65
+ autoload :Materialization, File.expand_path("bundler/materialization", __dir__)
66
+ autoload :NULL, File.expand_path("bundler/constants", __dir__)
65
67
  autoload :ProcessLock, File.expand_path("bundler/process_lock", __dir__)
66
68
  autoload :RemoteSpecification, File.expand_path("bundler/remote_specification", __dir__)
67
69
  autoload :Resolver, File.expand_path("bundler/resolver", __dir__)
@@ -80,6 +82,7 @@ module Bundler
80
82
  autoload :UI, File.expand_path("bundler/ui", __dir__)
81
83
  autoload :URICredentialsFilter, File.expand_path("bundler/uri_credentials_filter", __dir__)
82
84
  autoload :URINormalizer, File.expand_path("bundler/uri_normalizer", __dir__)
85
+ autoload :WINDOWS, File.expand_path("bundler/constants", __dir__)
83
86
  autoload :SafeMarshal, File.expand_path("bundler/safe_marshal", __dir__)
84
87
 
85
88
  class << self
@@ -209,6 +212,7 @@ module Bundler
209
212
  # Bundler.require(:test) # requires second_gem
210
213
  #
211
214
  def require(*groups)
215
+ load_plugins
212
216
  setup(*groups).require(*groups)
213
217
  end
214
218
 
@@ -252,12 +256,6 @@ module Bundler
252
256
  end
253
257
  end
254
258
 
255
- def most_specific_locked_platform?(platform)
256
- return false unless defined?(@definition) && @definition
257
-
258
- definition.most_specific_locked_platform == platform
259
- end
260
-
261
259
  def ruby_scope
262
260
  "#{Bundler.rubygems.ruby_engine}/#{RbConfig::CONFIG["ruby_version"]}"
263
261
  end
@@ -492,24 +490,33 @@ module Bundler
492
490
  end
493
491
 
494
492
  def mkdir_p(path)
495
- SharedHelpers.filesystem_access(path, :write) do |p|
493
+ SharedHelpers.filesystem_access(path, :create) do |p|
496
494
  FileUtils.mkdir_p(p)
497
495
  end
498
496
  end
499
497
 
500
498
  def which(executable)
501
- if File.file?(executable) && File.executable?(executable)
502
- executable
503
- elsif paths = ENV["PATH"]
499
+ executable_path = find_executable(executable)
500
+ return executable_path if executable_path
501
+
502
+ if (paths = ENV["PATH"])
504
503
  quote = '"'
505
504
  paths.split(File::PATH_SEPARATOR).find do |path|
506
505
  path = path[1..-2] if path.start_with?(quote) && path.end_with?(quote)
507
- executable_path = File.expand_path(executable, path)
508
- return executable_path if File.file?(executable_path) && File.executable?(executable_path)
506
+ executable_path = find_executable(File.expand_path(executable, path))
507
+ return executable_path if executable_path
509
508
  end
510
509
  end
511
510
  end
512
511
 
512
+ def find_executable(path)
513
+ extensions = RbConfig::CONFIG["EXECUTABLE_EXTS"]&.split
514
+ extensions = [RbConfig::CONFIG["EXEEXT"]] unless extensions&.any?
515
+ candidates = extensions.map {|ext| "#{path}#{ext}" }
516
+
517
+ candidates.find {|candidate| File.file?(candidate) && File.executable?(candidate) }
518
+ end
519
+
513
520
  def read_file(file)
514
521
  SharedHelpers.filesystem_access(file, :read) do
515
522
  File.open(file, "r:UTF-8", &:read)
@@ -562,13 +569,30 @@ module Bundler
562
569
 
563
570
  def git_present?
564
571
  return @git_present if defined?(@git_present)
565
- @git_present = Bundler.which("git#{RbConfig::CONFIG["EXEEXT"]}")
572
+ @git_present = Bundler.which("git")
566
573
  end
567
574
 
568
575
  def feature_flag
569
576
  @feature_flag ||= FeatureFlag.new(VERSION)
570
577
  end
571
578
 
579
+ def load_plugins(definition = Bundler.definition)
580
+ return if defined?(@load_plugins_ran)
581
+
582
+ Bundler.rubygems.load_plugins
583
+
584
+ requested_path_gems = definition.requested_specs.select {|s| s.source.is_a?(Source::Path) }
585
+ path_plugin_files = requested_path_gems.flat_map do |spec|
586
+ spec.matches_for_glob("rubygems_plugin#{Bundler.rubygems.suffix_pattern}")
587
+ rescue TypeError
588
+ error_message = "#{spec.name} #{spec.version} has an invalid gemspec"
589
+ raise Gem::InvalidSpecificationException, error_message
590
+ end
591
+ Bundler.rubygems.load_plugin_files(path_plugin_files)
592
+ Bundler.rubygems.load_env_plugins
593
+ @load_plugins_ran = true
594
+ end
595
+
572
596
  def reset!
573
597
  reset_paths!
574
598
  Plugin.reset!
@@ -11,11 +11,11 @@ contributors to follow to reduce the time it takes to get changes merged in.
11
11
  2. Ensure that your code blends well with ours:
12
12
  * No trailing whitespace
13
13
  * Match indentation (two spaces)
14
- * Match coding style (run `rake rubocop`)
14
+ * Match coding style (run `bin/rake rubocop`)
15
15
 
16
16
  3. If any new files are added or existing files removed in a commit or PR,
17
17
  please update the `Manifest.txt` accordingly. This can be done by running
18
- `rake update_manifest`
18
+ `bin/rake update_manifest`
19
19
 
20
20
  4. Don't modify the history file or version number.
21
21
 
@@ -70,13 +70,11 @@ And to run an individual test method named `test_default` within a test file, yo
70
70
 
71
71
  ### Running bundler tests
72
72
 
73
- Everything needs to be run from the `bundler/` subfolder.
74
-
75
73
  To setup bundler tests:
76
74
 
77
- rake spec:parallel_deps
75
+ bin/rake spec:parallel_deps
78
76
 
79
- To run the entire bundler test suite in parallel (it takes a while):
77
+ To run the entire bundler test suite in parallel (it takes a while), run the following from the `bundler/` subfolder:
80
78
 
81
79
  bin/parallel_rspec
82
80
 
@@ -84,7 +82,7 @@ There are some realworld higher level specs run in CI, but not run by `bin/paral
84
82
 
85
83
  bin/rake spec:realworld
86
84
 
87
- To run an individual test file location for example in `spec/install/gems/standalone_spec.rb` you can use:
85
+ To run an individual test file location for example in `spec/install/gems/standalone_spec.rb` you can use the following from the `bundler/` subfolder:
88
86
 
89
87
  bin/rspec spec/install/gems/standalone_spec.rb
90
88
 
@@ -92,11 +90,13 @@ To run an individual test file location for example in `spec/install/gems/standa
92
90
 
93
91
  You can check compliance with our code style with
94
92
 
95
- rake rubocop
93
+ bin/rake rubocop
96
94
 
97
95
  Optionally you can configure git hooks with to check this before every commit with
98
96
 
99
- rake git_hooks
97
+ bin/rake git_hooks
98
+
99
+ For more information, check [SETUP.md](../bundler/development/SETUP.md) and [DEBUGGING.md](../bundler/development/DEBUGGING.md).
100
100
 
101
101
  ## Issues
102
102
 
@@ -84,7 +84,7 @@ changes to `master` by default _won't_ make their way into the current stable
84
84
  branch, and development on `master` will be targeting the next minor
85
85
  or major release.
86
86
 
87
- There is a `rake prepare_release[<target_rubygems_version>]` rake task
87
+ There is a `bin/rake prepare_release[<target_rubygems_version>]` rake task
88
88
  that helps with creating a release. It takes a single argument, the _exact
89
89
  rubygems release_ being made (e.g. `3.2.3` when releasing bundler `2.2.3`).
90
90
  This task checks out the appropriate stable branch (`3.2`, for example), grabs
@@ -158,21 +158,21 @@ affect only very few users in rare cases.
158
158
 
159
159
  * Confirm all PRs that you want backported are properly tagged with `rubygems:
160
160
  <type>` or `bundler: <type>` labels at GitHub.
161
- * Run `rake prepare_release[<target_rubygems_version>]`. This will create a PR
162
- to the stable branch with the backports included in the release, and proper
163
- changelogs and version bumps. It will also create a PR to merge release
164
- changelogs into master.
161
+ * Run `bin/rake prepare_release[<target_rubygems_version>]`. This will create
162
+ a PR to the stable branch with the backports included in the release, and
163
+ proper changelogs and version bumps. It will also create a PR to merge
164
+ release changelogs into master.
165
165
  * Once CI passes, merge the release PR, switch to the stable branch and pull
166
166
  the PR just merged.
167
- * Release `bundler` with `rake bundler:release`.
168
- * Release `rubygems` with `rake release`.
167
+ * Release `bundler` with `bin/rake bundler:release`.
168
+ * Release `rubygems` with `bin/rake release`.
169
169
 
170
170
  ### Steps for minor and major releases
171
171
 
172
172
  * Confirm all PRs that you want listed in changelogs are properly tagged with
173
173
  `rubygems: <type>` or `bundler: <type>` labels at GitHub.
174
- * Run `rake prepare_release[<target_rubygems_version>]`. This will create a
175
- new stable branch off the master branch, and create a PR to it with the
174
+ * Run `bin/rake prepare_release[<target_rubygems_version>]`. This will create
175
+ a new stable branch off the master branch, and create a PR to it with the
176
176
  proper version bumps and changelogs. It will also create a PR to merge
177
177
  release changelogs into master.
178
178
  * Replace the stable branch in the workflows with the new stable branch, and
@@ -181,8 +181,8 @@ affect only very few users in rare cases.
181
181
  to the master PR.
182
182
  * Once CI passes, merge the release PR, switch to the stable branch and pull
183
183
  the PR just merged.
184
- * Release `bundler` with `rake bundler:release`.
185
- * Release `rubygems` with `rake release`.
184
+ * Release `bundler` with `bin/rake bundler:release`.
185
+ * Release `rubygems` with `bin/rake release`.
186
186
 
187
187
  ## Committer Access
188
188
 
@@ -134,7 +134,6 @@ class Gem::BasicSpecification
134
134
  end
135
135
 
136
136
  def find_full_gem_path # :nodoc:
137
- # TODO: also, shouldn't it default to full_name if it hasn't been written?
138
137
  File.expand_path File.join(gems_dir, full_name)
139
138
  end
140
139
 
@@ -142,10 +141,10 @@ class Gem::BasicSpecification
142
141
 
143
142
  ##
144
143
  # The full path to the gem (install path + full name).
144
+ #
145
+ # TODO: This is duplicated with #gem_dir. Eventually either of them should be deprecated.
145
146
 
146
147
  def full_gem_path
147
- # TODO: This is a heavily used method by gems, so we'll need
148
- # to aleast just alias it to #gem_dir rather than remove it.
149
148
  @full_gem_path ||= find_full_gem_path
150
149
  end
151
150
 
@@ -221,9 +220,11 @@ class Gem::BasicSpecification
221
220
  ##
222
221
  # Returns the full path to this spec's gem directory.
223
222
  # eg: /usr/local/lib/ruby/1.8/gems/mygem-1.0
223
+ #
224
+ # TODO: This is duplicated with #full_gem_path. Eventually either of them should be deprecated.
224
225
 
225
226
  def gem_dir
226
- @gem_dir ||= File.expand_path File.join(gems_dir, full_name)
227
+ @gem_dir ||= find_full_gem_path
227
228
  end
228
229
 
229
230
  ##
@@ -113,9 +113,9 @@ If no gems are named all gems in GEM_HOME are cleaned.
113
113
  @candidate_gems = if options[:args].empty?
114
114
  Gem::Specification.to_a
115
115
  else
116
- options[:args].map do |gem_name|
116
+ options[:args].flat_map do |gem_name|
117
117
  Gem::Specification.find_all_by_name gem_name
118
- end.flatten
118
+ end
119
119
  end
120
120
  end
121
121
 
@@ -102,7 +102,7 @@ prefix or only the files that are requireable.
102
102
  end
103
103
 
104
104
  def files_in_default_gem(spec)
105
- spec.files.map do |file|
105
+ spec.files.filter_map do |file|
106
106
  if file.start_with?("#{spec.bindir}/")
107
107
  [RbConfig::CONFIG["bindir"], file.delete_prefix("#{spec.bindir}/")]
108
108
  else
@@ -119,7 +119,7 @@ prefix or only the files that are requireable.
119
119
 
120
120
  [resolve.delete_suffix(requirable_part), requirable_part]
121
121
  end
122
- end.compact
122
+ end
123
123
  end
124
124
 
125
125
  def gem_contents(name)
@@ -189,8 +189,8 @@ prefix or only the files that are requireable.
189
189
  end
190
190
 
191
191
  def specification_directories # :nodoc:
192
- options[:specdirs].map do |i|
192
+ options[:specdirs].flat_map do |i|
193
193
  [i, File.join(i, "specifications")]
194
- end.flatten
194
+ end
195
195
  end
196
196
  end
@@ -222,8 +222,11 @@ to the same gem path as user-installed gems.
222
222
  terminate_interaction 1
223
223
  end
224
224
 
225
+ old_exe = $0
226
+ $0 = exe
225
227
  load Gem.activate_bin_path(contains_executable.first.name, exe, ">= 0.a")
226
228
  ensure
229
+ $0 = old_exe if old_exe
227
230
  ARGV.replace argv
228
231
  end
229
232
 
@@ -120,9 +120,9 @@ extensions will be restored.
120
120
  elsif options[:only_missing_extensions]
121
121
  specification_record.select(&:missing_extensions?)
122
122
  else
123
- get_all_gem_names.sort.map do |gem_name|
123
+ get_all_gem_names.sort.flat_map do |gem_name|
124
124
  specification_record.find_all_by_name(gem_name, options[:version]).reverse
125
- end.flatten
125
+ end
126
126
  end
127
127
 
128
128
  specs = specs.select {|spec| spec.platform == RUBY_ENGINE || Gem::Platform.local === spec.platform || spec.platform == Gem::Platform::RUBY }
OSZAR »