bundler 2.2.23 → 2.2.27

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +68 -0
  3. data/lib/bundler/build_metadata.rb +2 -2
  4. data/lib/bundler/cli/cache.rb +1 -1
  5. data/lib/bundler/cli/doctor.rb +1 -1
  6. data/lib/bundler/cli/exec.rb +1 -6
  7. data/lib/bundler/cli/gem.rb +3 -2
  8. data/lib/bundler/cli/install.rb +4 -17
  9. data/lib/bundler/cli/list.rb +7 -1
  10. data/lib/bundler/cli/open.rb +1 -2
  11. data/lib/bundler/cli/update.rb +1 -1
  12. data/lib/bundler/cli.rb +12 -9
  13. data/lib/bundler/definition.rb +38 -47
  14. data/lib/bundler/dsl.rb +40 -26
  15. data/lib/bundler/errors.rb +1 -1
  16. data/lib/bundler/installer/gem_installer.rb +3 -16
  17. data/lib/bundler/installer/standalone.rb +14 -9
  18. data/lib/bundler/installer.rb +0 -1
  19. data/lib/bundler/lockfile_parser.rb +1 -0
  20. data/lib/bundler/plugin/index.rb +4 -1
  21. data/lib/bundler/plugin/installer.rb +2 -0
  22. data/lib/bundler/plugin.rb +25 -6
  23. data/lib/bundler/resolver.rb +10 -17
  24. data/lib/bundler/rubygems_gem_installer.rb +5 -1
  25. data/lib/bundler/rubygems_integration.rb +2 -0
  26. data/lib/bundler/runtime.rb +16 -9
  27. data/lib/bundler/settings.rb +13 -1
  28. data/lib/bundler/setup.rb +2 -2
  29. data/lib/bundler/shared_helpers.rb +0 -7
  30. data/lib/bundler/source/git/git_proxy.rb +1 -2
  31. data/lib/bundler/source/rubygems.rb +23 -2
  32. data/lib/bundler/source/rubygems_aggregate.rb +4 -0
  33. data/lib/bundler/source.rb +4 -0
  34. data/lib/bundler/source_list.rb +16 -3
  35. data/lib/bundler/spec_set.rb +14 -37
  36. data/lib/bundler/templates/Executable.bundler +6 -6
  37. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +13 -2
  38. data/lib/bundler/templates/newgem/newgem.gemspec.tt +3 -1
  39. data/lib/bundler/version.rb +1 -1
  40. data/lib/bundler/worker.rb +17 -2
  41. data/lib/bundler.rb +11 -21
  42. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a22f09c258df906bb0acb91d7c4b7cc04a527652c11af80e3e34de0b30431235
4
- data.tar.gz: 587a4d96883fbec8b4de1b5f7b90748c2cda84dd7dead9dcf733e6e1700f16f3
3
+ metadata.gz: 5988e5fd0ca1324bf9c9b8e72a362895d08607a7abc9a50505a86bab3fd1edf8
4
+ data.tar.gz: 1b1d0176667a30f138c328ac6a44e303f468786b9449f027c7d4a93343724d85
5
5
  SHA512:
6
- metadata.gz: 7a08c50ac38e23d98cdf930668c0f276e857553c8412c4d92fc1692b0500eac62e1038330e685e183bac97ba27537e374f6e539a6189d712ceaafbf8d1ff28d4
7
- data.tar.gz: 14b76dccfb16d4a8d1a9e3a5e867a1b6b552b6809f1b8244f11588e41e4affeb16365fe0cb53a707dba144cb2ce7c7e119882e4b3d8f6b38537b4ba8698a701b
6
+ metadata.gz: 70567def38031cfe17536a800a8c49ec5733a1e3f4e4399fc675bd634dfa7b87f78293bd648b387bc77a0023f06f095d7899516125032a5f7c5de4698f204170
7
+ data.tar.gz: d4c4c08b25b691821035d712cac6f31553c2d73c9b6682d1eb3e355183453cd3980d008f736cc5042d3f7a647181e3ab0875463679192cfc16305232866f5413
data/CHANGELOG.md CHANGED
@@ -1,3 +1,71 @@
1
+ # 2.2.27 (September 3, 2021)
2
+
3
+ ## Enhancements:
4
+
5
+ - Optimize some requires [#4887](https://github.com/rubygems/rubygems/pull/4887)
6
+ - Correctly redact credentials when using x-oauth-basic [#4866](https://github.com/rubygems/rubygems/pull/4866)
7
+
8
+ ## Bug fixes:
9
+
10
+ - Add missing key `branches:` to template for GitHub Actions [#4883](https://github.com/rubygems/rubygems/pull/4883)
11
+ - Fix `bundle plugin install` detection of already installed plugins [#4869](https://github.com/rubygems/rubygems/pull/4869)
12
+ - Make plugin installation idempotent [#4864](https://github.com/rubygems/rubygems/pull/4864)
13
+ - Fix `bundle check` showing duplicated gems when multiple platforms are locked [#4854](https://github.com/rubygems/rubygems/pull/4854)
14
+ - Fix `bundle check` incorrectly considering cached gems [#4853](https://github.com/rubygems/rubygems/pull/4853)
15
+
16
+ # 2.2.26 (August 17, 2021)
17
+
18
+ ## Enhancements:
19
+
20
+ - Remove `RUBYGEMS_GEMDEPS` warning [#4827](https://github.com/rubygems/rubygems/pull/4827)
21
+ - Better defaults for GitHub Actions template generated by `bundle gem` [#4619](https://github.com/rubygems/rubygems/pull/4619)
22
+ - Make `bundle exec` keep file descriptors by default [#4812](https://github.com/rubygems/rubygems/pull/4812)
23
+ - Exclude gemspec file itself from file list of gems generated by `bundle gem` [#4650](https://github.com/rubygems/rubygems/pull/4650)
24
+ - Fix a couple small typos in deprecation / error messages [#4806](https://github.com/rubygems/rubygems/pull/4806)
25
+ - Make script generated by `bundle install --standalone` resilient to moving the application to a differently nested folder when `path` sources are used [#4792](https://github.com/rubygems/rubygems/pull/4792)
26
+ - Exclude CI files and issue templates from file list of gems generated by `bundle gem` [#4033](https://github.com/rubygems/rubygems/pull/4033)
27
+
28
+ ## Bug fixes:
29
+
30
+ - Respect `BUNDLE_USER_HOME` env when choosing config location [#4828](https://github.com/rubygems/rubygems/pull/4828)
31
+ - Fix `bundle gem` on path with spaces [#4816](https://github.com/rubygems/rubygems/pull/4816)
32
+ - Fix bundler hitting the network in some cases where not allowed [#4805](https://github.com/rubygems/rubygems/pull/4805)
33
+
34
+ # 2.2.25 (July 30, 2021)
35
+
36
+ ## Deprecations:
37
+
38
+ - Deprecate Gemfile without an explicit global source [#4779](https://github.com/rubygems/rubygems/pull/4779)
39
+ - Deprecate `bundle cache --path` [#4496](https://github.com/rubygems/rubygems/pull/4496)
40
+
41
+ ## Enhancements:
42
+
43
+ - Give better errors when materialization fails [#4788](https://github.com/rubygems/rubygems/pull/4788)
44
+ - Lazily load `shellwords` library [#4786](https://github.com/rubygems/rubygems/pull/4786)
45
+ - Show original error and backtrace directly on `bundle install` errors instead of a more brittle `gem install` hint [#4778](https://github.com/rubygems/rubygems/pull/4778)
46
+ - Remove LoadError message in regards to requiring a relative file [#4772](https://github.com/rubygems/rubygems/pull/4772)
47
+
48
+ ## Bug fixes:
49
+
50
+ - Fix `BUNDLE_USER_CONFIG` no longer respected as config location [#4797](https://github.com/rubygems/rubygems/pull/4797)
51
+ - Fix `--standalone` installation of default gems [#4782](https://github.com/rubygems/rubygems/pull/4782)
52
+ - Fix `--quiet` flag not printing warnings [#4781](https://github.com/rubygems/rubygems/pull/4781)
53
+ - Fix bundler binstub version selection [#4775](https://github.com/rubygems/rubygems/pull/4775)
54
+ - Fix interrupt handling in Bundler workers [#4767](https://github.com/rubygems/rubygems/pull/4767)
55
+
56
+ # 2.2.24 (July 15, 2021)
57
+
58
+ ## Bug fixes:
59
+
60
+ - Fix development gem unintentionally removed on an edge case [#4751](https://github.com/rubygems/rubygems/pull/4751)
61
+ - Fix dangling empty plugin hooks [#4755](https://github.com/rubygems/rubygems/pull/4755)
62
+ - Fix `bundle plugin install --help` showing `bundle install`'s help [#4756](https://github.com/rubygems/rubygems/pull/4756)
63
+ - Make sure `bundle check` shows uniq missing gems [#4749](https://github.com/rubygems/rubygems/pull/4749)
64
+
65
+ ## Performance:
66
+
67
+ - Slightly speed up `bundler/setup` [#4750](https://github.com/rubygems/rubygems/pull/4750)
68
+
1
69
  # 2.2.23 (July 9, 2021)
2
70
 
3
71
  ## Enhancements:
@@ -4,8 +4,8 @@ module Bundler
4
4
  # Represents metadata from when the Bundler gem was built.
5
5
  module BuildMetadata
6
6
  # begin ivars
7
- @built_at = "2021-07-09".freeze
8
- @git_commit_sha = "e863a3905d".freeze
7
+ @built_at = "2021-09-03".freeze
8
+ @git_commit_sha = "b737e1c930".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -9,7 +9,7 @@ module Bundler
9
9
  end
10
10
 
11
11
  def run
12
- Bundler.ui.level = "error" if options[:quiet]
12
+ Bundler.ui.level = "warn" if options[:quiet]
13
13
  Bundler.settings.set_command_option_if_given :path, options[:path]
14
14
  Bundler.settings.set_command_option_if_given :cache_path, options["cache-path"]
15
15
 
@@ -61,7 +61,7 @@ module Bundler
61
61
  end
62
62
 
63
63
  def run
64
- Bundler.ui.level = "error" if options[:quiet]
64
+ Bundler.ui.level = "warn" if options[:quiet]
65
65
  Bundler.settings.validate!
66
66
  check!
67
67
 
@@ -12,12 +12,7 @@ module Bundler
12
12
  @options = options
13
13
  @cmd = args.shift
14
14
  @args = args
15
-
16
- if !Bundler.current_ruby.jruby?
17
- @args << { :close_others => !options.keep_file_descriptors? }
18
- elsif options.keep_file_descriptors?
19
- Bundler.ui.warn "Ruby version #{RUBY_VERSION} defaults to keeping non-standard file descriptors on Kernel#exec."
20
- end
15
+ @args << { :close_others => !options.keep_file_descriptors? } unless Bundler.current_ruby.jruby?
21
16
  end
22
17
 
23
18
  def run
@@ -184,14 +184,15 @@ module Bundler
184
184
  )
185
185
  end
186
186
 
187
- if File.exist?(target) && !File.directory?(target)
187
+ if target.exist? && !target.directory?
188
188
  Bundler.ui.error "Couldn't create a new gem named `#{gem_name}` because there's an existing file named `#{gem_name}`."
189
189
  exit Bundler::BundlerError.all_errors[Bundler::GenericSystemCallError]
190
190
  end
191
191
 
192
192
  if use_git
193
193
  Bundler.ui.info "Initializing git repo in #{target}"
194
- `git init #{target}`
194
+ require "shellwords"
195
+ `git init #{target.to_s.shellescape}`
195
196
 
196
197
  config[:git_default_branch] = File.read("#{target}/.git/HEAD").split("/").last.chomp
197
198
  end
@@ -8,7 +8,7 @@ module Bundler
8
8
  end
9
9
 
10
10
  def run
11
- Bundler.ui.level = "error" if options[:quiet]
11
+ Bundler.ui.level = "warn" if options[:quiet]
12
12
 
13
13
  warn_if_root
14
14
 
@@ -60,7 +60,7 @@ module Bundler
60
60
  installer = Installer.install(Bundler.root, definition, options)
61
61
 
62
62
  Bundler.settings.temporary(:cache_all_platforms => options[:local] ? false : Bundler.settings[:cache_all_platforms]) do
63
- Bundler.load.cache if Bundler.app_cache.exist? && !options["no-cache"] && !Bundler.frozen_bundle?
63
+ Bundler.load.cache(nil, options[:local]) if Bundler.app_cache.exist? && !options["no-cache"] && !Bundler.frozen_bundle?
64
64
  end
65
65
 
66
66
  Bundler.ui.confirm "Bundle complete! #{dependencies_count_for(definition)}, #{gems_installed_for(definition)}."
@@ -83,22 +83,9 @@ module Bundler
83
83
  end
84
84
 
85
85
  Bundler::CLI::Common.output_fund_metadata_summary
86
- rescue GemNotFound, VersionConflict => e
87
- if options[:local] && Bundler.app_cache.exist?
88
- Bundler.ui.warn "Some gems seem to be missing from your #{Bundler.settings.app_cache_path} directory."
89
- end
90
-
91
- unless Bundler.definition.has_rubygems_remotes?
92
- Bundler.ui.warn <<-WARN, :wrap => true
93
- Your Gemfile has no gem server sources. If you need gems that are \
94
- not already on your machine, add a line like this to your Gemfile:
95
- source 'https://rubygems.org'
96
- WARN
97
- end
98
- raise e
99
- rescue Gem::InvalidSpecificationException => e
86
+ rescue Gem::InvalidSpecificationException
100
87
  Bundler.ui.warn "You have one or more invalid gemspecs that need to be fixed."
101
- raise e
88
+ raise
102
89
  end
103
90
 
104
91
  private
@@ -16,7 +16,13 @@ module Bundler
16
16
  specs = if @only_group.any? || @without_group.any?
17
17
  filtered_specs_by_groups
18
18
  else
19
- Bundler.load.specs
19
+ begin
20
+ Bundler.load.specs
21
+ rescue GemNotFound => e
22
+ Bundler.ui.error e.message
23
+ Bundler.ui.warn "Install missing gems with `bundle install`."
24
+ exit 1
25
+ end
20
26
  end.reject {|s| s.name == "bundler" }.sort_by(&:name)
21
27
 
22
28
  return Bundler.ui.info "No gems in the Gemfile" if specs.empty?
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "shellwords"
4
-
5
3
  module Bundler
6
4
  class CLI::Open
7
5
  attr_reader :options, :name
@@ -19,6 +17,7 @@ module Bundler
19
17
  else
20
18
  path = spec.full_gem_path
21
19
  Dir.chdir(path) do
20
+ require "shellwords"
22
21
  command = Shellwords.split(editor) + [path]
23
22
  Bundler.with_original_env do
24
23
  system(*command)
@@ -9,7 +9,7 @@ module Bundler
9
9
  end
10
10
 
11
11
  def run
12
- Bundler.ui.level = "error" if options[:quiet]
12
+ Bundler.ui.level = "warn" if options[:quiet]
13
13
 
14
14
  Plugin.gemfile_install(Bundler.default_gemfile) if Bundler.feature_flag.plugins?
15
15
 
data/lib/bundler/cli.rb CHANGED
@@ -14,6 +14,7 @@ module Bundler
14
14
  COMMAND_ALIASES = {
15
15
  "check" => "c",
16
16
  "install" => "i",
17
+ "plugin" => "",
17
18
  "list" => "ls",
18
19
  "exec" => ["e", "ex", "exe"],
19
20
  "cache" => ["package", "pack"],
@@ -72,14 +73,6 @@ module Bundler
72
73
  Bundler.ui = UI::Shell.new(options)
73
74
  Bundler.ui.level = "debug" if options["verbose"]
74
75
  unprinted_warnings.each {|w| Bundler.ui.warn(w) }
75
-
76
- if ENV["RUBYGEMS_GEMDEPS"] && !ENV["RUBYGEMS_GEMDEPS"].empty?
77
- Bundler.ui.warn(
78
- "The RUBYGEMS_GEMDEPS environment variable is set. This enables RubyGems' " \
79
- "experimental Gemfile mode, which may conflict with Bundler and cause unexpected errors. " \
80
- "To remove this warning, unset RUBYGEMS_GEMDEPS.", :wrap => true
81
- )
82
- end
83
76
  end
84
77
 
85
78
  check_unknown_options!(:except => [:config, :exec])
@@ -455,6 +448,12 @@ module Bundler
455
448
  "do in future versions. Instead please use `bundle config set cache_all true`, " \
456
449
  "and stop using this flag" if ARGV.include?("--all")
457
450
 
451
+ SharedHelpers.major_deprecation 2,
452
+ "The `--path` flag is deprecated because its semantics are unclear. " \
453
+ "Use `bundle config cache_path` to configure the path of your cache of gems, " \
454
+ "and `bundle config path` to configure the path where your gems are installed, " \
455
+ "and stop using this flag" if ARGV.include?("--path")
456
+
458
457
  require_relative "cli/cache"
459
458
  Cache.new(options).run
460
459
  end
@@ -462,7 +461,7 @@ module Bundler
462
461
  map aliases_for("cache")
463
462
 
464
463
  desc "exec [OPTIONS]", "Run the command in context of the bundle"
465
- method_option :keep_file_descriptors, :type => :boolean, :default => false
464
+ method_option :keep_file_descriptors, :type => :boolean, :default => true
466
465
  method_option :gemfile, :type => :string, :required => false
467
466
  long_desc <<-D
468
467
  Exec runs a command, providing it access to the gems in the bundle. While using
@@ -470,6 +469,10 @@ module Bundler
470
469
  into the system wide RubyGems repository.
471
470
  D
472
471
  def exec(*args)
472
+ if ARGV.include?("--no-keep-file-descriptors")
473
+ SharedHelpers.major_deprecation(2, "The `--no-keep-file-descriptors` has been deprecated. `bundle exec` no longer mess with your file descriptors. Close them in the exec'd script if you need to")
474
+ end
475
+
473
476
  require_relative "cli/exec"
474
477
  Exec.new(options, args).run
475
478
  end
@@ -133,7 +133,7 @@ module Bundler
133
133
  @unlock[:gems] ||= @dependencies.map(&:name)
134
134
  else
135
135
  eager_unlock = expand_dependencies(@unlock[:gems] || [], true)
136
- @unlock[:gems] = @locked_specs.for(eager_unlock, [], false, false, false).map(&:name)
136
+ @unlock[:gems] = @locked_specs.for(eager_unlock, false, false).map(&:name)
137
137
  end
138
138
 
139
139
  @dependency_changes = converge_dependencies
@@ -185,25 +185,7 @@ module Bundler
185
185
  #
186
186
  # @return [Bundler::SpecSet]
187
187
  def specs
188
- @specs ||= begin
189
- begin
190
- specs = resolve.materialize(requested_dependencies)
191
- rescue GemNotFound => e # Handle yanked gem
192
- gem_name, gem_version = extract_gem_info(e)
193
- locked_gem = @locked_specs[gem_name].last
194
- raise if locked_gem.nil? || locked_gem.version.to_s != gem_version || !@remote
195
- raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \
196
- "no longer be found in that source. That means the author of #{locked_gem} has removed it. " \
197
- "You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \
198
- "removed in order to install."
199
- end
200
- unless specs["bundler"].any?
201
- bundler = sources.metadata_source.specs.search(Gem::Dependency.new("bundler", VERSION)).last
202
- specs["bundler"] = bundler
203
- end
204
-
205
- specs
206
- end
188
+ @specs ||= materialize(requested_dependencies)
207
189
  end
208
190
 
209
191
  def new_specs
@@ -215,9 +197,7 @@ module Bundler
215
197
  end
216
198
 
217
199
  def missing_specs
218
- missing = []
219
- resolve.materialize(requested_dependencies, missing)
220
- missing
200
+ resolve.materialize(requested_dependencies).missing_specs
221
201
  end
222
202
 
223
203
  def missing_specs?
@@ -235,17 +215,11 @@ module Bundler
235
215
  end
236
216
 
237
217
  def requested_specs
238
- @requested_specs ||= begin
239
- groups = requested_groups
240
- groups.map!(&:to_sym)
241
- specs_for(groups)
242
- end
218
+ specs_for(requested_groups)
243
219
  end
244
220
 
245
221
  def requested_dependencies
246
- groups = requested_groups
247
- groups.map!(&:to_sym)
248
- dependencies_for(groups)
222
+ dependencies_for(requested_groups)
249
223
  end
250
224
 
251
225
  def current_dependencies
@@ -255,11 +229,13 @@ module Bundler
255
229
  end
256
230
 
257
231
  def specs_for(groups)
232
+ groups = requested_groups if groups.empty?
258
233
  deps = dependencies_for(groups)
259
- SpecSet.new(specs.for(expand_dependencies(deps)))
234
+ materialize(expand_dependencies(deps))
260
235
  end
261
236
 
262
237
  def dependencies_for(groups)
238
+ groups.map!(&:to_sym)
263
239
  current_dependencies.reject do |d|
264
240
  (d.groups & groups).empty?
265
241
  end
@@ -288,10 +264,6 @@ module Bundler
288
264
  end
289
265
  end
290
266
 
291
- def has_rubygems_remotes?
292
- sources.rubygems_sources.any? {|s| s.remotes.any? }
293
- end
294
-
295
267
  def spec_git_paths
296
268
  sources.git_sources.map {|s| File.realpath(s.path) if File.exist?(s.path) }.compact
297
269
  end
@@ -507,8 +479,33 @@ module Bundler
507
479
 
508
480
  private
509
481
 
482
+ def materialize(dependencies)
483
+ specs = resolve.materialize(dependencies)
484
+ missing_specs = specs.missing_specs
485
+
486
+ if missing_specs.any?
487
+ missing_specs.each do |s|
488
+ locked_gem = @locked_specs[s.name].last
489
+ next if locked_gem.nil? || locked_gem.version != s.version || !@remote
490
+ raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \
491
+ "no longer be found in that source. That means the author of #{locked_gem} has removed it. " \
492
+ "You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \
493
+ "removed in order to install."
494
+ end
495
+
496
+ raise GemNotFound, "Could not find #{missing_specs.map(&:full_name).join(", ")} in any of the sources"
497
+ end
498
+
499
+ unless specs["bundler"].any?
500
+ bundler = sources.metadata_source.specs.search(Gem::Dependency.new("bundler", VERSION)).last
501
+ specs["bundler"] = bundler
502
+ end
503
+
504
+ specs
505
+ end
506
+
510
507
  def precompute_source_requirements_for_indirect_dependencies?
511
- sources.non_global_rubygems_sources.all?(&:dependency_api_available?) && !sources.aggregate_global_source?
508
+ @remote && sources.non_global_rubygems_sources.all?(&:dependency_api_available?) && !sources.aggregate_global_source?
512
509
  end
513
510
 
514
511
  def current_ruby_platform_locked?
@@ -717,7 +714,7 @@ module Bundler
717
714
  @locked_specs.each do |s|
718
715
  # Replace the locked dependency's source with the equivalent source from the Gemfile
719
716
  dep = @dependencies.find {|d| s.satisfies?(d) }
720
- s.source = (dep && dep.source) || sources.get(s.source)
717
+ s.source = (dep && dep.source) || sources.get(s.source) unless multisource_allowed?
721
718
 
722
719
  # Don't add a spec to the list if its source is expired. For example,
723
720
  # if you change a Git gem to RubyGems.
@@ -735,7 +732,7 @@ module Bundler
735
732
  # if we won't need the source (according to the lockfile),
736
733
  # don't error if the path/git source isn't available
737
734
  next if @locked_specs.
738
- for(requested_dependencies, [], false, true, false).
735
+ for(requested_dependencies, false, true).
739
736
  none? {|locked_spec| locked_spec.source == s.source }
740
737
 
741
738
  raise
@@ -754,8 +751,8 @@ module Bundler
754
751
  end
755
752
 
756
753
  resolve = SpecSet.new(converged)
757
- @locked_specs_incomplete_for_platform = !resolve.for(expand_dependencies(requested_dependencies & deps), @unlock[:gems], true, true)
758
- resolve = SpecSet.new(resolve.for(expand_dependencies(deps, true), [], false, false, false).reject{|s| @unlock[:gems].include?(s.name) })
754
+ @locked_specs_incomplete_for_platform = !resolve.for(expand_dependencies(requested_dependencies & deps), true, true)
755
+ resolve = SpecSet.new(resolve.for(expand_dependencies(deps, true), false, false).reject{|s| @unlock[:gems].include?(s.name) })
759
756
  diff = nil
760
757
 
761
758
  # Now, we unlock any sources that do not have anymore gems pinned to it
@@ -859,12 +856,6 @@ module Bundler
859
856
  current == proposed
860
857
  end
861
858
 
862
- def extract_gem_info(error)
863
- # This method will extract the error message like "Could not find foo-1.2.3 in any of the sources"
864
- # to an array. The first element will be the gem name (e.g. foo), the second will be the version number.
865
- error.message.scan(/Could not find (\w+)-(\d+(?:\.\d+)+)/).flatten
866
- end
867
-
868
859
  def compute_requires
869
860
  dependencies.reduce({}) do |requires, dep|
870
861
  next requires unless dep.should_include?