bundler 2.2.11 → 2.3.6

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 (174) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +414 -5
  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 +1 -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 +24 -5
  12. data/lib/bundler/cli/exec.rb +1 -6
  13. data/lib/bundler/cli/gem.rb +130 -26
  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/platform.rb +1 -1
  22. data/lib/bundler/cli/remove.rb +1 -2
  23. data/lib/bundler/cli/update.rb +17 -8
  24. data/lib/bundler/cli.rb +41 -55
  25. data/lib/bundler/compact_index_client/cache.rb +0 -9
  26. data/lib/bundler/compact_index_client/updater.rb +10 -11
  27. data/lib/bundler/compact_index_client.rb +2 -8
  28. data/lib/bundler/current_ruby.rb +5 -4
  29. data/lib/bundler/definition.rb +147 -290
  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/env.rb +1 -1
  35. data/lib/bundler/environment_preserver.rb +4 -1
  36. data/lib/bundler/errors.rb +19 -3
  37. data/lib/bundler/feature_flag.rb +0 -4
  38. data/lib/bundler/fetcher/compact_index.rb +10 -15
  39. data/lib/bundler/fetcher/downloader.rb +9 -6
  40. data/lib/bundler/fetcher/index.rb +0 -27
  41. data/lib/bundler/fetcher.rb +10 -16
  42. data/lib/bundler/friendly_errors.rb +5 -32
  43. data/lib/bundler/gem_helper.rb +21 -16
  44. data/lib/bundler/index.rb +2 -7
  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 +14 -9
  50. data/lib/bundler/installer.rb +8 -17
  51. data/lib/bundler/lazy_specification.rb +23 -2
  52. data/lib/bundler/lockfile_generator.rb +1 -1
  53. data/lib/bundler/lockfile_parser.rb +16 -45
  54. data/lib/bundler/man/bundle-add.1 +10 -2
  55. data/lib/bundler/man/bundle-add.1.ronn +7 -1
  56. data/lib/bundler/man/bundle-binstubs.1 +1 -1
  57. data/lib/bundler/man/bundle-cache.1 +1 -1
  58. data/lib/bundler/man/bundle-check.1 +1 -1
  59. data/lib/bundler/man/bundle-clean.1 +1 -1
  60. data/lib/bundler/man/bundle-config.1 +23 -15
  61. data/lib/bundler/man/bundle-config.1.ronn +24 -17
  62. data/lib/bundler/man/bundle-doctor.1 +1 -1
  63. data/lib/bundler/man/bundle-exec.1 +1 -1
  64. data/lib/bundler/man/bundle-gem.1 +14 -1
  65. data/lib/bundler/man/bundle-gem.1.ronn +16 -0
  66. data/lib/bundler/man/bundle-info.1 +1 -1
  67. data/lib/bundler/man/bundle-init.1 +1 -1
  68. data/lib/bundler/man/bundle-inject.1 +1 -1
  69. data/lib/bundler/man/bundle-install.1 +2 -2
  70. data/lib/bundler/man/bundle-install.1.ronn +2 -2
  71. data/lib/bundler/man/bundle-list.1 +1 -1
  72. data/lib/bundler/man/bundle-lock.1 +1 -1
  73. data/lib/bundler/man/bundle-open.1 +1 -1
  74. data/lib/bundler/man/bundle-outdated.1 +1 -1
  75. data/lib/bundler/man/bundle-platform.1 +1 -1
  76. data/lib/bundler/man/bundle-pristine.1 +1 -1
  77. data/lib/bundler/man/bundle-remove.1 +1 -1
  78. data/lib/bundler/man/bundle-show.1 +1 -1
  79. data/lib/bundler/man/bundle-update.1 +5 -5
  80. data/lib/bundler/man/bundle-update.1.ronn +5 -4
  81. data/lib/bundler/man/bundle-viz.1 +1 -1
  82. data/lib/bundler/man/bundle.1 +1 -1
  83. data/lib/bundler/man/gemfile.5 +28 -2
  84. data/lib/bundler/man/gemfile.5.ronn +9 -1
  85. data/lib/bundler/plugin/api/source.rb +22 -0
  86. data/lib/bundler/plugin/index.rb +4 -1
  87. data/lib/bundler/plugin/installer.rb +10 -10
  88. data/lib/bundler/plugin/source_list.rb +4 -0
  89. data/lib/bundler/plugin.rb +28 -8
  90. data/lib/bundler/process_lock.rb +1 -1
  91. data/lib/bundler/psyched_yaml.rb +1 -13
  92. data/lib/bundler/remote_specification.rb +7 -0
  93. data/lib/bundler/resolver/spec_group.rb +1 -25
  94. data/lib/bundler/resolver.rb +55 -147
  95. data/lib/bundler/retry.rb +1 -1
  96. data/lib/bundler/ruby_version.rb +1 -1
  97. data/lib/bundler/rubygems_ext.rb +30 -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 +96 -20
  103. data/lib/bundler/setup.rb +2 -2
  104. data/lib/bundler/shared_helpers.rb +4 -19
  105. data/lib/bundler/source/git/git_proxy.rb +8 -6
  106. data/lib/bundler/source/git.rb +22 -4
  107. data/lib/bundler/source/metadata.rb +1 -5
  108. data/lib/bundler/source/path/installer.rb +1 -1
  109. data/lib/bundler/source/path.rb +3 -1
  110. data/lib/bundler/source/rubygems.rb +111 -106
  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 -60
  114. data/lib/bundler/source_map.rb +58 -0
  115. data/lib/bundler/spec_set.rb +17 -31
  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/Gemfile.tt +5 -2
  121. data/lib/bundler/templates/newgem/README.md.tt +5 -3
  122. data/lib/bundler/templates/newgem/Rakefile.tt +15 -2
  123. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +15 -6
  124. data/lib/bundler/templates/newgem/newgem.gemspec.tt +18 -16
  125. data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  126. data/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  127. data/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
  128. data/lib/bundler/ui/shell.rb +1 -1
  129. data/lib/bundler/vendor/.document +1 -0
  130. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  131. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
  132. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  133. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
  134. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
  135. data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  136. data/lib/bundler/vendor/molinillo/LICENSE +9 -0
  137. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -2
  138. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +1 -1
  139. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  140. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  141. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +5 -5
  142. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
  143. data/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -2
  144. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
  145. data/lib/bundler/vendor/thor/lib/thor/error.rb +9 -4
  146. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +19 -1
  147. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +22 -4
  148. data/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  149. data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  150. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  151. data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +1 -1
  152. data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  153. data/lib/bundler/vendor/tsort/lib/tsort.rb +453 -0
  154. data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  155. data/lib/bundler/vendor/uri/lib/uri/common.rb +17 -80
  156. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
  157. data/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
  158. data/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
  159. data/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
  160. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  161. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
  162. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
  163. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
  164. data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  165. data/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
  166. data/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
  167. data/lib/bundler/vendor/uri/lib/uri.rb +0 -1
  168. data/lib/bundler/vendored_tsort.rb +4 -0
  169. data/lib/bundler/version.rb +1 -1
  170. data/lib/bundler/worker.rb +19 -4
  171. data/lib/bundler.rb +28 -31
  172. metadata +27 -9
  173. data/lib/bundler/gemdeps.rb +0 -29
  174. 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.11".freeze
4
+ VERSION = "2.3.6".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__)
@@ -65,10 +66,12 @@ module Bundler
65
66
  autoload :RubyDsl, File.expand_path("bundler/ruby_dsl", __dir__)
66
67
  autoload :RubyVersion, File.expand_path("bundler/ruby_version", __dir__)
67
68
  autoload :Runtime, File.expand_path("bundler/runtime", __dir__)
69
+ autoload :SelfManager, File.expand_path("bundler/self_manager", __dir__)
68
70
  autoload :Settings, File.expand_path("bundler/settings", __dir__)
69
71
  autoload :SharedHelpers, File.expand_path("bundler/shared_helpers", __dir__)
70
72
  autoload :Source, File.expand_path("bundler/source", __dir__)
71
73
  autoload :SourceList, File.expand_path("bundler/source_list", __dir__)
74
+ autoload :SourceMap, File.expand_path("bundler/source_map", __dir__)
72
75
  autoload :SpecSet, File.expand_path("bundler/spec_set", __dir__)
73
76
  autoload :StubSpecification, File.expand_path("bundler/stub_specification", __dir__)
74
77
  autoload :UI, File.expand_path("bundler/ui", __dir__)
@@ -197,7 +200,7 @@ module Bundler
197
200
 
198
201
  def frozen_bundle?
199
202
  frozen = settings[:deployment]
200
- frozen ||= settings[:frozen] unless feature_flag.deployment_means_frozen?
203
+ frozen ||= settings[:frozen]
201
204
  frozen
202
205
  end
203
206
 
@@ -235,8 +238,9 @@ module Bundler
235
238
  end
236
239
 
237
240
  if warning
238
- user_home = tmp_home_path(warning)
239
- 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"
240
244
  user_home
241
245
  else
242
246
  Pathname.new(home)
@@ -634,15 +638,26 @@ EOF
634
638
  @rubygems = nil
635
639
  end
636
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
+
637
654
  private
638
655
 
639
656
  def eval_yaml_gemspec(path, contents)
640
657
  require_relative "bundler/psyched_yaml"
641
658
 
642
- # If the YAML is invalid, Syck raises an ArgumentError, and Psych
643
- # raises a Psych::SyntaxError. See psyched_yaml.rb for more info.
644
659
  Gem::Specification.from_yaml(contents)
645
- rescue YamlLibrarySyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception
660
+ rescue ::Psych::SyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception
646
661
  eval_gemspec(path, contents)
647
662
  end
648
663
 
@@ -651,47 +666,29 @@ EOF
651
666
  rescue ScriptError, StandardError => e
652
667
  msg = "There was an error while loading `#{path.basename}`: #{e.message}"
653
668
 
654
- if e.is_a?(LoadError)
655
- msg += "\nDoes it try to require a relative path? That's been removed in Ruby 1.9"
656
- end
657
-
658
669
  raise GemspecError, Dsl::DSLError.new(msg, path, e.backtrace, contents)
659
670
  end
660
671
 
661
- def configure_gem_home_and_path
662
- configure_gem_path
663
- configure_gem_home
664
- bundle_path
665
- end
666
-
667
- def configure_gem_path(env = ENV)
668
- blank_home = env["GEM_HOME"].nil? || env["GEM_HOME"].empty?
669
- if !use_system_gems?
672
+ def configure_gem_path
673
+ unless use_system_gems?
670
674
  # this needs to be empty string to cause
671
675
  # PathSupport.split_gem_path to only load up the
672
676
  # Bundler --path setting as the GEM_PATH.
673
- env["GEM_PATH"] = ""
674
- elsif blank_home
675
- possibles = [Bundler.rubygems.gem_dir, Bundler.rubygems.gem_path]
676
- paths = possibles.flatten.compact.uniq.reject(&:empty?)
677
- env["GEM_PATH"] = paths.join(File::PATH_SEPARATOR)
677
+ Bundler::SharedHelpers.set_env "GEM_PATH", ""
678
678
  end
679
679
  end
680
680
 
681
- def configure_gem_home
682
- Bundler::SharedHelpers.set_env "GEM_HOME", File.expand_path(bundle_path, root)
683
- Bundler.rubygems.clear_paths
681
+ def configure_gem_home(path)
682
+ Bundler::SharedHelpers.set_env "GEM_HOME", path.to_s
684
683
  end
685
684
 
686
- def tmp_home_path(warning)
685
+ def tmp_home_path
687
686
  Kernel.send(:require, "tmpdir")
688
687
  SharedHelpers.filesystem_access(Dir.tmpdir) do
689
688
  path = Bundler.tmp
690
689
  at_exit { Bundler.rm_rf(path) }
691
690
  path
692
691
  end
693
- rescue RuntimeError => e
694
- raise e.exception("#{warning}\nBundler also failed to create a temporary home directory':\n#{e}")
695
692
  end
696
693
 
697
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.11
4
+ version: 2.3.6
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-02-17 00:00:00.000000000 Z
25
+ date: 2022-01-26 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
@@ -188,6 +189,7 @@ files:
188
189
  - lib/bundler/rubygems_gem_installer.rb
189
190
  - lib/bundler/rubygems_integration.rb
190
191
  - lib/bundler/runtime.rb
192
+ - lib/bundler/self_manager.rb
191
193
  - lib/bundler/settings.rb
192
194
  - lib/bundler/settings/validator.rb
193
195
  - lib/bundler/setup.rb
@@ -202,7 +204,9 @@ files:
202
204
  - lib/bundler/source/path/installer.rb
203
205
  - lib/bundler/source/rubygems.rb
204
206
  - lib/bundler/source/rubygems/remote.rb
207
+ - lib/bundler/source/rubygems_aggregate.rb
205
208
  - lib/bundler/source_list.rb
209
+ - lib/bundler/source_map.rb
206
210
  - lib/bundler/spec_set.rb
207
211
  - lib/bundler/stub_specification.rb
208
212
  - lib/bundler/templates/.document
@@ -232,10 +236,12 @@ files:
232
236
  - lib/bundler/templates/newgem/newgem.gemspec.tt
233
237
  - lib/bundler/templates/newgem/rspec.tt
234
238
  - lib/bundler/templates/newgem/rubocop.yml.tt
239
+ - lib/bundler/templates/newgem/sig/newgem.rbs.tt
235
240
  - lib/bundler/templates/newgem/spec/newgem_spec.rb.tt
236
241
  - lib/bundler/templates/newgem/spec/spec_helper.rb.tt
237
- - lib/bundler/templates/newgem/test/minitest/newgem_test.rb.tt
242
+ - lib/bundler/templates/newgem/standard.yml.tt
238
243
  - lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt
244
+ - lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
239
245
  - lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt
240
246
  - lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt
241
247
  - lib/bundler/templates/newgem/travis.yml.tt
@@ -244,11 +250,15 @@ files:
244
250
  - lib/bundler/ui/shell.rb
245
251
  - lib/bundler/ui/silent.rb
246
252
  - lib/bundler/uri_credentials_filter.rb
253
+ - lib/bundler/vendor/.document
254
+ - lib/bundler/vendor/connection_pool/LICENSE
247
255
  - lib/bundler/vendor/connection_pool/lib/connection_pool.rb
248
- - lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb
249
256
  - lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb
250
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
251
260
  - lib/bundler/vendor/fileutils/lib/fileutils.rb
261
+ - lib/bundler/vendor/molinillo/LICENSE
252
262
  - lib/bundler/vendor/molinillo/lib/molinillo.rb
253
263
  - lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
254
264
  - lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
@@ -269,10 +279,12 @@ files:
269
279
  - lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
270
280
  - lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
271
281
  - lib/bundler/vendor/molinillo/lib/molinillo/state.rb
282
+ - lib/bundler/vendor/net-http-persistent/README.rdoc
272
283
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
273
284
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
274
285
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
275
286
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
287
+ - lib/bundler/vendor/thor/LICENSE.md
276
288
  - lib/bundler/vendor/thor/lib/thor.rb
277
289
  - lib/bundler/vendor/thor/lib/thor/actions.rb
278
290
  - lib/bundler/vendor/thor/lib/thor/actions/create_file.rb
@@ -305,6 +317,9 @@ files:
305
317
  - lib/bundler/vendor/thor/lib/thor/util.rb
306
318
  - lib/bundler/vendor/thor/lib/thor/version.rb
307
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
308
323
  - lib/bundler/vendor/uri/lib/uri.rb
309
324
  - lib/bundler/vendor/uri/lib/uri/common.rb
310
325
  - lib/bundler/vendor/uri/lib/uri/file.rb
@@ -318,11 +333,14 @@ files:
318
333
  - lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb
319
334
  - lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb
320
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
321
338
  - lib/bundler/vendored_fileutils.rb
322
339
  - lib/bundler/vendored_molinillo.rb
323
340
  - lib/bundler/vendored_persistent.rb
324
341
  - lib/bundler/vendored_thor.rb
325
342
  - lib/bundler/vendored_tmpdir.rb
343
+ - lib/bundler/vendored_tsort.rb
326
344
  - lib/bundler/vendored_uri.rb
327
345
  - lib/bundler/version.rb
328
346
  - lib/bundler/version_ranges.rb
@@ -337,7 +355,7 @@ metadata:
337
355
  changelog_uri: https://github.com/rubygems/rubygems/blob/master/bundler/CHANGELOG.md
338
356
  homepage_uri: https://bundler.io/
339
357
  source_code_uri: https://github.com/rubygems/rubygems/
340
- post_install_message:
358
+ post_install_message:
341
359
  rdoc_options: []
342
360
  require_paths:
343
361
  - lib
@@ -352,8 +370,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
352
370
  - !ruby/object:Gem::Version
353
371
  version: 2.5.2
354
372
  requirements: []
355
- rubygems_version: 3.2.11
356
- signing_key:
373
+ rubygems_version: 3.3.6
374
+ signing_key:
357
375
  specification_version: 4
358
376
  summary: The best way to manage your application's dependencies
359
377
  test_files: []
@@ -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
@@ -1,66 +0,0 @@
1
- # Global monotonic clock from Concurrent Ruby 1.0.
2
- # Copyright (c) Jerry D'Antonio -- released under the MIT license.
3
- # Slightly modified; used with permission.
4
- # https://github.com/ruby-concurrency/concurrent-ruby
5
-
6
- require 'thread'
7
-
8
- class Bundler::ConnectionPool
9
-
10
- class_definition = Class.new do
11
-
12
- if defined?(Process::CLOCK_MONOTONIC)
13
-
14
- # @!visibility private
15
- def get_time
16
- Process.clock_gettime(Process::CLOCK_MONOTONIC)
17
- end
18
-
19
- elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
20
-
21
- # @!visibility private
22
- def get_time
23
- java.lang.System.nanoTime() / 1_000_000_000.0
24
- end
25
-
26
- else
27
-
28
- # @!visibility private
29
- def initialize
30
- @mutex = Mutex.new
31
- @last_time = Time.now.to_f
32
- end
33
-
34
- # @!visibility private
35
- def get_time
36
- @mutex.synchronize do
37
- now = Time.now.to_f
38
- if @last_time < now
39
- @last_time = now
40
- else # clock has moved back in time
41
- @last_time += 0.000_001
42
- end
43
- end
44
- end
45
- end
46
- end
47
-
48
- ##
49
- # Clock that cannot be set and represents monotonic time since
50
- # some unspecified starting point.
51
- #
52
- # @!visibility private
53
- GLOBAL_MONOTONIC_CLOCK = class_definition.new
54
- private_constant :GLOBAL_MONOTONIC_CLOCK
55
-
56
- class << self
57
- ##
58
- # Returns the current time a tracked by the application monotonic clock.
59
- #
60
- # @return [Float] The current monotonic time when `since` not given else
61
- # the elapsed monotonic time between `since` and the current time
62
- def monotonic_time
63
- GLOBAL_MONOTONIC_CLOCK.get_time
64
- end
65
- end
66
- end