bundler 2.2.11 → 2.3.6

Sign up to get free protection for your applications and to get access to all the features.
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