bundler 4.0.23 → 4.1.0.beta1

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 (188) hide show
  1. checksums.yaml +4 -4
  2. data/{lib/bundler/vendor/connection_pool/LICENSE → MIT.txt} +8 -6
  3. data/bundler.gemspec +23 -6
  4. data/lib/bundler/build_metadata.rb +2 -2
  5. data/lib/bundler/checksum.rb +40 -25
  6. data/lib/bundler/ci_detector.rb +1 -1
  7. data/lib/bundler/cli/add.rb +3 -4
  8. data/lib/bundler/cli/cache.rb +4 -0
  9. data/lib/bundler/cli/clean.rb +5 -0
  10. data/lib/bundler/cli/common.rb +37 -1
  11. data/lib/bundler/cli/config.rb +4 -2
  12. data/lib/bundler/cli/gem.rb +0 -17
  13. data/lib/bundler/cli/install.rb +4 -5
  14. data/lib/bundler/cli/lock.rb +4 -16
  15. data/lib/bundler/cli/outdated.rb +8 -3
  16. data/lib/bundler/cli/platform.rb +1 -15
  17. data/lib/bundler/cli/pristine.rb +2 -1
  18. data/lib/bundler/cli/update.rb +21 -12
  19. data/lib/bundler/cli.rb +19 -28
  20. data/lib/bundler/definition.rb +61 -24
  21. data/lib/bundler/dependency.rb +4 -0
  22. data/lib/bundler/dsl.rb +77 -11
  23. data/lib/bundler/endpoint_specification.rb +51 -14
  24. data/lib/bundler/env.rb +7 -24
  25. data/lib/bundler/errors.rb +34 -5
  26. data/lib/bundler/fetcher/compact_index.rb +14 -5
  27. data/lib/bundler/fetcher/connection_pools.rb +150 -0
  28. data/lib/bundler/fetcher/downloader.rb +33 -24
  29. data/lib/bundler/fetcher.rb +8 -47
  30. data/lib/bundler/injector.rb +3 -3
  31. data/lib/bundler/inline.rb +44 -4
  32. data/lib/bundler/installer/parallel_installer.rb +25 -30
  33. data/lib/bundler/installer.rb +20 -10
  34. data/lib/bundler/lazy_specification.rb +44 -17
  35. data/lib/bundler/lockfile_generator.rb +24 -2
  36. data/lib/bundler/lockfile_parser.rb +43 -5
  37. data/lib/bundler/man/bundle-add.1 +7 -4
  38. data/lib/bundler/man/bundle-add.1.ronn +8 -4
  39. data/lib/bundler/man/bundle-binstubs.1 +1 -1
  40. data/lib/bundler/man/bundle-cache.1 +2 -2
  41. data/lib/bundler/man/bundle-cache.1.ronn +2 -2
  42. data/lib/bundler/man/bundle-check.1 +1 -1
  43. data/lib/bundler/man/bundle-clean.1 +1 -1
  44. data/lib/bundler/man/bundle-config.1 +38 -6
  45. data/lib/bundler/man/bundle-config.1.ronn +143 -10
  46. data/lib/bundler/man/bundle-console.1 +1 -1
  47. data/lib/bundler/man/bundle-doctor.1 +1 -1
  48. data/lib/bundler/man/bundle-env.1 +1 -1
  49. data/lib/bundler/man/bundle-exec.1 +1 -1
  50. data/lib/bundler/man/bundle-fund.1 +1 -1
  51. data/lib/bundler/man/bundle-gem.1 +1 -1
  52. data/lib/bundler/man/bundle-help.1 +1 -1
  53. data/lib/bundler/man/bundle-info.1 +1 -1
  54. data/lib/bundler/man/bundle-init.1 +1 -1
  55. data/lib/bundler/man/bundle-install.1 +2 -2
  56. data/lib/bundler/man/bundle-install.1.ronn +4 -4
  57. data/lib/bundler/man/bundle-issue.1 +1 -1
  58. data/lib/bundler/man/bundle-licenses.1 +1 -1
  59. data/lib/bundler/man/bundle-list.1 +1 -1
  60. data/lib/bundler/man/bundle-lock.1 +4 -4
  61. data/lib/bundler/man/bundle-lock.1.ronn +6 -6
  62. data/lib/bundler/man/bundle-open.1 +1 -1
  63. data/lib/bundler/man/bundle-outdated.1 +2 -2
  64. data/lib/bundler/man/bundle-outdated.1.ronn +1 -1
  65. data/lib/bundler/man/bundle-platform.1 +1 -1
  66. data/lib/bundler/man/bundle-plugin.1 +1 -1
  67. data/lib/bundler/man/bundle-pristine.1 +1 -1
  68. data/lib/bundler/man/bundle-remove.1 +1 -1
  69. data/lib/bundler/man/bundle-show.1 +1 -1
  70. data/lib/bundler/man/bundle-update.1 +5 -5
  71. data/lib/bundler/man/bundle-update.1.ronn +5 -7
  72. data/lib/bundler/man/bundle-version.1 +1 -1
  73. data/lib/bundler/man/bundle.1 +1 -1
  74. data/lib/bundler/man/gemfile.5 +45 -1
  75. data/lib/bundler/man/gemfile.5.ronn +53 -0
  76. data/lib/bundler/match_metadata.rb +20 -0
  77. data/lib/bundler/match_platform.rb +25 -2
  78. data/lib/bundler/match_remote_metadata.rb +21 -6
  79. data/lib/bundler/materialization.rb +2 -1
  80. data/lib/bundler/override.rb +69 -0
  81. data/lib/bundler/plugin/dsl.rb +3 -5
  82. data/lib/bundler/plugin/events.rb +55 -13
  83. data/lib/bundler/plugin/index.rb +87 -11
  84. data/lib/bundler/plugin/installer/path.rb +1 -1
  85. data/lib/bundler/plugin/installer.rb +13 -5
  86. data/lib/bundler/plugin.rb +58 -30
  87. data/lib/bundler/remote_specification.rb +6 -3
  88. data/lib/bundler/resolver/base.rb +2 -1
  89. data/lib/bundler/resolver/incompatibility.rb +1 -1
  90. data/lib/bundler/resolver.rb +73 -23
  91. data/lib/bundler/ruby_version.rb +0 -2
  92. data/lib/bundler/rubygems_ext.rb +71 -1
  93. data/lib/bundler/rubygems_gem_installer.rb +41 -2
  94. data/lib/bundler/rubygems_integration.rb +7 -2
  95. data/lib/bundler/runtime.rb +69 -2
  96. data/lib/bundler/self_manager.rb +9 -15
  97. data/lib/bundler/settings.rb +373 -30
  98. data/lib/bundler/shared_helpers.rb +2 -1
  99. data/lib/bundler/source/git/git_proxy.rb +2 -10
  100. data/lib/bundler/source/git.rb +15 -6
  101. data/lib/bundler/source/path/installer.rb +1 -1
  102. data/lib/bundler/source/rubygems/remote.rb +10 -5
  103. data/lib/bundler/source/rubygems.rb +48 -12
  104. data/lib/bundler/spec_set.rb +16 -4
  105. data/lib/bundler/stub_specification.rb +2 -1
  106. data/lib/bundler/templates/newgem/Gemfile.tt +4 -4
  107. data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  108. data/lib/bundler/templates/newgem/newgem.gemspec.tt +3 -3
  109. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +1 -1
  110. data/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +1 -1
  111. data/lib/bundler/ui/shell.rb +0 -4
  112. data/lib/bundler/ui/silent.rb +0 -4
  113. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +29 -54
  114. data/lib/bundler/vendored_pub_grub.rb +5 -2
  115. data/lib/bundler/vendored_securerandom.rb +11 -8
  116. data/lib/bundler/vendored_uri.rb +14 -14
  117. data/lib/bundler/version.rb +1 -1
  118. data/lib/bundler/worker.rb +3 -2
  119. data/lib/bundler.rb +4 -2
  120. data/lib/rubygems/compact_index_client/cache.rb +122 -0
  121. data/lib/rubygems/compact_index_client/cache_file.rb +147 -0
  122. data/lib/rubygems/compact_index_client/http_fetcher.rb +88 -0
  123. data/lib/rubygems/compact_index_client/parser.rb +90 -0
  124. data/lib/rubygems/compact_index_client/updater.rb +113 -0
  125. data/lib/rubygems/compact_index_client.rb +111 -0
  126. data/lib/rubygems/cooldown_settings.rb +57 -0
  127. data/lib/rubygems/credential_store/native/linux.rb +97 -0
  128. data/lib/rubygems/credential_store/native/macos.rb +88 -0
  129. data/lib/rubygems/credential_store/native/windows.rb +130 -0
  130. data/lib/rubygems/credential_store.rb +332 -0
  131. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/assignment.rb +1 -1
  132. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +7 -7
  133. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/failure_writer.rb +1 -1
  134. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/incompatibility.rb +4 -4
  135. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/package.rb +1 -1
  136. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/partial_solution.rb +1 -1
  137. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/rubygems.rb +3 -3
  138. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/solve_failure.rb +1 -1
  139. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/static_package_source.rb +3 -3
  140. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/strategy.rb +2 -2
  141. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/term.rb +1 -1
  142. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version.rb +1 -1
  143. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_constraint.rb +3 -3
  144. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_range.rb +1 -1
  145. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_solver.rb +2 -2
  146. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_union.rb +1 -1
  147. data/lib/rubygems/vendor/pub_grub/lib/pub_grub.rb +57 -0
  148. data/lib/{bundler → rubygems}/vendor/securerandom/lib/securerandom.rb +10 -6
  149. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/common.rb +120 -120
  150. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/file.rb +13 -13
  151. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ftp.rb +24 -24
  152. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/generic.rb +135 -147
  153. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/http.rb +18 -18
  154. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/https.rb +4 -4
  155. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ldap.rb +14 -14
  156. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ldaps.rb +4 -4
  157. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/mailto.rb +21 -21
  158. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/rfc2396_parser.rb +39 -39
  159. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/rfc3986_parser.rb +14 -14
  160. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/version.rb +2 -2
  161. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ws.rb +12 -12
  162. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/wss.rb +4 -4
  163. data/lib/{bundler → rubygems}/vendor/uri/lib/uri.rb +35 -31
  164. data/lib/rubygems/yaml_serializer.rb +880 -0
  165. metadata +77 -68
  166. data/CHANGELOG.md +0 -5812
  167. data/LICENSE.md +0 -22
  168. data/README.md +0 -58
  169. data/lib/bundler/compact_index_client/cache.rb +0 -107
  170. data/lib/bundler/compact_index_client/cache_file.rb +0 -148
  171. data/lib/bundler/compact_index_client/parser.rb +0 -87
  172. data/lib/bundler/compact_index_client/updater.rb +0 -105
  173. data/lib/bundler/compact_index_client.rb +0 -92
  174. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +0 -237
  175. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +0 -3
  176. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -56
  177. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +0 -233
  178. data/lib/bundler/vendor/net-http-persistent/README.rdoc +0 -82
  179. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +0 -41
  180. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +0 -65
  181. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +0 -89
  182. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +0 -1159
  183. data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +0 -31
  184. data/lib/bundler/vendored_persistent.rb +0 -11
  185. data/lib/bundler/yaml_serializer.rb +0 -98
  186. /data/lib/{bundler → rubygems}/vendor/pub_grub/LICENSE.txt +0 -0
  187. /data/lib/{bundler → rubygems}/vendor/securerandom/COPYING +0 -0
  188. /data/lib/{bundler → rubygems}/vendor/uri/COPYING +0 -0
@@ -1,65 +0,0 @@
1
- class Gem::Net::HTTP::Persistent::Pool < Bundler::ConnectionPool # :nodoc:
2
-
3
- attr_reader :available # :nodoc:
4
- attr_reader :key # :nodoc:
5
-
6
- def initialize(options = {}, &block)
7
- super(**options, &block)
8
-
9
- @available = Gem::Net::HTTP::Persistent::TimedStackMulti.new(@size, &block)
10
- @key = "current-#{@available.object_id}"
11
- end
12
-
13
- def checkin net_http_args
14
- if net_http_args.is_a?(Hash) && net_http_args.size == 1 && net_http_args[:force]
15
- # Bundler::ConnectionPool 2.4+ calls `checkin(force: true)` after fork.
16
- # When this happens, we should remove all connections from Thread.current
17
- if stacks = Thread.current[@key]
18
- stacks.each do |http_args, connections|
19
- connections.each do |conn|
20
- @available.push conn, connection_args: http_args
21
- end
22
- connections.clear
23
- end
24
- end
25
- else
26
- stack = Thread.current[@key][net_http_args] ||= []
27
-
28
- raise Bundler::ConnectionPool::Error, 'no connections are checked out' if
29
- stack.empty?
30
-
31
- conn = stack.pop
32
-
33
- if stack.empty?
34
- @available.push conn, connection_args: net_http_args
35
-
36
- Thread.current[@key].delete(net_http_args)
37
- Thread.current[@key] = nil if Thread.current[@key].empty?
38
- end
39
- end
40
- nil
41
- end
42
-
43
- def checkout net_http_args
44
- stacks = Thread.current[@key] ||= {}
45
- stack = stacks[net_http_args] ||= []
46
-
47
- if stack.empty? then
48
- conn = @available.pop connection_args: net_http_args
49
- else
50
- conn = stack.last
51
- end
52
-
53
- stack.push conn
54
-
55
- conn
56
- end
57
-
58
- def shutdown
59
- Thread.current[@key] = nil
60
- super
61
- end
62
- end
63
-
64
- require_relative 'timed_stack_multi'
65
-
@@ -1,89 +0,0 @@
1
- class Gem::Net::HTTP::Persistent::TimedStackMulti < Bundler::ConnectionPool::TimedStack # :nodoc:
2
-
3
- ##
4
- # Detects if Bundler::ConnectionPool 3.0+ is being used (needed for TimedStack subclass compatibility)
5
-
6
- CP_USES_KEYWORD_ARGS = Gem::Version.new(Bundler::ConnectionPool::VERSION) >= Gem::Version.new('3.0.0') # :nodoc:
7
-
8
- ##
9
- # Returns a new hash that has arrays for keys
10
- #
11
- # Using a class method to limit the bindings referenced by the hash's
12
- # default_proc
13
-
14
- def self.hash_of_arrays # :nodoc:
15
- Hash.new { |h,k| h[k] = [] }
16
- end
17
-
18
- def initialize(size = 0, &block)
19
- if CP_USES_KEYWORD_ARGS
20
- super(size: size, &block)
21
- else
22
- super(size, &block)
23
- end
24
-
25
- @enqueued = 0
26
- @ques = self.class.hash_of_arrays
27
- @lru = {}
28
- @key = :"connection_args-#{object_id}"
29
- end
30
-
31
- def empty?
32
- (@created - @enqueued) >= @max
33
- end
34
-
35
- def length
36
- @max - @created + @enqueued
37
- end
38
-
39
- private
40
-
41
- def connection_stored? options = {} # :nodoc:
42
- !@ques[options[:connection_args]].empty?
43
- end
44
-
45
- def fetch_connection options = {} # :nodoc:
46
- connection_args = options[:connection_args]
47
-
48
- @enqueued -= 1
49
- lru_update connection_args
50
- @ques[connection_args].pop
51
- end
52
-
53
- def lru_update connection_args # :nodoc:
54
- @lru.delete connection_args
55
- @lru[connection_args] = true
56
- end
57
-
58
- def shutdown_connections # :nodoc:
59
- @ques.each_key do |key|
60
- super connection_args: key
61
- end
62
- end
63
-
64
- def store_connection obj, options = {} # :nodoc:
65
- @ques[options[:connection_args]].push obj
66
- @enqueued += 1
67
- end
68
-
69
- def try_create options = {} # :nodoc:
70
- connection_args = options[:connection_args]
71
-
72
- if @created >= @max && @enqueued >= 1
73
- oldest, = @lru.first
74
- @lru.delete oldest
75
- connection = @ques[oldest].pop
76
- connection.close if connection.respond_to?(:close)
77
-
78
- @created -= 1
79
- end
80
-
81
- if @created < @max
82
- @created += 1
83
- lru_update connection_args
84
- return @create_block.call(connection_args)
85
- end
86
- end
87
-
88
- end
89
-