bundler 2.2.3 → 2.3.5

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 (183) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +503 -7
  3. data/README.md +1 -1
  4. data/bundler.gemspec +2 -3
  5. data/exe/bundle +7 -8
  6. data/lib/bundler/.document +1 -0
  7. data/lib/bundler/build_metadata.rb +2 -2
  8. data/lib/bundler/cli/cache.rb +2 -1
  9. data/lib/bundler/cli/check.rb +4 -2
  10. data/lib/bundler/cli/common.rb +15 -2
  11. data/lib/bundler/cli/doctor.rb +15 -4
  12. data/lib/bundler/cli/exec.rb +1 -6
  13. data/lib/bundler/cli/gem.rb +132 -24
  14. data/lib/bundler/cli/info.rb +16 -4
  15. data/lib/bundler/cli/install.rb +12 -27
  16. data/lib/bundler/cli/issue.rb +4 -3
  17. data/lib/bundler/cli/list.rb +7 -1
  18. data/lib/bundler/cli/lock.rb +5 -1
  19. data/lib/bundler/cli/open.rb +1 -2
  20. data/lib/bundler/cli/outdated.rb +10 -11
  21. data/lib/bundler/cli/remove.rb +1 -2
  22. data/lib/bundler/cli/update.rb +17 -8
  23. data/lib/bundler/cli.rb +44 -60
  24. data/lib/bundler/compact_index_client/cache.rb +0 -9
  25. data/lib/bundler/compact_index_client/updater.rb +10 -19
  26. data/lib/bundler/compact_index_client.rb +2 -8
  27. data/lib/bundler/current_ruby.rb +5 -4
  28. data/lib/bundler/definition.rb +158 -316
  29. data/lib/bundler/dep_proxy.rb +15 -8
  30. data/lib/bundler/dependency.rb +5 -7
  31. data/lib/bundler/digest.rb +71 -0
  32. data/lib/bundler/dsl.rb +67 -66
  33. data/lib/bundler/endpoint_specification.rb +21 -11
  34. data/lib/bundler/environment_preserver.rb +4 -1
  35. data/lib/bundler/errors.rb +19 -3
  36. data/lib/bundler/feature_flag.rb +0 -5
  37. data/lib/bundler/fetcher/compact_index.rb +10 -15
  38. data/lib/bundler/fetcher/downloader.rb +9 -6
  39. data/lib/bundler/fetcher/index.rb +0 -27
  40. data/lib/bundler/fetcher.rb +10 -17
  41. data/lib/bundler/friendly_errors.rb +5 -32
  42. data/lib/bundler/gem_helper.rb +28 -21
  43. data/lib/bundler/gem_version_promoter.rb +2 -2
  44. data/lib/bundler/index.rb +8 -12
  45. data/lib/bundler/injector.rb +12 -3
  46. data/lib/bundler/inline.rb +2 -1
  47. data/lib/bundler/installer/gem_installer.rb +4 -22
  48. data/lib/bundler/installer/parallel_installer.rb +36 -15
  49. data/lib/bundler/installer/standalone.rb +29 -9
  50. data/lib/bundler/installer.rb +8 -34
  51. data/lib/bundler/lazy_specification.rb +32 -20
  52. data/lib/bundler/lockfile_generator.rb +1 -1
  53. data/lib/bundler/lockfile_parser.rb +16 -45
  54. data/{man → lib/bundler/man}/bundle-add.1 +10 -2
  55. data/lib/bundler/man/bundle-add.1.ronn +7 -1
  56. data/{man → lib/bundler/man}/bundle-binstubs.1 +1 -1
  57. data/{man → lib/bundler/man}/bundle-cache.1 +1 -1
  58. data/{man → lib/bundler/man}/bundle-check.1 +1 -1
  59. data/{man → lib/bundler/man}/bundle-clean.1 +1 -1
  60. data/{man → lib/bundler/man}/bundle-config.1 +27 -19
  61. data/lib/bundler/man/bundle-config.1.ronn +33 -25
  62. data/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
  63. data/{man → lib/bundler/man}/bundle-exec.1 +1 -1
  64. data/{man → lib/bundler/man}/bundle-gem.1 +14 -1
  65. data/lib/bundler/man/bundle-gem.1.ronn +16 -0
  66. data/{man → lib/bundler/man}/bundle-info.1 +1 -1
  67. data/{man → lib/bundler/man}/bundle-init.1 +1 -1
  68. data/{man → lib/bundler/man}/bundle-inject.1 +1 -1
  69. data/{man → lib/bundler/man}/bundle-install.1 +2 -2
  70. data/lib/bundler/man/bundle-install.1.ronn +2 -2
  71. data/{man → lib/bundler/man}/bundle-list.1 +1 -1
  72. data/{man → lib/bundler/man}/bundle-lock.1 +1 -1
  73. data/{man → lib/bundler/man}/bundle-open.1 +1 -1
  74. data/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
  75. data/{man → lib/bundler/man}/bundle-platform.1 +1 -1
  76. data/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
  77. data/{man → lib/bundler/man}/bundle-remove.1 +1 -1
  78. data/{man → lib/bundler/man}/bundle-show.1 +1 -1
  79. data/{man → lib/bundler/man}/bundle-update.1 +5 -5
  80. data/lib/bundler/man/bundle-update.1.ronn +5 -4
  81. data/{man → lib/bundler/man}/bundle-viz.1 +1 -1
  82. data/{man → lib/bundler/man}/bundle.1 +1 -1
  83. data/{man → lib/bundler/man}/gemfile.5 +28 -2
  84. data/lib/bundler/man/gemfile.5.ronn +9 -1
  85. data/{man → lib/bundler/man}/index.txt +0 -0
  86. data/lib/bundler/plugin/api/source.rb +22 -0
  87. data/lib/bundler/plugin/index.rb +4 -1
  88. data/lib/bundler/plugin/installer.rb +10 -10
  89. data/lib/bundler/plugin/source_list.rb +4 -0
  90. data/lib/bundler/plugin.rb +28 -8
  91. data/lib/bundler/process_lock.rb +1 -1
  92. data/lib/bundler/psyched_yaml.rb +1 -13
  93. data/lib/bundler/resolver/spec_group.rb +36 -48
  94. data/lib/bundler/resolver.rb +97 -151
  95. data/lib/bundler/retry.rb +1 -1
  96. data/lib/bundler/ruby_version.rb +1 -1
  97. data/lib/bundler/rubygems_ext.rb +46 -8
  98. data/lib/bundler/rubygems_gem_installer.rb +68 -1
  99. data/lib/bundler/rubygems_integration.rb +43 -60
  100. data/lib/bundler/runtime.rb +18 -11
  101. data/lib/bundler/self_manager.rb +168 -0
  102. data/lib/bundler/settings.rb +97 -21
  103. data/lib/bundler/setup.rb +2 -2
  104. data/lib/bundler/shared_helpers.rb +6 -21
  105. data/lib/bundler/source/git/git_proxy.rb +60 -53
  106. data/lib/bundler/source/git.rb +38 -18
  107. data/lib/bundler/source/metadata.rb +1 -5
  108. data/lib/bundler/source/path/installer.rb +3 -1
  109. data/lib/bundler/source/path.rb +3 -1
  110. data/lib/bundler/source/rubygems.rb +113 -100
  111. data/lib/bundler/source/rubygems_aggregate.rb +68 -0
  112. data/lib/bundler/source.rb +21 -0
  113. data/lib/bundler/source_list.rb +100 -62
  114. data/lib/bundler/source_map.rb +58 -0
  115. data/lib/bundler/spec_set.rb +21 -34
  116. data/lib/bundler/stub_specification.rb +8 -0
  117. data/lib/bundler/templates/Executable.bundler +7 -7
  118. data/lib/bundler/templates/Gemfile +0 -2
  119. data/lib/bundler/templates/gems.rb +0 -3
  120. data/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  121. data/lib/bundler/templates/newgem/Gemfile.tt +5 -2
  122. data/lib/bundler/templates/newgem/README.md.tt +5 -3
  123. data/lib/bundler/templates/newgem/Rakefile.tt +15 -2
  124. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +15 -6
  125. data/lib/bundler/templates/newgem/newgem.gemspec.tt +18 -16
  126. data/lib/bundler/templates/newgem/rubocop.yml.tt +3 -0
  127. data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  128. data/lib/bundler/templates/newgem/standard.yml.tt +2 -0
  129. data/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
  130. data/lib/bundler/ui/shell.rb +1 -1
  131. data/lib/bundler/vendor/.document +1 -0
  132. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  133. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
  134. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  135. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
  136. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
  137. data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  138. data/lib/bundler/vendor/molinillo/LICENSE +9 -0
  139. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  140. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
  141. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -3
  142. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +2 -2
  143. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
  144. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +11 -7
  145. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  146. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  147. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +9 -7
  148. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
  149. data/lib/bundler/vendor/thor/lib/thor/actions.rb +7 -3
  150. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
  151. data/lib/bundler/vendor/thor/lib/thor/error.rb +10 -5
  152. data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
  153. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +28 -9
  154. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +27 -6
  155. data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
  156. data/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  157. data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  158. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  159. data/lib/bundler/vendor/thor/lib/thor.rb +5 -6
  160. data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +1 -1
  161. data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  162. data/lib/bundler/vendor/tsort/lib/tsort.rb +453 -0
  163. data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  164. data/lib/bundler/vendor/uri/lib/uri/common.rb +17 -80
  165. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
  166. data/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
  167. data/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
  168. data/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
  169. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  170. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
  171. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
  172. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
  173. data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  174. data/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
  175. data/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
  176. data/lib/bundler/vendor/uri/lib/uri.rb +0 -1
  177. data/lib/bundler/vendored_tsort.rb +4 -0
  178. data/lib/bundler/version.rb +1 -1
  179. data/lib/bundler/worker.rb +19 -4
  180. data/lib/bundler.rb +29 -33
  181. metadata +54 -35
  182. data/lib/bundler/gemdeps.rb +0 -29
  183. data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
@@ -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.3".freeze
4
+ VERSION = "2.3.5".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -21,12 +21,12 @@ 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
29
- SharedHelpers.trap("INT") { abort_threads }
29
+ @previous_interrupt_handler = nil
30
30
  end
31
31
 
32
32
  # Enqueue a request to be executed in the worker pool
@@ -68,13 +68,16 @@ module Bundler
68
68
  # so as worker threads after retrieving it, shut themselves down
69
69
  def stop_threads
70
70
  return unless @threads
71
+
71
72
  @threads.each { @request_queue.enq POISON }
72
73
  @threads.each(&:join)
74
+
75
+ remove_interrupt_handler
76
+
73
77
  @threads = nil
74
78
  end
75
79
 
76
80
  def abort_threads
77
- return unless @threads
78
81
  Bundler.ui.debug("\n#{caller.join("\n")}")
79
82
  @threads.each(&:exit)
80
83
  exit 1
@@ -94,11 +97,23 @@ module Bundler
94
97
  end
95
98
  end.compact
96
99
 
100
+ add_interrupt_handler unless @threads.empty?
101
+
97
102
  return if creation_errors.empty?
98
103
 
99
104
  message = "Failed to create threads for the #{name} worker: #{creation_errors.map(&:to_s).uniq.join(", ")}"
100
105
  raise ThreadCreationError, message if @threads.empty?
101
106
  Bundler.ui.info message
102
107
  end
108
+
109
+ def add_interrupt_handler
110
+ @previous_interrupt_handler = trap("INT") { abort_threads }
111
+ end
112
+
113
+ def remove_interrupt_handler
114
+ return unless @previous_interrupt_handler
115
+
116
+ trap "INT", @previous_interrupt_handler
117
+ end
103
118
  end
104
119
  end
data/lib/bundler.rb CHANGED
@@ -37,12 +37,13 @@ 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
44
  autoload :DepProxy, File.expand_path("bundler/dep_proxy", __dir__)
45
45
  autoload :Deprecate, File.expand_path("bundler/deprecate", __dir__)
46
+ autoload :Digest, File.expand_path("bundler/digest", __dir__)
46
47
  autoload :Dsl, File.expand_path("bundler/dsl", __dir__)
47
48
  autoload :EndpointSpecification, File.expand_path("bundler/endpoint_specification", __dir__)
48
49
  autoload :Env, File.expand_path("bundler/env", __dir__)
@@ -63,13 +64,14 @@ module Bundler
63
64
  autoload :Resolver, File.expand_path("bundler/resolver", __dir__)
64
65
  autoload :Retry, File.expand_path("bundler/retry", __dir__)
65
66
  autoload :RubyDsl, File.expand_path("bundler/ruby_dsl", __dir__)
66
- autoload :RubyGemsGemInstaller, File.expand_path("bundler/rubygems_gem_installer", __dir__)
67
67
  autoload :RubyVersion, File.expand_path("bundler/ruby_version", __dir__)
68
68
  autoload :Runtime, File.expand_path("bundler/runtime", __dir__)
69
+ autoload :SelfManager, File.expand_path("bundler/self_manager", __dir__)
69
70
  autoload :Settings, File.expand_path("bundler/settings", __dir__)
70
71
  autoload :SharedHelpers, File.expand_path("bundler/shared_helpers", __dir__)
71
72
  autoload :Source, File.expand_path("bundler/source", __dir__)
72
73
  autoload :SourceList, File.expand_path("bundler/source_list", __dir__)
74
+ autoload :SourceMap, File.expand_path("bundler/source_map", __dir__)
73
75
  autoload :SpecSet, File.expand_path("bundler/spec_set", __dir__)
74
76
  autoload :StubSpecification, File.expand_path("bundler/stub_specification", __dir__)
75
77
  autoload :UI, File.expand_path("bundler/ui", __dir__)
@@ -198,7 +200,7 @@ module Bundler
198
200
 
199
201
  def frozen_bundle?
200
202
  frozen = settings[:deployment]
201
- frozen ||= settings[:frozen] unless feature_flag.deployment_means_frozen?
203
+ frozen ||= settings[:frozen]
202
204
  frozen
203
205
  end
204
206
 
@@ -236,8 +238,9 @@ module Bundler
236
238
  end
237
239
 
238
240
  if warning
239
- user_home = tmp_home_path(warning)
240
- Bundler.ui.warn "#{warning}\nBundler will use `#{user_home}' as your home directory temporarily.\n"
241
+ Bundler.ui.warn "#{warning}\n"
242
+ user_home = tmp_home_path
243
+ Bundler.ui.warn "Bundler will use `#{user_home}' as your home directory temporarily.\n"
241
244
  user_home
242
245
  else
243
246
  Pathname.new(home)
@@ -441,7 +444,7 @@ EOF
441
444
  end
442
445
 
443
446
  def local_platform
444
- return Gem::Platform::RUBY if settings[:force_ruby_platform]
447
+ return Gem::Platform::RUBY if settings[:force_ruby_platform] || Gem.platforms == [Gem::Platform::RUBY]
445
448
  Gem::Platform.local
446
449
  end
447
450
 
@@ -635,15 +638,26 @@ EOF
635
638
  @rubygems = nil
636
639
  end
637
640
 
641
+ def configure_gem_home_and_path(path = bundle_path)
642
+ configure_gem_path
643
+ configure_gem_home(path)
644
+ Bundler.rubygems.clear_paths
645
+ end
646
+
647
+ def self_manager
648
+ @self_manager ||= begin
649
+ require_relative "bundler/self_manager"
650
+ Bundler::SelfManager.new
651
+ end
652
+ end
653
+
638
654
  private
639
655
 
640
656
  def eval_yaml_gemspec(path, contents)
641
657
  require_relative "bundler/psyched_yaml"
642
658
 
643
- # If the YAML is invalid, Syck raises an ArgumentError, and Psych
644
- # raises a Psych::SyntaxError. See psyched_yaml.rb for more info.
645
659
  Gem::Specification.from_yaml(contents)
646
- rescue YamlLibrarySyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception
660
+ rescue ::Psych::SyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception
647
661
  eval_gemspec(path, contents)
648
662
  end
649
663
 
@@ -652,47 +666,29 @@ EOF
652
666
  rescue ScriptError, StandardError => e
653
667
  msg = "There was an error while loading `#{path.basename}`: #{e.message}"
654
668
 
655
- if e.is_a?(LoadError)
656
- msg += "\nDoes it try to require a relative path? That's been removed in Ruby 1.9"
657
- end
658
-
659
669
  raise GemspecError, Dsl::DSLError.new(msg, path, e.backtrace, contents)
660
670
  end
661
671
 
662
- def configure_gem_home_and_path
663
- configure_gem_path
664
- configure_gem_home
665
- bundle_path
666
- end
667
-
668
- def configure_gem_path(env = ENV)
669
- blank_home = env["GEM_HOME"].nil? || env["GEM_HOME"].empty?
670
- if !use_system_gems?
672
+ def configure_gem_path
673
+ unless use_system_gems?
671
674
  # this needs to be empty string to cause
672
675
  # PathSupport.split_gem_path to only load up the
673
676
  # Bundler --path setting as the GEM_PATH.
674
- env["GEM_PATH"] = ""
675
- elsif blank_home
676
- possibles = [Bundler.rubygems.gem_dir, Bundler.rubygems.gem_path]
677
- paths = possibles.flatten.compact.uniq.reject(&:empty?)
678
- env["GEM_PATH"] = paths.join(File::PATH_SEPARATOR)
677
+ Bundler::SharedHelpers.set_env "GEM_PATH", ""
679
678
  end
680
679
  end
681
680
 
682
- def configure_gem_home
683
- Bundler::SharedHelpers.set_env "GEM_HOME", File.expand_path(bundle_path, root)
684
- Bundler.rubygems.clear_paths
681
+ def configure_gem_home(path)
682
+ Bundler::SharedHelpers.set_env "GEM_HOME", path.to_s
685
683
  end
686
684
 
687
- def tmp_home_path(warning)
685
+ def tmp_home_path
688
686
  Kernel.send(:require, "tmpdir")
689
687
  SharedHelpers.filesystem_access(Dir.tmpdir) do
690
688
  path = Bundler.tmp
691
689
  at_exit { Bundler.rm_rf(path) }
692
690
  path
693
691
  end
694
- rescue RuntimeError => e
695
- raise e.exception("#{warning}\nBundler also failed to create a temporary home directory':\n#{e}")
696
692
  end
697
693
 
698
694
  # @param env [Hash]
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.3
4
+ version: 2.3.5
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: 2020-12-22 00:00:00.000000000 Z
25
+ date: 2022-01-12 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
@@ -83,6 +84,7 @@ files:
83
84
  - lib/bundler/dependency.rb
84
85
  - lib/bundler/deployment.rb
85
86
  - lib/bundler/deprecate.rb
87
+ - lib/bundler/digest.rb
86
88
  - lib/bundler/dsl.rb
87
89
  - lib/bundler/endpoint_specification.rb
88
90
  - lib/bundler/env.rb
@@ -100,7 +102,6 @@ files:
100
102
  - lib/bundler/gem_helpers.rb
101
103
  - lib/bundler/gem_tasks.rb
102
104
  - lib/bundler/gem_version_promoter.rb
103
- - lib/bundler/gemdeps.rb
104
105
  - lib/bundler/graph.rb
105
106
  - lib/bundler/index.rb
106
107
  - lib/bundler/injector.rb
@@ -113,31 +114,57 @@ files:
113
114
  - lib/bundler/lockfile_generator.rb
114
115
  - lib/bundler/lockfile_parser.rb
115
116
  - lib/bundler/man/.document
117
+ - lib/bundler/man/bundle-add.1
116
118
  - lib/bundler/man/bundle-add.1.ronn
119
+ - lib/bundler/man/bundle-binstubs.1
117
120
  - lib/bundler/man/bundle-binstubs.1.ronn
121
+ - lib/bundler/man/bundle-cache.1
118
122
  - lib/bundler/man/bundle-cache.1.ronn
123
+ - lib/bundler/man/bundle-check.1
119
124
  - lib/bundler/man/bundle-check.1.ronn
125
+ - lib/bundler/man/bundle-clean.1
120
126
  - lib/bundler/man/bundle-clean.1.ronn
127
+ - lib/bundler/man/bundle-config.1
121
128
  - lib/bundler/man/bundle-config.1.ronn
129
+ - lib/bundler/man/bundle-doctor.1
122
130
  - lib/bundler/man/bundle-doctor.1.ronn
131
+ - lib/bundler/man/bundle-exec.1
123
132
  - lib/bundler/man/bundle-exec.1.ronn
133
+ - lib/bundler/man/bundle-gem.1
124
134
  - lib/bundler/man/bundle-gem.1.ronn
135
+ - lib/bundler/man/bundle-info.1
125
136
  - lib/bundler/man/bundle-info.1.ronn
137
+ - lib/bundler/man/bundle-init.1
126
138
  - lib/bundler/man/bundle-init.1.ronn
139
+ - lib/bundler/man/bundle-inject.1
127
140
  - lib/bundler/man/bundle-inject.1.ronn
141
+ - lib/bundler/man/bundle-install.1
128
142
  - lib/bundler/man/bundle-install.1.ronn
143
+ - lib/bundler/man/bundle-list.1
129
144
  - lib/bundler/man/bundle-list.1.ronn
145
+ - lib/bundler/man/bundle-lock.1
130
146
  - lib/bundler/man/bundle-lock.1.ronn
147
+ - lib/bundler/man/bundle-open.1
131
148
  - lib/bundler/man/bundle-open.1.ronn
149
+ - lib/bundler/man/bundle-outdated.1
132
150
  - lib/bundler/man/bundle-outdated.1.ronn
151
+ - lib/bundler/man/bundle-platform.1
133
152
  - lib/bundler/man/bundle-platform.1.ronn
153
+ - lib/bundler/man/bundle-pristine.1
134
154
  - lib/bundler/man/bundle-pristine.1.ronn
155
+ - lib/bundler/man/bundle-remove.1
135
156
  - lib/bundler/man/bundle-remove.1.ronn
157
+ - lib/bundler/man/bundle-show.1
136
158
  - lib/bundler/man/bundle-show.1.ronn
159
+ - lib/bundler/man/bundle-update.1
137
160
  - lib/bundler/man/bundle-update.1.ronn
161
+ - lib/bundler/man/bundle-viz.1
138
162
  - lib/bundler/man/bundle-viz.1.ronn
163
+ - lib/bundler/man/bundle.1
139
164
  - lib/bundler/man/bundle.1.ronn
165
+ - lib/bundler/man/gemfile.5
140
166
  - lib/bundler/man/gemfile.5.ronn
167
+ - lib/bundler/man/index.txt
141
168
  - lib/bundler/match_platform.rb
142
169
  - lib/bundler/mirror.rb
143
170
  - lib/bundler/plugin.rb
@@ -162,6 +189,7 @@ files:
162
189
  - lib/bundler/rubygems_gem_installer.rb
163
190
  - lib/bundler/rubygems_integration.rb
164
191
  - lib/bundler/runtime.rb
192
+ - lib/bundler/self_manager.rb
165
193
  - lib/bundler/settings.rb
166
194
  - lib/bundler/settings/validator.rb
167
195
  - lib/bundler/setup.rb
@@ -176,7 +204,9 @@ files:
176
204
  - lib/bundler/source/path/installer.rb
177
205
  - lib/bundler/source/rubygems.rb
178
206
  - lib/bundler/source/rubygems/remote.rb
207
+ - lib/bundler/source/rubygems_aggregate.rb
179
208
  - lib/bundler/source_list.rb
209
+ - lib/bundler/source_map.rb
180
210
  - lib/bundler/spec_set.rb
181
211
  - lib/bundler/stub_specification.rb
182
212
  - lib/bundler/templates/.document
@@ -185,6 +215,7 @@ files:
185
215
  - lib/bundler/templates/Executable.standalone
186
216
  - lib/bundler/templates/Gemfile
187
217
  - lib/bundler/templates/gems.rb
218
+ - lib/bundler/templates/newgem/CHANGELOG.md.tt
188
219
  - lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
189
220
  - lib/bundler/templates/newgem/Gemfile.tt
190
221
  - lib/bundler/templates/newgem/LICENSE.txt.tt
@@ -205,10 +236,12 @@ files:
205
236
  - lib/bundler/templates/newgem/newgem.gemspec.tt
206
237
  - lib/bundler/templates/newgem/rspec.tt
207
238
  - lib/bundler/templates/newgem/rubocop.yml.tt
239
+ - lib/bundler/templates/newgem/sig/newgem.rbs.tt
208
240
  - lib/bundler/templates/newgem/spec/newgem_spec.rb.tt
209
241
  - lib/bundler/templates/newgem/spec/spec_helper.rb.tt
210
- - lib/bundler/templates/newgem/test/minitest/newgem_test.rb.tt
242
+ - lib/bundler/templates/newgem/standard.yml.tt
211
243
  - lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt
244
+ - lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
212
245
  - lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt
213
246
  - lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt
214
247
  - lib/bundler/templates/newgem/travis.yml.tt
@@ -217,11 +250,15 @@ files:
217
250
  - lib/bundler/ui/shell.rb
218
251
  - lib/bundler/ui/silent.rb
219
252
  - lib/bundler/uri_credentials_filter.rb
253
+ - lib/bundler/vendor/.document
254
+ - lib/bundler/vendor/connection_pool/LICENSE
220
255
  - lib/bundler/vendor/connection_pool/lib/connection_pool.rb
221
- - lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb
222
256
  - lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb
223
257
  - lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
258
+ - lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb
259
+ - lib/bundler/vendor/fileutils/LICENSE.txt
224
260
  - lib/bundler/vendor/fileutils/lib/fileutils.rb
261
+ - lib/bundler/vendor/molinillo/LICENSE
225
262
  - lib/bundler/vendor/molinillo/lib/molinillo.rb
226
263
  - lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
227
264
  - lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
@@ -242,10 +279,12 @@ files:
242
279
  - lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
243
280
  - lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
244
281
  - lib/bundler/vendor/molinillo/lib/molinillo/state.rb
282
+ - lib/bundler/vendor/net-http-persistent/README.rdoc
245
283
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
246
284
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
247
285
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
248
286
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
287
+ - lib/bundler/vendor/thor/LICENSE.md
249
288
  - lib/bundler/vendor/thor/lib/thor.rb
250
289
  - lib/bundler/vendor/thor/lib/thor/actions.rb
251
290
  - lib/bundler/vendor/thor/lib/thor/actions/create_file.rb
@@ -278,6 +317,9 @@ files:
278
317
  - lib/bundler/vendor/thor/lib/thor/util.rb
279
318
  - lib/bundler/vendor/thor/lib/thor/version.rb
280
319
  - lib/bundler/vendor/tmpdir/lib/tmpdir.rb
320
+ - lib/bundler/vendor/tsort/LICENSE.txt
321
+ - lib/bundler/vendor/tsort/lib/tsort.rb
322
+ - lib/bundler/vendor/uri/LICENSE.txt
281
323
  - lib/bundler/vendor/uri/lib/uri.rb
282
324
  - lib/bundler/vendor/uri/lib/uri/common.rb
283
325
  - lib/bundler/vendor/uri/lib/uri/file.rb
@@ -291,43 +333,20 @@ files:
291
333
  - lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb
292
334
  - lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb
293
335
  - lib/bundler/vendor/uri/lib/uri/version.rb
336
+ - lib/bundler/vendor/uri/lib/uri/ws.rb
337
+ - lib/bundler/vendor/uri/lib/uri/wss.rb
294
338
  - lib/bundler/vendored_fileutils.rb
295
339
  - lib/bundler/vendored_molinillo.rb
296
340
  - lib/bundler/vendored_persistent.rb
297
341
  - lib/bundler/vendored_thor.rb
298
342
  - lib/bundler/vendored_tmpdir.rb
343
+ - lib/bundler/vendored_tsort.rb
299
344
  - lib/bundler/vendored_uri.rb
300
345
  - lib/bundler/version.rb
301
346
  - lib/bundler/version_ranges.rb
302
347
  - lib/bundler/vlad.rb
303
348
  - lib/bundler/worker.rb
304
349
  - lib/bundler/yaml_serializer.rb
305
- - man/bundle-add.1
306
- - man/bundle-binstubs.1
307
- - man/bundle-cache.1
308
- - man/bundle-check.1
309
- - man/bundle-clean.1
310
- - man/bundle-config.1
311
- - man/bundle-doctor.1
312
- - man/bundle-exec.1
313
- - man/bundle-gem.1
314
- - man/bundle-info.1
315
- - man/bundle-init.1
316
- - man/bundle-inject.1
317
- - man/bundle-install.1
318
- - man/bundle-list.1
319
- - man/bundle-lock.1
320
- - man/bundle-open.1
321
- - man/bundle-outdated.1
322
- - man/bundle-platform.1
323
- - man/bundle-pristine.1
324
- - man/bundle-remove.1
325
- - man/bundle-show.1
326
- - man/bundle-update.1
327
- - man/bundle-viz.1
328
- - man/bundle.1
329
- - man/gemfile.5
330
- - man/index.txt
331
350
  homepage: https://bundler.io
332
351
  licenses:
333
352
  - MIT
@@ -336,7 +355,7 @@ metadata:
336
355
  changelog_uri: https://github.com/rubygems/rubygems/blob/master/bundler/CHANGELOG.md
337
356
  homepage_uri: https://bundler.io/
338
357
  source_code_uri: https://github.com/rubygems/rubygems/
339
- post_install_message:
358
+ post_install_message:
340
359
  rdoc_options: []
341
360
  require_paths:
342
361
  - lib
@@ -351,8 +370,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
351
370
  - !ruby/object:Gem::Version
352
371
  version: 2.5.2
353
372
  requirements: []
354
- rubygems_version: 3.2.3
355
- signing_key:
373
+ rubygems_version: 3.3.5
374
+ signing_key:
356
375
  specification_version: 4
357
376
  summary: The best way to manage your application's dependencies
358
377
  test_files: []