bundler 2.1.4 → 2.2.18

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bundler might be problematic. Click here for more details.

Files changed (227) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1790 -1430
  3. data/README.md +6 -8
  4. data/bundler.gemspec +5 -6
  5. data/exe/bundle +3 -0
  6. data/lib/bundler/build_metadata.rb +3 -11
  7. data/lib/bundler/cli/add.rb +1 -1
  8. data/lib/bundler/cli/binstubs.rb +6 -2
  9. data/lib/bundler/cli/cache.rb +2 -7
  10. data/lib/bundler/cli/clean.rb +1 -1
  11. data/lib/bundler/cli/common.rb +29 -2
  12. data/lib/bundler/cli/console.rb +1 -1
  13. data/lib/bundler/cli/doctor.rb +1 -1
  14. data/lib/bundler/cli/exec.rb +4 -4
  15. data/lib/bundler/cli/fund.rb +36 -0
  16. data/lib/bundler/cli/gem.rb +129 -28
  17. data/lib/bundler/cli/info.rb +15 -4
  18. data/lib/bundler/cli/init.rb +2 -2
  19. data/lib/bundler/cli/inject.rb +1 -1
  20. data/lib/bundler/cli/install.rb +13 -11
  21. data/lib/bundler/cli/issue.rb +2 -2
  22. data/lib/bundler/cli/list.rb +12 -10
  23. data/lib/bundler/cli/outdated.rb +94 -76
  24. data/lib/bundler/cli/plugin.rb +10 -0
  25. data/lib/bundler/cli/pristine.rb +5 -0
  26. data/lib/bundler/cli/show.rb +1 -1
  27. data/lib/bundler/cli/update.rb +3 -1
  28. data/lib/bundler/cli.rb +72 -56
  29. data/lib/bundler/compact_index_client/cache.rb +6 -14
  30. data/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  31. data/lib/bundler/compact_index_client/updater.rb +13 -17
  32. data/lib/bundler/compact_index_client.rb +1 -1
  33. data/lib/bundler/current_ruby.rb +1 -0
  34. data/lib/bundler/definition.rb +117 -188
  35. data/lib/bundler/dep_proxy.rb +16 -9
  36. data/lib/bundler/dependency.rb +3 -10
  37. data/lib/bundler/dsl.rb +40 -33
  38. data/lib/bundler/endpoint_specification.rb +1 -1
  39. data/lib/bundler/env.rb +1 -1
  40. data/lib/bundler/environment_preserver.rb +26 -2
  41. data/lib/bundler/errors.rb +1 -0
  42. data/lib/bundler/feature_flag.rb +0 -6
  43. data/lib/bundler/fetcher/base.rb +1 -1
  44. data/lib/bundler/fetcher/compact_index.rb +1 -1
  45. data/lib/bundler/fetcher/downloader.rb +9 -5
  46. data/lib/bundler/fetcher/index.rb +3 -4
  47. data/lib/bundler/fetcher.rb +5 -4
  48. data/lib/bundler/friendly_errors.rb +22 -13
  49. data/lib/bundler/gem_helper.rb +51 -18
  50. data/lib/bundler/gem_helpers.rb +36 -25
  51. data/lib/bundler/gem_version_promoter.rb +4 -4
  52. data/lib/bundler/graph.rb +1 -1
  53. data/lib/bundler/index.rb +13 -9
  54. data/lib/bundler/injector.rb +23 -5
  55. data/lib/bundler/inline.rb +3 -2
  56. data/lib/bundler/installer/gem_installer.rb +3 -3
  57. data/lib/bundler/installer/parallel_installer.rb +46 -25
  58. data/lib/bundler/installer/standalone.rb +17 -2
  59. data/lib/bundler/installer.rb +37 -49
  60. data/lib/bundler/lazy_specification.rb +45 -25
  61. data/lib/bundler/lockfile_generator.rb +1 -1
  62. data/lib/bundler/lockfile_parser.rb +4 -14
  63. data/lib/bundler/man/.document +1 -0
  64. data/{man → lib/bundler/man}/bundle-add.1 +1 -1
  65. data/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
  66. data/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
  67. data/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
  68. data/{man → lib/bundler/man}/bundle-cache.1 +1 -1
  69. data/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
  70. data/{man → lib/bundler/man}/bundle-check.1 +1 -1
  71. data/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  72. data/{man → lib/bundler/man}/bundle-clean.1 +1 -1
  73. data/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
  74. data/{man → lib/bundler/man}/bundle-config.1 +40 -38
  75. data/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +50 -50
  76. data/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
  77. data/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  78. data/{man → lib/bundler/man}/bundle-exec.1 +1 -1
  79. data/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
  80. data/{man → lib/bundler/man}/bundle-gem.1 +25 -3
  81. data/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
  82. data/{man → lib/bundler/man}/bundle-info.1 +1 -1
  83. data/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  84. data/{man → lib/bundler/man}/bundle-init.1 +1 -1
  85. data/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
  86. data/{man → lib/bundler/man}/bundle-inject.1 +1 -1
  87. data/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
  88. data/{man → lib/bundler/man}/bundle-install.1 +30 -3
  89. data/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
  90. data/{man → lib/bundler/man}/bundle-list.1 +7 -7
  91. data/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  92. data/{man → lib/bundler/man}/bundle-lock.1 +1 -1
  93. data/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  94. data/{man → lib/bundler/man}/bundle-open.1 +1 -1
  95. data/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
  96. data/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
  97. data/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
  98. data/{man → lib/bundler/man}/bundle-platform.1 +1 -1
  99. data/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
  100. data/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
  101. data/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  102. data/{man → lib/bundler/man}/bundle-remove.1 +1 -1
  103. data/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  104. data/{man → lib/bundler/man}/bundle-show.1 +1 -1
  105. data/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
  106. data/{man → lib/bundler/man}/bundle-update.1 +1 -1
  107. data/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
  108. data/{man → lib/bundler/man}/bundle-viz.1 +1 -1
  109. data/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
  110. data/{man → lib/bundler/man}/bundle.1 +1 -1
  111. data/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
  112. data/{man → lib/bundler/man}/gemfile.5 +4 -4
  113. data/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
  114. data/{man → lib/bundler/man}/index.txt +0 -0
  115. data/lib/bundler/mirror.rb +2 -2
  116. data/lib/bundler/plugin/api/source.rb +22 -1
  117. data/lib/bundler/plugin/dsl.rb +1 -1
  118. data/lib/bundler/plugin/index.rb +10 -1
  119. data/lib/bundler/plugin/installer/rubygems.rb +1 -1
  120. data/lib/bundler/plugin/installer.rb +9 -11
  121. data/lib/bundler/plugin/source_list.rb +5 -1
  122. data/lib/bundler/plugin.rb +33 -7
  123. data/lib/bundler/psyched_yaml.rb +0 -15
  124. data/lib/bundler/remote_specification.rb +5 -2
  125. data/lib/bundler/resolver/spec_group.rb +56 -53
  126. data/lib/bundler/resolver.rb +88 -115
  127. data/lib/bundler/retry.rb +2 -2
  128. data/lib/bundler/ruby_version.rb +1 -1
  129. data/lib/bundler/rubygems_ext.rb +71 -11
  130. data/lib/bundler/rubygems_gem_installer.rb +50 -9
  131. data/lib/bundler/rubygems_integration.rb +25 -60
  132. data/lib/bundler/runtime.rb +4 -14
  133. data/lib/bundler/settings.rb +107 -55
  134. data/lib/bundler/shared_helpers.rb +3 -3
  135. data/lib/bundler/similarity_detector.rb +1 -1
  136. data/lib/bundler/source/git/git_proxy.rb +82 -80
  137. data/lib/bundler/source/git.rb +24 -22
  138. data/lib/bundler/source/metadata.rb +0 -4
  139. data/lib/bundler/source/path/installer.rb +10 -10
  140. data/lib/bundler/source/path.rb +10 -4
  141. data/lib/bundler/source/rubygems/remote.rb +1 -1
  142. data/lib/bundler/source/rubygems.rb +60 -28
  143. data/lib/bundler/source/rubygems_aggregate.rb +64 -0
  144. data/lib/bundler/source.rb +16 -1
  145. data/lib/bundler/source_list.rb +52 -28
  146. data/lib/bundler/source_map.rb +58 -0
  147. data/lib/bundler/spec_set.rb +29 -17
  148. data/lib/bundler/stub_specification.rb +25 -7
  149. data/lib/bundler/templates/Gemfile +1 -1
  150. data/lib/bundler/templates/gems.rb +1 -1
  151. data/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  152. data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  153. data/lib/bundler/templates/newgem/Gemfile.tt +9 -1
  154. data/lib/bundler/templates/newgem/README.md.tt +6 -5
  155. data/lib/bundler/templates/newgem/Rakefile.tt +19 -5
  156. data/lib/bundler/templates/newgem/bin/console.tt +1 -0
  157. data/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  158. data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  159. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +16 -0
  160. data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  161. data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  162. data/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  163. data/lib/bundler/templates/newgem/newgem.gemspec.tt +15 -7
  164. data/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  165. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  166. data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  167. data/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  168. data/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  169. data/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  170. data/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  171. data/lib/bundler/ui/shell.rb +5 -5
  172. data/lib/bundler/uri_credentials_filter.rb +3 -1
  173. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  174. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
  175. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
  176. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -2
  177. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +3 -3
  178. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  179. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
  180. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +49 -47
  181. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
  182. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
  183. data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  184. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +4 -2
  185. data/lib/bundler/vendor/thor/lib/thor/actions.rb +1 -1
  186. data/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  187. data/lib/bundler/vendor/thor/lib/thor/error.rb +1 -1
  188. data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
  189. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +9 -8
  190. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +5 -2
  191. data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
  192. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  193. data/lib/bundler/vendor/thor/lib/thor.rb +5 -13
  194. data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  195. data/lib/bundler/vendored_persistent.rb +0 -7
  196. data/lib/bundler/vendored_tmpdir.rb +4 -0
  197. data/lib/bundler/version.rb +1 -1
  198. data/lib/bundler/worker.rb +1 -1
  199. data/lib/bundler/yaml_serializer.rb +1 -1
  200. data/lib/bundler.rb +34 -9
  201. metadata +77 -86
  202. data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  203. data/man/bundle-add.1.txt +0 -58
  204. data/man/bundle-binstubs.1.txt +0 -48
  205. data/man/bundle-cache.1.txt +0 -78
  206. data/man/bundle-check.1.txt +0 -33
  207. data/man/bundle-clean.1.txt +0 -26
  208. data/man/bundle-config.1.txt +0 -528
  209. data/man/bundle-doctor.1.txt +0 -44
  210. data/man/bundle-exec.1.txt +0 -178
  211. data/man/bundle-gem.1.txt +0 -91
  212. data/man/bundle-info.1.txt +0 -21
  213. data/man/bundle-init.1.txt +0 -34
  214. data/man/bundle-inject.1.txt +0 -32
  215. data/man/bundle-install.1.txt +0 -401
  216. data/man/bundle-list.1.txt +0 -43
  217. data/man/bundle-lock.1.txt +0 -93
  218. data/man/bundle-open.1.txt +0 -29
  219. data/man/bundle-outdated.1.txt +0 -131
  220. data/man/bundle-platform.1.txt +0 -57
  221. data/man/bundle-pristine.1.txt +0 -44
  222. data/man/bundle-remove.1.txt +0 -34
  223. data/man/bundle-show.1.txt +0 -27
  224. data/man/bundle-update.1.txt +0 -390
  225. data/man/bundle-viz.1.txt +0 -39
  226. data/man/bundle.1.txt +0 -116
  227. data/man/gemfile.5.txt +0 -649
@@ -1,7 +1,7 @@
1
- require "set"
2
1
  require_relative "thor/base"
3
2
 
4
3
  class Bundler::Thor
4
+ $thor_runner ||= false
5
5
  class << self
6
6
  # Allows for custom "Command" package naming.
7
7
  #
@@ -323,7 +323,7 @@ class Bundler::Thor
323
323
  # ==== Parameters
324
324
  # Symbol ...:: A list of commands that should be affected.
325
325
  def stop_on_unknown_option!(*command_names)
326
- stop_on_unknown_option.merge(command_names)
326
+ @stop_on_unknown_option = stop_on_unknown_option | command_names
327
327
  end
328
328
 
329
329
  def stop_on_unknown_option?(command) #:nodoc:
@@ -337,29 +337,22 @@ class Bundler::Thor
337
337
  # ==== Parameters
338
338
  # Symbol ...:: A list of commands that should be affected.
339
339
  def disable_required_check!(*command_names)
340
- disable_required_check.merge(command_names)
340
+ @disable_required_check = disable_required_check | command_names
341
341
  end
342
342
 
343
343
  def disable_required_check?(command) #:nodoc:
344
344
  command && disable_required_check.include?(command.name.to_sym)
345
345
  end
346
346
 
347
- def deprecation_warning(message) #:nodoc:
348
- unless ENV['THOR_SILENCE_DEPRECATION']
349
- warn "Deprecation warning: #{message}\n" +
350
- 'You can silence deprecations warning by setting the environment variable THOR_SILENCE_DEPRECATION.'
351
- end
352
- end
353
-
354
347
  protected
355
348
 
356
349
  def stop_on_unknown_option #:nodoc:
357
- @stop_on_unknown_option ||= Set.new
350
+ @stop_on_unknown_option ||= []
358
351
  end
359
352
 
360
353
  # help command has the required check disabled by default.
361
354
  def disable_required_check #:nodoc:
362
- @disable_required_check ||= Set.new([:help])
355
+ @disable_required_check ||= [:help]
363
356
  end
364
357
 
365
358
  # The method responsible for dispatching given the args.
@@ -405,7 +398,6 @@ class Bundler::Thor
405
398
  # the namespace should be displayed as arguments.
406
399
  #
407
400
  def banner(command, namespace = nil, subcommand = false)
408
- $thor_runner ||= false
409
401
  command.formatted_usage(self, $thor_runner, subcommand).split("\n").map do |formatted_usage|
410
402
  "#{basename} #{formatted_usage}"
411
403
  end.join("\n")
@@ -0,0 +1,154 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # tmpdir - retrieve temporary directory path
4
+ #
5
+ # $Id$
6
+ #
7
+
8
+ require_relative '../../fileutils/lib/fileutils'
9
+ begin
10
+ require 'etc.so'
11
+ rescue LoadError # rescue LoadError for miniruby
12
+ end
13
+
14
+ class Bundler::Dir < Dir
15
+
16
+ @systmpdir ||= defined?(Etc.systmpdir) ? Etc.systmpdir : '/tmp'
17
+
18
+ ##
19
+ # Returns the operating system's temporary file path.
20
+
21
+ def self.tmpdir
22
+ tmp = nil
23
+ ['TMPDIR', 'TMP', 'TEMP', ['system temporary path', @systmpdir], ['/tmp']*2, ['.']*2].each do |name, dir = ENV[name]|
24
+ next if !dir
25
+ dir = File.expand_path(dir)
26
+ stat = File.stat(dir) rescue next
27
+ case
28
+ when !stat.directory?
29
+ warn "#{name} is not a directory: #{dir}"
30
+ when !stat.writable?
31
+ warn "#{name} is not writable: #{dir}"
32
+ when stat.world_writable? && !stat.sticky?
33
+ warn "#{name} is world-writable: #{dir}"
34
+ else
35
+ tmp = dir
36
+ break
37
+ end
38
+ end
39
+ raise ArgumentError, "could not find a temporary directory" unless tmp
40
+ tmp
41
+ end
42
+
43
+ # Bundler::Dir.mktmpdir creates a temporary directory.
44
+ #
45
+ # The directory is created with 0700 permission.
46
+ # Application should not change the permission to make the temporary directory accessible from other users.
47
+ #
48
+ # The prefix and suffix of the name of the directory is specified by
49
+ # the optional first argument, <i>prefix_suffix</i>.
50
+ # - If it is not specified or nil, "d" is used as the prefix and no suffix is used.
51
+ # - If it is a string, it is used as the prefix and no suffix is used.
52
+ # - If it is an array, first element is used as the prefix and second element is used as a suffix.
53
+ #
54
+ # Bundler::Dir.mktmpdir {|dir| dir is ".../d..." }
55
+ # Bundler::Dir.mktmpdir("foo") {|dir| dir is ".../foo..." }
56
+ # Bundler::Dir.mktmpdir(["foo", "bar"]) {|dir| dir is ".../foo...bar" }
57
+ #
58
+ # The directory is created under Bundler::Dir.tmpdir or
59
+ # the optional second argument <i>tmpdir</i> if non-nil value is given.
60
+ #
61
+ # Bundler::Dir.mktmpdir {|dir| dir is "#{Bundler::Dir.tmpdir}/d..." }
62
+ # Bundler::Dir.mktmpdir(nil, "/var/tmp") {|dir| dir is "/var/tmp/d..." }
63
+ #
64
+ # If a block is given,
65
+ # it is yielded with the path of the directory.
66
+ # The directory and its contents are removed
67
+ # using Bundler::FileUtils.remove_entry before Bundler::Dir.mktmpdir returns.
68
+ # The value of the block is returned.
69
+ #
70
+ # Bundler::Dir.mktmpdir {|dir|
71
+ # # use the directory...
72
+ # open("#{dir}/foo", "w") { ... }
73
+ # }
74
+ #
75
+ # If a block is not given,
76
+ # The path of the directory is returned.
77
+ # In this case, Bundler::Dir.mktmpdir doesn't remove the directory.
78
+ #
79
+ # dir = Bundler::Dir.mktmpdir
80
+ # begin
81
+ # # use the directory...
82
+ # open("#{dir}/foo", "w") { ... }
83
+ # ensure
84
+ # # remove the directory.
85
+ # Bundler::FileUtils.remove_entry dir
86
+ # end
87
+ #
88
+ def self.mktmpdir(prefix_suffix=nil, *rest, **options)
89
+ base = nil
90
+ path = Tmpname.create(prefix_suffix || "d", *rest, **options) {|p, _, _, d|
91
+ base = d
92
+ mkdir(p, 0700)
93
+ }
94
+ if block_given?
95
+ begin
96
+ yield path.dup
97
+ ensure
98
+ unless base
99
+ stat = File.stat(File.dirname(path))
100
+ if stat.world_writable? and !stat.sticky?
101
+ raise ArgumentError, "parent directory is world writable but not sticky"
102
+ end
103
+ end
104
+ Bundler::FileUtils.remove_entry path
105
+ end
106
+ else
107
+ path
108
+ end
109
+ end
110
+
111
+ module Tmpname # :nodoc:
112
+ module_function
113
+
114
+ def tmpdir
115
+ Bundler::Dir.tmpdir
116
+ end
117
+
118
+ UNUSABLE_CHARS = "^,-.0-9A-Z_a-z~"
119
+
120
+ class << (RANDOM = Random.new)
121
+ MAX = 36**6 # < 0x100000000
122
+ def next
123
+ rand(MAX).to_s(36)
124
+ end
125
+ end
126
+ private_constant :RANDOM
127
+
128
+ def create(basename, tmpdir=nil, max_try: nil, **opts)
129
+ origdir = tmpdir
130
+ tmpdir ||= tmpdir()
131
+ n = nil
132
+ prefix, suffix = basename
133
+ prefix = (String.try_convert(prefix) or
134
+ raise ArgumentError, "unexpected prefix: #{prefix.inspect}")
135
+ prefix = prefix.delete(UNUSABLE_CHARS)
136
+ suffix &&= (String.try_convert(suffix) or
137
+ raise ArgumentError, "unexpected suffix: #{suffix.inspect}")
138
+ suffix &&= suffix.delete(UNUSABLE_CHARS)
139
+ begin
140
+ t = Time.now.strftime("%Y%m%d")
141
+ path = "#{prefix}#{t}-#{$$}-#{RANDOM.next}"\
142
+ "#{n ? %[-#{n}] : ''}#{suffix||''}"
143
+ path = File.join(tmpdir, path)
144
+ yield(path, n, opts, origdir)
145
+ rescue Errno::EEXIST
146
+ n ||= 0
147
+ n += 1
148
+ retry if !max_try or n < max_try
149
+ raise "cannot generate temporary name using `#{basename}' under `#{tmpdir}'"
150
+ end
151
+ path
152
+ end
153
+ end
154
+ end
@@ -1,12 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # We forcibly require OpenSSL, because net/http/persistent will only autoload
4
- # it. On some Rubies, autoload fails but explicit require succeeds.
5
- begin
6
- require "openssl"
7
- rescue LoadError
8
- # some Ruby builds don't have OpenSSL
9
- end
10
3
  module Bundler
11
4
  module Persistent
12
5
  module Net
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bundler; end
4
+ require_relative "vendor/tmpdir/lib/tmpdir"
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.1.4".freeze
4
+ VERSION = "2.2.18".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -48,7 +48,7 @@ module Bundler
48
48
  stop_threads
49
49
  end
50
50
 
51
- private
51
+ private
52
52
 
53
53
  def process_queue(i)
54
54
  loop do
@@ -3,7 +3,7 @@
3
3
  module Bundler
4
4
  # A stub yaml serializer that can handle only hashes and strings (as of now).
5
5
  module YAMLSerializer
6
- module_function
6
+ module_function
7
7
 
8
8
  def dump(hash)
9
9
  yaml = String.new("---")
data/lib/bundler.rb CHANGED
@@ -34,9 +34,9 @@ require_relative "bundler/build_metadata"
34
34
  # of loaded and required modules.
35
35
  #
36
36
  module Bundler
37
- environment_preserver = EnvironmentPreserver.new(ENV, EnvironmentPreserver::BUNDLER_KEYS)
37
+ environment_preserver = EnvironmentPreserver.from_env
38
38
  ORIGINAL_ENV = environment_preserver.restore
39
- ENV.replace(environment_preserver.backup)
39
+ environment_preserver.replace_with_backup
40
40
  SUDO_MUTEX = Mutex.new
41
41
 
42
42
  autoload :Definition, File.expand_path("bundler/definition", __dir__)
@@ -63,13 +63,13 @@ module Bundler
63
63
  autoload :Resolver, File.expand_path("bundler/resolver", __dir__)
64
64
  autoload :Retry, File.expand_path("bundler/retry", __dir__)
65
65
  autoload :RubyDsl, File.expand_path("bundler/ruby_dsl", __dir__)
66
- autoload :RubyGemsGemInstaller, File.expand_path("bundler/rubygems_gem_installer", __dir__)
67
66
  autoload :RubyVersion, File.expand_path("bundler/ruby_version", __dir__)
68
67
  autoload :Runtime, File.expand_path("bundler/runtime", __dir__)
69
68
  autoload :Settings, File.expand_path("bundler/settings", __dir__)
70
69
  autoload :SharedHelpers, File.expand_path("bundler/shared_helpers", __dir__)
71
70
  autoload :Source, File.expand_path("bundler/source", __dir__)
72
71
  autoload :SourceList, File.expand_path("bundler/source_list", __dir__)
72
+ autoload :SourceMap, File.expand_path("bundler/source_map", __dir__)
73
73
  autoload :SpecSet, File.expand_path("bundler/spec_set", __dir__)
74
74
  autoload :StubSpecification, File.expand_path("bundler/stub_specification", __dir__)
75
75
  autoload :UI, File.expand_path("bundler/ui", __dir__)
@@ -212,6 +212,12 @@ module Bundler
212
212
  end
213
213
  end
214
214
 
215
+ def most_specific_locked_platform?(platform)
216
+ return false unless defined?(@definition) && @definition
217
+
218
+ definition.most_specific_locked_platform == platform
219
+ end
220
+
215
221
  def ruby_scope
216
222
  "#{Bundler.rubygems.ruby_engine}/#{RbConfig::CONFIG["ruby_version"]}"
217
223
  end
@@ -285,7 +291,13 @@ module Bundler
285
291
 
286
292
  def app_config_path
287
293
  if app_config = ENV["BUNDLE_APP_CONFIG"]
288
- Pathname.new(app_config).expand_path(root)
294
+ app_config_pathname = Pathname.new(app_config)
295
+
296
+ if app_config_pathname.absolute?
297
+ app_config_pathname
298
+ else
299
+ app_config_pathname.expand_path(root)
300
+ end
289
301
  else
290
302
  root.join(".bundle")
291
303
  end
@@ -347,7 +359,10 @@ EOF
347
359
  env.delete_if {|k, _| k[0, 7] == "BUNDLE_" }
348
360
 
349
361
  if env.key?("RUBYOPT")
350
- env["RUBYOPT"] = env["RUBYOPT"].sub "-rbundler/setup", ""
362
+ rubyopt = env["RUBYOPT"].split(" ")
363
+ rubyopt.delete("-r#{File.expand_path("bundler/setup", __dir__)}")
364
+ rubyopt.delete("-rbundler/setup")
365
+ env["RUBYOPT"] = rubyopt.join(" ")
351
366
  end
352
367
 
353
368
  if env.key?("RUBYLIB")
@@ -426,7 +441,7 @@ EOF
426
441
  end
427
442
 
428
443
  def local_platform
429
- return Gem::Platform::RUBY if settings[:force_ruby_platform]
444
+ return Gem::Platform::RUBY if settings[:force_ruby_platform] || Gem.platforms == [Gem::Platform::RUBY]
430
445
  Gem::Platform.local
431
446
  end
432
447
 
@@ -447,10 +462,14 @@ EOF
447
462
  # system binaries. If you put '-n foo' in your .gemrc, RubyGems will
448
463
  # install binstubs there instead. Unfortunately, RubyGems doesn't expose
449
464
  # that directory at all, so rather than parse .gemrc ourselves, we allow
450
- # the directory to be set as well, via `bundle config set bindir foo`.
465
+ # the directory to be set as well, via `bundle config set --local bindir foo`.
451
466
  Bundler.settings[:system_bindir] || Bundler.rubygems.gem_bindir
452
467
  end
453
468
 
469
+ def preferred_gemfile_name
470
+ Bundler.settings[:init_gems_rb] ? "gems.rb" : "Gemfile"
471
+ end
472
+
454
473
  def use_system_gems?
455
474
  configured_bundle_path.use_system_gems?
456
475
  end
@@ -512,7 +531,8 @@ EOF
512
531
  Your user account isn't allowed to install to the system RubyGems.
513
532
  You can cancel this installation and run:
514
533
 
515
- bundle install --path vendor/bundle
534
+ bundle config set --local path 'vendor/bundle'
535
+ bundle install
516
536
 
517
537
  to install the gems into ./vendor/bundle/, or you can enter your password
518
538
  and install the bundled gems to RubyGems using sudo.
@@ -588,6 +608,11 @@ EOF
588
608
  reset_rubygems!
589
609
  end
590
610
 
611
+ def reset_settings_and_root!
612
+ @settings = nil
613
+ @root = nil
614
+ end
615
+
591
616
  def reset_paths!
592
617
  @bin_path = nil
593
618
  @bundler_major_version = nil
@@ -610,7 +635,7 @@ EOF
610
635
  @rubygems = nil
611
636
  end
612
637
 
613
- private
638
+ private
614
639
 
615
640
  def eval_yaml_gemspec(path, contents)
616
641
  require_relative "bundler/psyched_yaml"
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.1.4
4
+ version: 2.2.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Arko
@@ -22,7 +22,7 @@ authors:
22
22
  autorequire:
23
23
  bindir: exe
24
24
  cert_chain: []
25
- date: 2020-01-05 00:00:00.000000000 Z
25
+ date: 2021-05-25 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
@@ -32,7 +32,10 @@ executables:
32
32
  - bundle
33
33
  - bundler
34
34
  extensions: []
35
- extra_rdoc_files: []
35
+ extra_rdoc_files:
36
+ - CHANGELOG.md
37
+ - LICENSE.md
38
+ - README.md
36
39
  files:
37
40
  - CHANGELOG.md
38
41
  - LICENSE.md
@@ -54,6 +57,7 @@ files:
54
57
  - lib/bundler/cli/console.rb
55
58
  - lib/bundler/cli/doctor.rb
56
59
  - lib/bundler/cli/exec.rb
60
+ - lib/bundler/cli/fund.rb
57
61
  - lib/bundler/cli/gem.rb
58
62
  - lib/bundler/cli/info.rb
59
63
  - lib/bundler/cli/init.rb
@@ -73,6 +77,7 @@ files:
73
77
  - lib/bundler/cli/viz.rb
74
78
  - lib/bundler/compact_index_client.rb
75
79
  - lib/bundler/compact_index_client/cache.rb
80
+ - lib/bundler/compact_index_client/gem_parser.rb
76
81
  - lib/bundler/compact_index_client/updater.rb
77
82
  - lib/bundler/constants.rb
78
83
  - lib/bundler/current_ruby.rb
@@ -110,6 +115,58 @@ files:
110
115
  - lib/bundler/lazy_specification.rb
111
116
  - lib/bundler/lockfile_generator.rb
112
117
  - lib/bundler/lockfile_parser.rb
118
+ - lib/bundler/man/.document
119
+ - lib/bundler/man/bundle-add.1
120
+ - lib/bundler/man/bundle-add.1.ronn
121
+ - lib/bundler/man/bundle-binstubs.1
122
+ - lib/bundler/man/bundle-binstubs.1.ronn
123
+ - lib/bundler/man/bundle-cache.1
124
+ - lib/bundler/man/bundle-cache.1.ronn
125
+ - lib/bundler/man/bundle-check.1
126
+ - lib/bundler/man/bundle-check.1.ronn
127
+ - lib/bundler/man/bundle-clean.1
128
+ - lib/bundler/man/bundle-clean.1.ronn
129
+ - lib/bundler/man/bundle-config.1
130
+ - lib/bundler/man/bundle-config.1.ronn
131
+ - lib/bundler/man/bundle-doctor.1
132
+ - lib/bundler/man/bundle-doctor.1.ronn
133
+ - lib/bundler/man/bundle-exec.1
134
+ - lib/bundler/man/bundle-exec.1.ronn
135
+ - lib/bundler/man/bundle-gem.1
136
+ - lib/bundler/man/bundle-gem.1.ronn
137
+ - lib/bundler/man/bundle-info.1
138
+ - lib/bundler/man/bundle-info.1.ronn
139
+ - lib/bundler/man/bundle-init.1
140
+ - lib/bundler/man/bundle-init.1.ronn
141
+ - lib/bundler/man/bundle-inject.1
142
+ - lib/bundler/man/bundle-inject.1.ronn
143
+ - lib/bundler/man/bundle-install.1
144
+ - lib/bundler/man/bundle-install.1.ronn
145
+ - lib/bundler/man/bundle-list.1
146
+ - lib/bundler/man/bundle-list.1.ronn
147
+ - lib/bundler/man/bundle-lock.1
148
+ - lib/bundler/man/bundle-lock.1.ronn
149
+ - lib/bundler/man/bundle-open.1
150
+ - lib/bundler/man/bundle-open.1.ronn
151
+ - lib/bundler/man/bundle-outdated.1
152
+ - lib/bundler/man/bundle-outdated.1.ronn
153
+ - lib/bundler/man/bundle-platform.1
154
+ - lib/bundler/man/bundle-platform.1.ronn
155
+ - lib/bundler/man/bundle-pristine.1
156
+ - lib/bundler/man/bundle-pristine.1.ronn
157
+ - lib/bundler/man/bundle-remove.1
158
+ - lib/bundler/man/bundle-remove.1.ronn
159
+ - lib/bundler/man/bundle-show.1
160
+ - lib/bundler/man/bundle-show.1.ronn
161
+ - lib/bundler/man/bundle-update.1
162
+ - lib/bundler/man/bundle-update.1.ronn
163
+ - lib/bundler/man/bundle-viz.1
164
+ - lib/bundler/man/bundle-viz.1.ronn
165
+ - lib/bundler/man/bundle.1
166
+ - lib/bundler/man/bundle.1.ronn
167
+ - lib/bundler/man/gemfile.5
168
+ - lib/bundler/man/gemfile.5.ronn
169
+ - lib/bundler/man/index.txt
113
170
  - lib/bundler/match_platform.rb
114
171
  - lib/bundler/mirror.rb
115
172
  - lib/bundler/plugin.rb
@@ -148,7 +205,9 @@ files:
148
205
  - lib/bundler/source/path/installer.rb
149
206
  - lib/bundler/source/rubygems.rb
150
207
  - lib/bundler/source/rubygems/remote.rb
208
+ - lib/bundler/source/rubygems_aggregate.rb
151
209
  - lib/bundler/source_list.rb
210
+ - lib/bundler/source_map.rb
152
211
  - lib/bundler/spec_set.rb
153
212
  - lib/bundler/stub_specification.rb
154
213
  - lib/bundler/templates/.document
@@ -157,6 +216,7 @@ files:
157
216
  - lib/bundler/templates/Executable.standalone
158
217
  - lib/bundler/templates/Gemfile
159
218
  - lib/bundler/templates/gems.rb
219
+ - lib/bundler/templates/newgem/CHANGELOG.md.tt
160
220
  - lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
161
221
  - lib/bundler/templates/newgem/Gemfile.tt
162
222
  - lib/bundler/templates/newgem/LICENSE.txt.tt
@@ -164,19 +224,25 @@ files:
164
224
  - lib/bundler/templates/newgem/Rakefile.tt
165
225
  - lib/bundler/templates/newgem/bin/console.tt
166
226
  - lib/bundler/templates/newgem/bin/setup.tt
227
+ - lib/bundler/templates/newgem/circleci/config.yml.tt
167
228
  - lib/bundler/templates/newgem/exe/newgem.tt
168
229
  - lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt
169
230
  - lib/bundler/templates/newgem/ext/newgem/newgem.c.tt
170
231
  - lib/bundler/templates/newgem/ext/newgem/newgem.h.tt
232
+ - lib/bundler/templates/newgem/github/workflows/main.yml.tt
171
233
  - lib/bundler/templates/newgem/gitignore.tt
234
+ - lib/bundler/templates/newgem/gitlab-ci.yml.tt
172
235
  - lib/bundler/templates/newgem/lib/newgem.rb.tt
173
236
  - lib/bundler/templates/newgem/lib/newgem/version.rb.tt
174
237
  - lib/bundler/templates/newgem/newgem.gemspec.tt
175
238
  - lib/bundler/templates/newgem/rspec.tt
239
+ - lib/bundler/templates/newgem/rubocop.yml.tt
176
240
  - lib/bundler/templates/newgem/spec/newgem_spec.rb.tt
177
241
  - lib/bundler/templates/newgem/spec/spec_helper.rb.tt
178
- - lib/bundler/templates/newgem/test/newgem_test.rb.tt
179
- - lib/bundler/templates/newgem/test/test_helper.rb.tt
242
+ - lib/bundler/templates/newgem/test/minitest/newgem_test.rb.tt
243
+ - lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt
244
+ - lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt
245
+ - lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt
180
246
  - lib/bundler/templates/newgem/travis.yml.tt
181
247
  - lib/bundler/ui.rb
182
248
  - lib/bundler/ui/rg_proxy.rb
@@ -189,7 +255,6 @@ files:
189
255
  - lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
190
256
  - lib/bundler/vendor/fileutils/lib/fileutils.rb
191
257
  - lib/bundler/vendor/molinillo/lib/molinillo.rb
192
- - lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb
193
258
  - lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
194
259
  - lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
195
260
  - lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb
@@ -244,6 +309,7 @@ files:
244
309
  - lib/bundler/vendor/thor/lib/thor/shell/html.rb
245
310
  - lib/bundler/vendor/thor/lib/thor/util.rb
246
311
  - lib/bundler/vendor/thor/lib/thor/version.rb
312
+ - lib/bundler/vendor/tmpdir/lib/tmpdir.rb
247
313
  - lib/bundler/vendor/uri/lib/uri.rb
248
314
  - lib/bundler/vendor/uri/lib/uri/common.rb
249
315
  - lib/bundler/vendor/uri/lib/uri/file.rb
@@ -261,96 +327,21 @@ files:
261
327
  - lib/bundler/vendored_molinillo.rb
262
328
  - lib/bundler/vendored_persistent.rb
263
329
  - lib/bundler/vendored_thor.rb
330
+ - lib/bundler/vendored_tmpdir.rb
264
331
  - lib/bundler/vendored_uri.rb
265
332
  - lib/bundler/version.rb
266
333
  - lib/bundler/version_ranges.rb
267
334
  - lib/bundler/vlad.rb
268
335
  - lib/bundler/worker.rb
269
336
  - lib/bundler/yaml_serializer.rb
270
- - man/bundle-add.1
271
- - man/bundle-add.1.txt
272
- - man/bundle-add.ronn
273
- - man/bundle-binstubs.1
274
- - man/bundle-binstubs.1.txt
275
- - man/bundle-binstubs.ronn
276
- - man/bundle-cache.1
277
- - man/bundle-cache.1.txt
278
- - man/bundle-cache.ronn
279
- - man/bundle-check.1
280
- - man/bundle-check.1.txt
281
- - man/bundle-check.ronn
282
- - man/bundle-clean.1
283
- - man/bundle-clean.1.txt
284
- - man/bundle-clean.ronn
285
- - man/bundle-config.1
286
- - man/bundle-config.1.txt
287
- - man/bundle-config.ronn
288
- - man/bundle-doctor.1
289
- - man/bundle-doctor.1.txt
290
- - man/bundle-doctor.ronn
291
- - man/bundle-exec.1
292
- - man/bundle-exec.1.txt
293
- - man/bundle-exec.ronn
294
- - man/bundle-gem.1
295
- - man/bundle-gem.1.txt
296
- - man/bundle-gem.ronn
297
- - man/bundle-info.1
298
- - man/bundle-info.1.txt
299
- - man/bundle-info.ronn
300
- - man/bundle-init.1
301
- - man/bundle-init.1.txt
302
- - man/bundle-init.ronn
303
- - man/bundle-inject.1
304
- - man/bundle-inject.1.txt
305
- - man/bundle-inject.ronn
306
- - man/bundle-install.1
307
- - man/bundle-install.1.txt
308
- - man/bundle-install.ronn
309
- - man/bundle-list.1
310
- - man/bundle-list.1.txt
311
- - man/bundle-list.ronn
312
- - man/bundle-lock.1
313
- - man/bundle-lock.1.txt
314
- - man/bundle-lock.ronn
315
- - man/bundle-open.1
316
- - man/bundle-open.1.txt
317
- - man/bundle-open.ronn
318
- - man/bundle-outdated.1
319
- - man/bundle-outdated.1.txt
320
- - man/bundle-outdated.ronn
321
- - man/bundle-platform.1
322
- - man/bundle-platform.1.txt
323
- - man/bundle-platform.ronn
324
- - man/bundle-pristine.1
325
- - man/bundle-pristine.1.txt
326
- - man/bundle-pristine.ronn
327
- - man/bundle-remove.1
328
- - man/bundle-remove.1.txt
329
- - man/bundle-remove.ronn
330
- - man/bundle-show.1
331
- - man/bundle-show.1.txt
332
- - man/bundle-show.ronn
333
- - man/bundle-update.1
334
- - man/bundle-update.1.txt
335
- - man/bundle-update.ronn
336
- - man/bundle-viz.1
337
- - man/bundle-viz.1.txt
338
- - man/bundle-viz.ronn
339
- - man/bundle.1
340
- - man/bundle.1.txt
341
- - man/bundle.ronn
342
- - man/gemfile.5
343
- - man/gemfile.5.ronn
344
- - man/gemfile.5.txt
345
- - man/index.txt
346
337
  homepage: https://bundler.io
347
338
  licenses:
348
339
  - MIT
349
340
  metadata:
350
- bug_tracker_uri: https://github.com/bundler/bundler/issues
351
- changelog_uri: https://github.com/bundler/bundler/blob/master/CHANGELOG.md
341
+ bug_tracker_uri: https://github.com/rubygems/rubygems/issues?q=is%3Aopen+is%3Aissue+label%3ABundler
342
+ changelog_uri: https://github.com/rubygems/rubygems/blob/master/bundler/CHANGELOG.md
352
343
  homepage_uri: https://bundler.io/
353
- source_code_uri: https://github.com/bundler/bundler/
344
+ source_code_uri: https://github.com/rubygems/rubygems/
354
345
  post_install_message:
355
346
  rdoc_options: []
356
347
  require_paths:
@@ -366,7 +357,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
366
357
  - !ruby/object:Gem::Version
367
358
  version: 2.5.2
368
359
  requirements: []
369
- rubygems_version: 3.1.2
360
+ rubygems_version: 3.2.18
370
361
  signing_key:
371
362
  specification_version: 4
372
363
  summary: The best way to manage your application's dependencies
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bundler::Molinillo
4
- # Hacks needed for old Ruby versions.
5
- module Compatibility
6
- module_function
7
-
8
- if [].respond_to?(:flat_map)
9
- # Flat map
10
- # @param [Enumerable] enum an enumerable object
11
- # @block the block to flat-map with
12
- # @return The enum, flat-mapped
13
- def flat_map(enum, &blk)
14
- enum.flat_map(&blk)
15
- end
16
- else
17
- # Flat map
18
- # @param [Enumerable] enum an enumerable object
19
- # @block the block to flat-map with
20
- # @return The enum, flat-mapped
21
- def flat_map(enum, &blk)
22
- enum.map(&blk).flatten(1)
23
- end
24
- end
25
- end
26
- end