summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2017-09-12 22:20:22 -0700
committerSamuel Giddins <segiddins@segiddins.me>2017-09-13 16:06:22 -0500
commitb29fa44645888f0240c5b6ce18c9c55d5cd76088 (patch)
treebb492c6656f4ad3c32d8b766de58edbb3642db8e
parent570289498284575c33ba45374c8eedbffde2d1fb (diff)
downloadbundler-b29fa44645888f0240c5b6ce18c9c55d5cd76088.tar.gz
Dont consider deps pinned on 1.x if they dont have an explicit source
-rw-r--r--lib/bundler/definition.rb2
-rw-r--r--lib/bundler/source/rubygems.rb6
-rw-r--r--spec/install/gems/dependency_api_spec.rb2
3 files changed, 7 insertions, 3 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index 02ad967c2a..4b9a781c82 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -923,7 +923,7 @@ module Bundler
pinned_names = []
default = Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? && sources.default_source
@dependencies.each do |dep|
- dep_source = dep.source || default
+ next unless dep_source = dep.source || default
next if dep_source == skip
pinned_names << dep.name
end
diff --git a/lib/bundler/source/rubygems.rb b/lib/bundler/source/rubygems.rb
index 02835a5485..6f4157364f 100644
--- a/lib/bundler/source/rubygems.rb
+++ b/lib/bundler/source/rubygems.rb
@@ -260,7 +260,11 @@ module Bundler
unmet_dependency_names = unmet_dependency_names.call
unless unmet_dependency_names.nil?
- unmet_dependency_names -= remote_specs.spec_names # avoid re-fetching things we've already gotten
+ if api_fetchers.size <= 1
+ # can't do this when there are multiple fetchers because then we might not fetch from _all_
+ # of them
+ unmet_dependency_names -= remote_specs.spec_names # avoid re-fetching things we've already gotten
+ end
return if unmet_dependency_names.empty?
end
diff --git a/spec/install/gems/dependency_api_spec.rb b/spec/install/gems/dependency_api_spec.rb
index 85a7f07092..2ffe4b62d7 100644
--- a/spec/install/gems/dependency_api_spec.rb
+++ b/spec/install/gems/dependency_api_spec.rb
@@ -320,7 +320,7 @@ RSpec.describe "gemcutter's dependency API" do
gem 'somegem', '1.0.0'
G
- bundle :install, :artifice => "endpoint_extra_api"
+ bundle! :install, :artifice => "endpoint_extra_api"
expect(the_bundle).to include_gems "somegem 1.0.0"
expect(the_bundle).to include_gems "activesupport 1.2.3"