bundler 2.2.26 → 2.3.26

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 (197) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +501 -1
  3. data/README.md +1 -1
  4. data/bundler.gemspec +6 -8
  5. data/exe/bundle +7 -8
  6. data/exe/bundler +1 -1
  7. data/lib/bundler/.document +1 -0
  8. data/lib/bundler/build_metadata.rb +3 -3
  9. data/lib/bundler/cli/check.rb +1 -1
  10. data/lib/bundler/cli/common.rb +3 -2
  11. data/lib/bundler/cli/config.rb +10 -1
  12. data/lib/bundler/cli/doctor.rb +12 -3
  13. data/lib/bundler/cli/gem.rb +98 -9
  14. data/lib/bundler/cli/info.rb +27 -6
  15. data/lib/bundler/cli/init.rb +5 -1
  16. data/lib/bundler/cli/install.rb +13 -30
  17. data/lib/bundler/cli/issue.rb +4 -3
  18. data/lib/bundler/cli/outdated.rb +12 -3
  19. data/lib/bundler/cli/platform.rb +2 -2
  20. data/lib/bundler/cli/remove.rb +1 -2
  21. data/lib/bundler/cli/show.rb +1 -1
  22. data/lib/bundler/cli/update.rb +8 -4
  23. data/lib/bundler/cli.rb +23 -19
  24. data/lib/bundler/compact_index_client/cache.rb +0 -9
  25. data/lib/bundler/compact_index_client/updater.rb +16 -8
  26. data/lib/bundler/compact_index_client.rb +2 -8
  27. data/lib/bundler/current_ruby.rb +16 -6
  28. data/lib/bundler/definition.rb +204 -217
  29. data/lib/bundler/dependency.rb +23 -71
  30. data/lib/bundler/digest.rb +71 -0
  31. data/lib/bundler/dsl.rb +28 -45
  32. data/lib/bundler/endpoint_specification.rb +19 -13
  33. data/lib/bundler/env.rb +1 -1
  34. data/lib/bundler/environment_preserver.rb +4 -1
  35. data/lib/bundler/errors.rb +28 -2
  36. data/lib/bundler/feature_flag.rb +0 -1
  37. data/lib/bundler/fetcher/base.rb +6 -8
  38. data/lib/bundler/fetcher/compact_index.rb +9 -14
  39. data/lib/bundler/fetcher/index.rb +0 -26
  40. data/lib/bundler/fetcher.rb +20 -22
  41. data/lib/bundler/friendly_errors.rb +26 -34
  42. data/lib/bundler/gem_helper.rb +7 -18
  43. data/lib/bundler/gem_helpers.rb +9 -2
  44. data/lib/bundler/gem_version_promoter.rb +14 -25
  45. data/lib/bundler/index.rb +10 -40
  46. data/lib/bundler/injector.rb +16 -2
  47. data/lib/bundler/inline.rb +2 -12
  48. data/lib/bundler/installer/gem_installer.rb +13 -5
  49. data/lib/bundler/installer/standalone.rb +30 -3
  50. data/lib/bundler/installer.rb +18 -29
  51. data/lib/bundler/lazy_specification.rb +52 -35
  52. data/lib/bundler/lockfile_generator.rb +2 -2
  53. data/lib/bundler/lockfile_parser.rb +12 -10
  54. data/lib/bundler/man/bundle-add.1 +21 -5
  55. data/lib/bundler/man/bundle-add.1.ronn +16 -4
  56. data/lib/bundler/man/bundle-binstubs.1 +1 -1
  57. data/lib/bundler/man/bundle-cache.1 +7 -1
  58. data/lib/bundler/man/bundle-cache.1.ronn +7 -0
  59. data/lib/bundler/man/bundle-check.1 +1 -1
  60. data/lib/bundler/man/bundle-clean.1 +2 -2
  61. data/lib/bundler/man/bundle-clean.1.ronn +1 -1
  62. data/lib/bundler/man/bundle-config.1 +33 -14
  63. data/lib/bundler/man/bundle-config.1.ronn +30 -18
  64. data/lib/bundler/man/bundle-console.1 +53 -0
  65. data/lib/bundler/man/bundle-console.1.ronn +44 -0
  66. data/lib/bundler/man/bundle-doctor.1 +1 -1
  67. data/lib/bundler/man/bundle-exec.1 +2 -2
  68. data/lib/bundler/man/bundle-exec.1.ronn +1 -1
  69. data/lib/bundler/man/bundle-gem.1 +14 -1
  70. data/lib/bundler/man/bundle-gem.1.ronn +16 -0
  71. data/lib/bundler/man/bundle-help.1 +13 -0
  72. data/lib/bundler/man/bundle-help.1.ronn +12 -0
  73. data/lib/bundler/man/bundle-info.1 +1 -1
  74. data/lib/bundler/man/bundle-init.1 +1 -1
  75. data/lib/bundler/man/bundle-inject.1 +5 -2
  76. data/lib/bundler/man/bundle-inject.1.ronn +3 -1
  77. data/lib/bundler/man/bundle-install.1 +6 -2
  78. data/lib/bundler/man/bundle-install.1.ronn +8 -2
  79. data/lib/bundler/man/bundle-list.1 +1 -1
  80. data/lib/bundler/man/bundle-lock.1 +1 -1
  81. data/lib/bundler/man/bundle-open.1 +1 -1
  82. data/lib/bundler/man/bundle-outdated.1 +3 -10
  83. data/lib/bundler/man/bundle-outdated.1.ronn +1 -10
  84. data/lib/bundler/man/bundle-platform.1 +16 -6
  85. data/lib/bundler/man/bundle-platform.1.ronn +14 -7
  86. data/lib/bundler/man/bundle-plugin.1 +81 -0
  87. data/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  88. data/lib/bundler/man/bundle-pristine.1 +1 -1
  89. data/lib/bundler/man/bundle-remove.1 +1 -1
  90. data/lib/bundler/man/bundle-show.1 +1 -1
  91. data/lib/bundler/man/bundle-update.1 +2 -2
  92. data/lib/bundler/man/bundle-update.1.ronn +2 -1
  93. data/lib/bundler/man/bundle-version.1 +35 -0
  94. data/lib/bundler/man/bundle-version.1.ronn +24 -0
  95. data/lib/bundler/man/bundle-viz.1 +4 -1
  96. data/lib/bundler/man/bundle-viz.1.ronn +2 -0
  97. data/lib/bundler/man/bundle.1 +15 -10
  98. data/lib/bundler/man/bundle.1.ronn +12 -7
  99. data/lib/bundler/man/gemfile.5 +117 -80
  100. data/lib/bundler/man/gemfile.5.ronn +105 -84
  101. data/lib/bundler/man/index.txt +4 -0
  102. data/lib/bundler/match_metadata.rb +13 -0
  103. data/lib/bundler/match_platform.rb +0 -1
  104. data/lib/bundler/match_remote_metadata.rb +29 -0
  105. data/lib/bundler/plugin/api/source.rb +4 -9
  106. data/lib/bundler/plugin/installer/git.rb +0 -4
  107. data/lib/bundler/plugin/installer/rubygems.rb +0 -4
  108. data/lib/bundler/plugin/installer.rb +3 -1
  109. data/lib/bundler/plugin.rb +25 -6
  110. data/lib/bundler/process_lock.rb +1 -1
  111. data/lib/bundler/remote_specification.rb +10 -4
  112. data/lib/bundler/resolver/base.rb +50 -0
  113. data/lib/bundler/resolver/spec_group.rb +31 -49
  114. data/lib/bundler/resolver.rb +183 -192
  115. data/lib/bundler/ruby_dsl.rb +1 -1
  116. data/lib/bundler/ruby_version.rb +5 -18
  117. data/lib/bundler/rubygems_ext.rb +138 -20
  118. data/lib/bundler/rubygems_gem_installer.rb +42 -16
  119. data/lib/bundler/rubygems_integration.rb +42 -90
  120. data/lib/bundler/runtime.rb +2 -3
  121. data/lib/bundler/self_manager.rb +168 -0
  122. data/lib/bundler/settings.rb +13 -4
  123. data/lib/bundler/shared_helpers.rb +15 -24
  124. data/lib/bundler/source/git/git_proxy.rb +7 -4
  125. data/lib/bundler/source/git.rb +29 -13
  126. data/lib/bundler/source/metadata.rb +3 -3
  127. data/lib/bundler/source/path.rb +1 -1
  128. data/lib/bundler/source/rubygems.rb +148 -161
  129. data/lib/bundler/source/rubygems_aggregate.rb +1 -1
  130. data/lib/bundler/source.rb +6 -5
  131. data/lib/bundler/source_list.rb +15 -29
  132. data/lib/bundler/source_map.rb +15 -2
  133. data/lib/bundler/spec_set.rb +52 -32
  134. data/lib/bundler/stub_specification.rb +5 -3
  135. data/lib/bundler/templates/Executable +2 -4
  136. data/lib/bundler/templates/Executable.bundler +2 -2
  137. data/lib/bundler/templates/Executable.standalone +2 -4
  138. data/lib/bundler/templates/Gemfile +0 -2
  139. data/lib/bundler/templates/gems.rb +0 -3
  140. data/lib/bundler/templates/newgem/Gemfile.tt +5 -2
  141. data/lib/bundler/templates/newgem/README.md.tt +3 -9
  142. data/lib/bundler/templates/newgem/Rakefile.tt +15 -2
  143. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +5 -4
  144. data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +5 -4
  145. data/lib/bundler/templates/newgem/newgem.gemspec.tt +16 -16
  146. data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  147. data/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  148. data/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
  149. data/lib/bundler/ui/shell.rb +1 -1
  150. data/lib/bundler/vendor/.document +1 -0
  151. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  152. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
  153. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  154. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
  155. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
  156. data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  157. data/lib/bundler/vendor/molinillo/LICENSE +9 -0
  158. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +3 -3
  159. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +32 -26
  160. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  161. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  162. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  163. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +6 -6
  164. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
  165. data/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -2
  166. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
  167. data/lib/bundler/vendor/thor/lib/thor/error.rb +9 -4
  168. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +19 -1
  169. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +22 -4
  170. data/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  171. data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  172. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  173. data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  174. data/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
  175. data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  176. data/lib/bundler/vendor/uri/lib/uri/common.rb +17 -80
  177. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
  178. data/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
  179. data/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
  180. data/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
  181. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  182. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
  183. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
  184. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
  185. data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  186. data/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
  187. data/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
  188. data/lib/bundler/vendor/uri/lib/uri.rb +0 -1
  189. data/lib/bundler/vendored_tsort.rb +4 -0
  190. data/lib/bundler/version.rb +1 -1
  191. data/lib/bundler/worker.rb +2 -2
  192. data/lib/bundler.rb +40 -29
  193. metadata +37 -12
  194. data/lib/bundler/dep_proxy.rb +0 -55
  195. data/lib/bundler/gemdeps.rb +0 -29
  196. data/lib/bundler/psyched_yaml.rb +0 -22
  197. data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
@@ -3,7 +3,6 @@
3
3
  #
4
4
  # Author:: Akira Yamada <akira@ruby-lang.org>
5
5
  # License:: You can redistribute it and/or modify it under the same term as Ruby.
6
- # Revision:: $Id$
7
6
  #
8
7
  # See Bundler::URI for general documentation
9
8
  #
@@ -7,7 +7,6 @@
7
7
  # License::
8
8
  # Bundler::URI::LDAP is copyrighted free software by Takaaki Tateishi and Akira Yamada.
9
9
  # You can redistribute it and/or modify it under the same term as Ruby.
10
- # Revision:: $Id$
11
10
  #
12
11
  # See Bundler::URI for general documentation
13
12
  #
@@ -119,6 +118,7 @@ module Bundler::URI
119
118
 
120
119
  # Private method to cleanup +dn+ from using the +path+ component attribute.
121
120
  def parse_dn
121
+ raise InvalidURIError, 'bad LDAP URL' unless @path
122
122
  @dn = @path[1..-1]
123
123
  end
124
124
  private :parse_dn
@@ -3,7 +3,6 @@
3
3
  #
4
4
  # Author:: Akira Yamada <akira@ruby-lang.org>
5
5
  # License:: You can redistribute it and/or modify it under the same term as Ruby.
6
- # Revision:: $Id$
7
6
  #
8
7
  # See Bundler::URI for general documentation
9
8
  #
@@ -3,7 +3,6 @@
3
3
  # = uri/common.rb
4
4
  #
5
5
  # Author:: Akira Yamada <akira@ruby-lang.org>
6
- # Revision:: $Id$
7
6
  # License::
8
7
  # You can redistribute it and/or modify it under the same term as Ruby.
9
8
  #
@@ -208,21 +207,9 @@ module Bundler::URI
208
207
  # #=> #<Bundler::URI::LDAP ldap://ldap.example.com/dc=example?user=john>
209
208
  #
210
209
  def parse(uri)
211
- scheme, userinfo, host, port,
212
- registry, path, opaque, query, fragment = self.split(uri)
213
-
214
- if scheme && Bundler::URI.scheme_list.include?(scheme.upcase)
215
- Bundler::URI.scheme_list[scheme.upcase].new(scheme, userinfo, host, port,
216
- registry, path, opaque, query,
217
- fragment, self)
218
- else
219
- Generic.new(scheme, userinfo, host, port,
220
- registry, path, opaque, query,
221
- fragment, self)
222
- end
210
+ Bundler::URI.for(*self.split(uri), self)
223
211
  end
224
212
 
225
-
226
213
  #
227
214
  # == Args
228
215
  #
@@ -69,18 +69,7 @@ module Bundler::URI
69
69
  end
70
70
 
71
71
  def parse(uri) # :nodoc:
72
- scheme, userinfo, host, port,
73
- registry, path, opaque, query, fragment = self.split(uri)
74
- scheme_list = Bundler::URI.scheme_list
75
- if scheme && scheme_list.include?(uc = scheme.upcase)
76
- scheme_list[uc].new(scheme, userinfo, host, port,
77
- registry, path, opaque, query,
78
- fragment, self)
79
- else
80
- Generic.new(scheme, userinfo, host, port,
81
- registry, path, opaque, query,
82
- fragment, self)
83
- end
72
+ Bundler::URI.for(*self.split(uri), self)
84
73
  end
85
74
 
86
75
 
@@ -1,6 +1,6 @@
1
1
  module Bundler::URI
2
2
  # :stopdoc:
3
- VERSION_CODE = '001000'.freeze
3
+ VERSION_CODE = '001001'.freeze
4
4
  VERSION = VERSION_CODE.scan(/../).collect{|n| n.to_i}.join('.').freeze
5
5
  # :startdoc:
6
6
  end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: false
2
+ # = uri/ws.rb
3
+ #
4
+ # Author:: Matt Muller <mamuller@amazon.com>
5
+ # License:: You can redistribute it and/or modify it under the same term as Ruby.
6
+ #
7
+ # See Bundler::URI for general documentation
8
+ #
9
+
10
+ require_relative 'generic'
11
+
12
+ module Bundler::URI
13
+
14
+ #
15
+ # The syntax of WS URIs is defined in RFC6455 section 3.
16
+ #
17
+ # Note that the Ruby Bundler::URI library allows WS URLs containing usernames and
18
+ # passwords. This is not legal as per the RFC, but used to be
19
+ # supported in Internet Explorer 5 and 6, before the MS04-004 security
20
+ # update. See <URL:http://support.microsoft.com/kb/834489>.
21
+ #
22
+ class WS < Generic
23
+ # A Default port of 80 for Bundler::URI::WS.
24
+ DEFAULT_PORT = 80
25
+
26
+ # An Array of the available components for Bundler::URI::WS.
27
+ COMPONENT = %i[
28
+ scheme
29
+ userinfo host port
30
+ path
31
+ query
32
+ ].freeze
33
+
34
+ #
35
+ # == Description
36
+ #
37
+ # Creates a new Bundler::URI::WS object from components, with syntax checking.
38
+ #
39
+ # The components accepted are userinfo, host, port, path, and query.
40
+ #
41
+ # The components should be provided either as an Array, or as a Hash
42
+ # with keys formed by preceding the component names with a colon.
43
+ #
44
+ # If an Array is used, the components must be passed in the
45
+ # order <code>[userinfo, host, port, path, query]</code>.
46
+ #
47
+ # Example:
48
+ #
49
+ # uri = Bundler::URI::WS.build(host: 'www.example.com', path: '/foo/bar')
50
+ #
51
+ # uri = Bundler::URI::WS.build([nil, "www.example.com", nil, "/path", "query"])
52
+ #
53
+ # Currently, if passed userinfo components this method generates
54
+ # invalid WS URIs as per RFC 1738.
55
+ #
56
+ def self.build(args)
57
+ tmp = Util.make_components_hash(self, args)
58
+ super(tmp)
59
+ end
60
+
61
+ #
62
+ # == Description
63
+ #
64
+ # Returns the full path for a WS Bundler::URI, as required by Net::HTTP::Get.
65
+ #
66
+ # If the Bundler::URI contains a query, the full path is Bundler::URI#path + '?' + Bundler::URI#query.
67
+ # Otherwise, the path is simply Bundler::URI#path.
68
+ #
69
+ # Example:
70
+ #
71
+ # uri = Bundler::URI::WS.build(path: '/foo/bar', query: 'test=true')
72
+ # uri.request_uri # => "/foo/bar?test=true"
73
+ #
74
+ def request_uri
75
+ return unless @path
76
+
77
+ url = @query ? "#@path?#@query" : @path.dup
78
+ url.start_with?(?/.freeze) ? url : ?/ + url
79
+ end
80
+ end
81
+
82
+ @@schemes['WS'] = WS
83
+
84
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: false
2
+ # = uri/wss.rb
3
+ #
4
+ # Author:: Matt Muller <mamuller@amazon.com>
5
+ # License:: You can redistribute it and/or modify it under the same term as Ruby.
6
+ #
7
+ # See Bundler::URI for general documentation
8
+ #
9
+
10
+ require_relative 'ws'
11
+
12
+ module Bundler::URI
13
+
14
+ # The default port for WSS URIs is 443, and the scheme is 'wss:' rather
15
+ # than 'ws:'. Other than that, WSS URIs are identical to WS URIs;
16
+ # see Bundler::URI::WS.
17
+ class WSS < WS
18
+ # A Default port of 443 for Bundler::URI::WSS
19
+ DEFAULT_PORT = 443
20
+ end
21
+ @@schemes['WSS'] = WSS
22
+ end
@@ -86,7 +86,6 @@
86
86
  # License::
87
87
  # Copyright (c) 2001 akira yamada <akira@ruby-lang.org>
88
88
  # You can redistribute it and/or modify it under the same term as Ruby.
89
- # Revision:: $Id$
90
89
  #
91
90
 
92
91
  module Bundler::URI
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bundler; end
4
+ require_relative "vendor/tsort/lib/tsort"
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.2.26".freeze
4
+ VERSION = "2.3.26".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -21,8 +21,8 @@ module Bundler
21
21
  # @param func [Proc] job to run in inside the worker pool
22
22
  def initialize(size, name, func)
23
23
  @name = name
24
- @request_queue = Queue.new
25
- @response_queue = Queue.new
24
+ @request_queue = Thread::Queue.new
25
+ @response_queue = Thread::Queue.new
26
26
  @func = func
27
27
  @size = size
28
28
  @threads = nil
data/lib/bundler.rb CHANGED
@@ -19,7 +19,7 @@ require_relative "bundler/build_metadata"
19
19
  #
20
20
  # Since Ruby 2.6, Bundler is a part of Ruby's standard library.
21
21
  #
22
- # Bunder is used by creating _gemfiles_ listing all the project dependencies
22
+ # Bundler is used by creating _gemfiles_ listing all the project dependencies
23
23
  # and (optionally) their versions and then using
24
24
  #
25
25
  # require 'bundler/setup'
@@ -37,12 +37,12 @@ module Bundler
37
37
  environment_preserver = EnvironmentPreserver.from_env
38
38
  ORIGINAL_ENV = environment_preserver.restore
39
39
  environment_preserver.replace_with_backup
40
- SUDO_MUTEX = Mutex.new
40
+ SUDO_MUTEX = Thread::Mutex.new
41
41
 
42
42
  autoload :Definition, File.expand_path("bundler/definition", __dir__)
43
43
  autoload :Dependency, File.expand_path("bundler/dependency", __dir__)
44
- autoload :DepProxy, File.expand_path("bundler/dep_proxy", __dir__)
45
44
  autoload :Deprecate, File.expand_path("bundler/deprecate", __dir__)
45
+ autoload :Digest, File.expand_path("bundler/digest", __dir__)
46
46
  autoload :Dsl, File.expand_path("bundler/dsl", __dir__)
47
47
  autoload :EndpointSpecification, File.expand_path("bundler/endpoint_specification", __dir__)
48
48
  autoload :Env, File.expand_path("bundler/env", __dir__)
@@ -57,7 +57,7 @@ module Bundler
57
57
  autoload :Installer, File.expand_path("bundler/installer", __dir__)
58
58
  autoload :LazySpecification, File.expand_path("bundler/lazy_specification", __dir__)
59
59
  autoload :LockfileParser, File.expand_path("bundler/lockfile_parser", __dir__)
60
- autoload :MatchPlatform, File.expand_path("bundler/match_platform", __dir__)
60
+ autoload :MatchRemoteMetadata, File.expand_path("bundler/match_remote_metadata", __dir__)
61
61
  autoload :ProcessLock, File.expand_path("bundler/process_lock", __dir__)
62
62
  autoload :RemoteSpecification, File.expand_path("bundler/remote_specification", __dir__)
63
63
  autoload :Resolver, File.expand_path("bundler/resolver", __dir__)
@@ -65,6 +65,7 @@ module Bundler
65
65
  autoload :RubyDsl, File.expand_path("bundler/ruby_dsl", __dir__)
66
66
  autoload :RubyVersion, File.expand_path("bundler/ruby_version", __dir__)
67
67
  autoload :Runtime, File.expand_path("bundler/runtime", __dir__)
68
+ autoload :SelfManager, File.expand_path("bundler/self_manager", __dir__)
68
69
  autoload :Settings, File.expand_path("bundler/settings", __dir__)
69
70
  autoload :SharedHelpers, File.expand_path("bundler/shared_helpers", __dir__)
70
71
  autoload :Source, File.expand_path("bundler/source", __dir__)
@@ -95,6 +96,17 @@ module Bundler
95
96
  @bundle_path ||= Pathname.new(configured_bundle_path.path).expand_path(root)
96
97
  end
97
98
 
99
+ def create_bundle_path
100
+ SharedHelpers.filesystem_access(bundle_path.to_s) do |p|
101
+ mkdir_p(p)
102
+ end unless bundle_path.exist?
103
+
104
+ @bundle_path = bundle_path.realpath
105
+ rescue Errno::EEXIST
106
+ raise PathError, "Could not install to path `#{bundle_path}` " \
107
+ "because a file already exists at that path. Either remove or rename the file so the directory can be created."
108
+ end
109
+
98
110
  def configured_bundle_path
99
111
  @configured_bundle_path ||= settings.path.tap(&:validate!)
100
112
  end
@@ -318,9 +330,9 @@ module Bundler
318
330
  FileUtils.remove_entry_secure(path) if path && File.exist?(path)
319
331
  rescue ArgumentError
320
332
  message = <<EOF
321
- It is a security vulnerability to allow your home directory to be world-writable, and bundler can not continue.
333
+ It is a security vulnerability to allow your home directory to be world-writable, and bundler cannot continue.
322
334
  You should probably consider fixing this issue by running `chmod o-w ~` on *nix.
323
- Please refer to https://ruby-doc.org/stdlib-2.1.2/libdoc/fileutils/rdoc/FileUtils.html#method-c-remove_entry_secure for details.
335
+ Please refer to https://ruby-doc.org/stdlib-3.1.2/libdoc/fileutils/rdoc/FileUtils.html#method-c-remove_entry_secure for details.
324
336
  EOF
325
337
  File.world_writable?(path) ? Bundler.ui.warn(message) : raise
326
338
  raise PathError, "Please fix the world-writable issue with your #{path} directory"
@@ -368,7 +380,7 @@ EOF
368
380
 
369
381
  if env.key?("RUBYLIB")
370
382
  rubylib = env["RUBYLIB"].split(File::PATH_SEPARATOR)
371
- rubylib.delete(File.expand_path("..", __FILE__))
383
+ rubylib.delete(__dir__)
372
384
  env["RUBYLIB"] = rubylib.join(File::PATH_SEPARATOR)
373
385
  end
374
386
 
@@ -559,7 +571,7 @@ EOF
559
571
 
560
572
  def load_marshal(data)
561
573
  Marshal.load(data)
562
- rescue StandardError => e
574
+ rescue TypeError => e
563
575
  raise MarshalError, "#{e.class}: #{e.message}"
564
576
  end
565
577
 
@@ -636,15 +648,26 @@ EOF
636
648
  @rubygems = nil
637
649
  end
638
650
 
651
+ def configure_gem_home_and_path(path = bundle_path)
652
+ configure_gem_path
653
+ configure_gem_home(path)
654
+ Bundler.rubygems.clear_paths
655
+ end
656
+
657
+ def self_manager
658
+ @self_manager ||= begin
659
+ require_relative "bundler/self_manager"
660
+ Bundler::SelfManager.new
661
+ end
662
+ end
663
+
639
664
  private
640
665
 
641
666
  def eval_yaml_gemspec(path, contents)
642
- require_relative "bundler/psyched_yaml"
667
+ Kernel.require "psych"
643
668
 
644
- # If the YAML is invalid, Syck raises an ArgumentError, and Psych
645
- # raises a Psych::SyntaxError. See psyched_yaml.rb for more info.
646
669
  Gem::Specification.from_yaml(contents)
647
- rescue YamlLibrarySyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception
670
+ rescue ::Psych::SyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception
648
671
  eval_gemspec(path, contents)
649
672
  end
650
673
 
@@ -656,29 +679,17 @@ EOF
656
679
  raise GemspecError, Dsl::DSLError.new(msg, path, e.backtrace, contents)
657
680
  end
658
681
 
659
- def configure_gem_home_and_path
660
- configure_gem_path
661
- configure_gem_home
662
- bundle_path
663
- end
664
-
665
- def configure_gem_path(env = ENV)
666
- blank_home = env["GEM_HOME"].nil? || env["GEM_HOME"].empty?
667
- if !use_system_gems?
682
+ def configure_gem_path
683
+ unless use_system_gems?
668
684
  # this needs to be empty string to cause
669
685
  # PathSupport.split_gem_path to only load up the
670
686
  # Bundler --path setting as the GEM_PATH.
671
- env["GEM_PATH"] = ""
672
- elsif blank_home
673
- possibles = [Bundler.rubygems.gem_dir, Bundler.rubygems.gem_path]
674
- paths = possibles.flatten.compact.uniq.reject(&:empty?)
675
- env["GEM_PATH"] = paths.join(File::PATH_SEPARATOR)
687
+ Bundler::SharedHelpers.set_env "GEM_PATH", ""
676
688
  end
677
689
  end
678
690
 
679
- def configure_gem_home
680
- Bundler::SharedHelpers.set_env "GEM_HOME", File.expand_path(bundle_path, root)
681
- Bundler.rubygems.clear_paths
691
+ def configure_gem_home(path)
692
+ Bundler::SharedHelpers.set_env "GEM_HOME", path.to_s
682
693
  end
683
694
 
684
695
  def tmp_home_path
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.26
4
+ version: 2.3.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Arko
@@ -19,10 +19,10 @@ authors:
19
19
  - Terence Lee
20
20
  - Carl Lerche
21
21
  - Yehuda Katz
22
- autorequire:
22
+ autorequire:
23
23
  bindir: exe
24
24
  cert_chain: []
25
- date: 2021-08-17 00:00:00.000000000 Z
25
+ date: 2022-11-17 00:00:00.000000000 Z
26
26
  dependencies: []
27
27
  description: Bundler manages an application's dependencies through its entire life,
28
28
  across many machines, systematically and repeatably
@@ -41,6 +41,7 @@ files:
41
41
  - exe/bundle
42
42
  - exe/bundler
43
43
  - lib/bundler.rb
44
+ - lib/bundler/.document
44
45
  - lib/bundler/build_metadata.rb
45
46
  - lib/bundler/capistrano.rb
46
47
  - lib/bundler/cli.rb
@@ -79,10 +80,10 @@ files:
79
80
  - lib/bundler/constants.rb
80
81
  - lib/bundler/current_ruby.rb
81
82
  - lib/bundler/definition.rb
82
- - lib/bundler/dep_proxy.rb
83
83
  - lib/bundler/dependency.rb
84
84
  - lib/bundler/deployment.rb
85
85
  - lib/bundler/deprecate.rb
86
+ - lib/bundler/digest.rb
86
87
  - lib/bundler/dsl.rb
87
88
  - lib/bundler/endpoint_specification.rb
88
89
  - lib/bundler/env.rb
@@ -100,7 +101,6 @@ files:
100
101
  - lib/bundler/gem_helpers.rb
101
102
  - lib/bundler/gem_tasks.rb
102
103
  - lib/bundler/gem_version_promoter.rb
103
- - lib/bundler/gemdeps.rb
104
104
  - lib/bundler/graph.rb
105
105
  - lib/bundler/index.rb
106
106
  - lib/bundler/injector.rb
@@ -125,12 +125,16 @@ files:
125
125
  - lib/bundler/man/bundle-clean.1.ronn
126
126
  - lib/bundler/man/bundle-config.1
127
127
  - lib/bundler/man/bundle-config.1.ronn
128
+ - lib/bundler/man/bundle-console.1
129
+ - lib/bundler/man/bundle-console.1.ronn
128
130
  - lib/bundler/man/bundle-doctor.1
129
131
  - lib/bundler/man/bundle-doctor.1.ronn
130
132
  - lib/bundler/man/bundle-exec.1
131
133
  - lib/bundler/man/bundle-exec.1.ronn
132
134
  - lib/bundler/man/bundle-gem.1
133
135
  - lib/bundler/man/bundle-gem.1.ronn
136
+ - lib/bundler/man/bundle-help.1
137
+ - lib/bundler/man/bundle-help.1.ronn
134
138
  - lib/bundler/man/bundle-info.1
135
139
  - lib/bundler/man/bundle-info.1.ronn
136
140
  - lib/bundler/man/bundle-init.1
@@ -149,6 +153,8 @@ files:
149
153
  - lib/bundler/man/bundle-outdated.1.ronn
150
154
  - lib/bundler/man/bundle-platform.1
151
155
  - lib/bundler/man/bundle-platform.1.ronn
156
+ - lib/bundler/man/bundle-plugin.1
157
+ - lib/bundler/man/bundle-plugin.1.ronn
152
158
  - lib/bundler/man/bundle-pristine.1
153
159
  - lib/bundler/man/bundle-pristine.1.ronn
154
160
  - lib/bundler/man/bundle-remove.1
@@ -157,6 +163,8 @@ files:
157
163
  - lib/bundler/man/bundle-show.1.ronn
158
164
  - lib/bundler/man/bundle-update.1
159
165
  - lib/bundler/man/bundle-update.1.ronn
166
+ - lib/bundler/man/bundle-version.1
167
+ - lib/bundler/man/bundle-version.1.ronn
160
168
  - lib/bundler/man/bundle-viz.1
161
169
  - lib/bundler/man/bundle-viz.1.ronn
162
170
  - lib/bundler/man/bundle.1
@@ -164,7 +172,9 @@ files:
164
172
  - lib/bundler/man/gemfile.5
165
173
  - lib/bundler/man/gemfile.5.ronn
166
174
  - lib/bundler/man/index.txt
175
+ - lib/bundler/match_metadata.rb
167
176
  - lib/bundler/match_platform.rb
177
+ - lib/bundler/match_remote_metadata.rb
168
178
  - lib/bundler/mirror.rb
169
179
  - lib/bundler/plugin.rb
170
180
  - lib/bundler/plugin/api.rb
@@ -177,9 +187,9 @@ files:
177
187
  - lib/bundler/plugin/installer/rubygems.rb
178
188
  - lib/bundler/plugin/source_list.rb
179
189
  - lib/bundler/process_lock.rb
180
- - lib/bundler/psyched_yaml.rb
181
190
  - lib/bundler/remote_specification.rb
182
191
  - lib/bundler/resolver.rb
192
+ - lib/bundler/resolver/base.rb
183
193
  - lib/bundler/resolver/spec_group.rb
184
194
  - lib/bundler/retry.rb
185
195
  - lib/bundler/ruby_dsl.rb
@@ -188,6 +198,7 @@ files:
188
198
  - lib/bundler/rubygems_gem_installer.rb
189
199
  - lib/bundler/rubygems_integration.rb
190
200
  - lib/bundler/runtime.rb
201
+ - lib/bundler/self_manager.rb
191
202
  - lib/bundler/settings.rb
192
203
  - lib/bundler/settings/validator.rb
193
204
  - lib/bundler/setup.rb
@@ -234,10 +245,12 @@ files:
234
245
  - lib/bundler/templates/newgem/newgem.gemspec.tt
235
246
  - lib/bundler/templates/newgem/rspec.tt
236
247
  - lib/bundler/templates/newgem/rubocop.yml.tt
248
+ - lib/bundler/templates/newgem/sig/newgem.rbs.tt
237
249
  - lib/bundler/templates/newgem/spec/newgem_spec.rb.tt
238
250
  - lib/bundler/templates/newgem/spec/spec_helper.rb.tt
239
- - lib/bundler/templates/newgem/test/minitest/newgem_test.rb.tt
251
+ - lib/bundler/templates/newgem/standard.yml.tt
240
252
  - lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt
253
+ - lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
241
254
  - lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt
242
255
  - lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt
243
256
  - lib/bundler/templates/newgem/travis.yml.tt
@@ -246,11 +259,15 @@ files:
246
259
  - lib/bundler/ui/shell.rb
247
260
  - lib/bundler/ui/silent.rb
248
261
  - lib/bundler/uri_credentials_filter.rb
262
+ - lib/bundler/vendor/.document
263
+ - lib/bundler/vendor/connection_pool/LICENSE
249
264
  - lib/bundler/vendor/connection_pool/lib/connection_pool.rb
250
- - lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb
251
265
  - lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb
252
266
  - lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
267
+ - lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb
268
+ - lib/bundler/vendor/fileutils/LICENSE.txt
253
269
  - lib/bundler/vendor/fileutils/lib/fileutils.rb
270
+ - lib/bundler/vendor/molinillo/LICENSE
254
271
  - lib/bundler/vendor/molinillo/lib/molinillo.rb
255
272
  - lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
256
273
  - lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
@@ -271,10 +288,12 @@ files:
271
288
  - lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
272
289
  - lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
273
290
  - lib/bundler/vendor/molinillo/lib/molinillo/state.rb
291
+ - lib/bundler/vendor/net-http-persistent/README.rdoc
274
292
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
275
293
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
276
294
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
277
295
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
296
+ - lib/bundler/vendor/thor/LICENSE.md
278
297
  - lib/bundler/vendor/thor/lib/thor.rb
279
298
  - lib/bundler/vendor/thor/lib/thor/actions.rb
280
299
  - lib/bundler/vendor/thor/lib/thor/actions/create_file.rb
@@ -307,6 +326,9 @@ files:
307
326
  - lib/bundler/vendor/thor/lib/thor/util.rb
308
327
  - lib/bundler/vendor/thor/lib/thor/version.rb
309
328
  - lib/bundler/vendor/tmpdir/lib/tmpdir.rb
329
+ - lib/bundler/vendor/tsort/LICENSE.txt
330
+ - lib/bundler/vendor/tsort/lib/tsort.rb
331
+ - lib/bundler/vendor/uri/LICENSE.txt
310
332
  - lib/bundler/vendor/uri/lib/uri.rb
311
333
  - lib/bundler/vendor/uri/lib/uri/common.rb
312
334
  - lib/bundler/vendor/uri/lib/uri/file.rb
@@ -320,11 +342,14 @@ files:
320
342
  - lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb
321
343
  - lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb
322
344
  - lib/bundler/vendor/uri/lib/uri/version.rb
345
+ - lib/bundler/vendor/uri/lib/uri/ws.rb
346
+ - lib/bundler/vendor/uri/lib/uri/wss.rb
323
347
  - lib/bundler/vendored_fileutils.rb
324
348
  - lib/bundler/vendored_molinillo.rb
325
349
  - lib/bundler/vendored_persistent.rb
326
350
  - lib/bundler/vendored_thor.rb
327
351
  - lib/bundler/vendored_tmpdir.rb
352
+ - lib/bundler/vendored_tsort.rb
328
353
  - lib/bundler/vendored_uri.rb
329
354
  - lib/bundler/version.rb
330
355
  - lib/bundler/version_ranges.rb
@@ -338,8 +363,8 @@ metadata:
338
363
  bug_tracker_uri: https://github.com/rubygems/rubygems/issues?q=is%3Aopen+is%3Aissue+label%3ABundler
339
364
  changelog_uri: https://github.com/rubygems/rubygems/blob/master/bundler/CHANGELOG.md
340
365
  homepage_uri: https://bundler.io/
341
- source_code_uri: https://github.com/rubygems/rubygems/
342
- post_install_message:
366
+ source_code_uri: https://github.com/rubygems/rubygems/tree/master/bundler
367
+ post_install_message:
343
368
  rdoc_options: []
344
369
  require_paths:
345
370
  - lib
@@ -354,8 +379,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
354
379
  - !ruby/object:Gem::Version
355
380
  version: 2.5.2
356
381
  requirements: []
357
- rubygems_version: 3.2.26
358
- signing_key:
382
+ rubygems_version: 3.3.26
383
+ signing_key:
359
384
  specification_version: 4
360
385
  summary: The best way to manage your application's dependencies
361
386
  test_files: []
@@ -1,55 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bundler
4
- class DepProxy
5
- attr_reader :__platform, :dep
6
-
7
- @proxies = {}
8
-
9
- def self.get_proxy(dep, platform)
10
- @proxies[[dep, platform]] ||= new(dep, platform).freeze
11
- end
12
-
13
- def initialize(dep, platform)
14
- @dep = dep
15
- @__platform = platform
16
- end
17
-
18
- private_class_method :new
19
-
20
- alias_method :eql?, :==
21
-
22
- def type
23
- @dep.type
24
- end
25
-
26
- def name
27
- @dep.name
28
- end
29
-
30
- def requirement
31
- @dep.requirement
32
- end
33
-
34
- def to_s
35
- s = name.dup
36
- s << " (#{requirement})" unless requirement == Gem::Requirement.default
37
- s << " #{__platform}" unless __platform == Gem::Platform::RUBY
38
- s
39
- end
40
-
41
- def dup
42
- raise NoMethodError.new("DepProxy cannot be duplicated")
43
- end
44
-
45
- def clone
46
- raise NoMethodError.new("DepProxy cannot be cloned")
47
- end
48
-
49
- private
50
-
51
- def method_missing(*args, &blk)
52
- @dep.send(*args, &blk)
53
- end
54
- end
55
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bundler
4
- class Gemdeps
5
- def initialize(runtime)
6
- @runtime = runtime
7
- end
8
-
9
- def requested_specs
10
- @runtime.requested_specs
11
- end
12
-
13
- def specs
14
- @runtime.specs
15
- end
16
-
17
- def dependencies
18
- @runtime.dependencies
19
- end
20
-
21
- def current_dependencies
22
- @runtime.current_dependencies
23
- end
24
-
25
- def requires
26
- @runtime.requires
27
- end
28
- end
29
- end