diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2019-06-18 14:36:58 +0200 |
---|---|---|
committer | David RodrÃguez <deivid.rodriguez@riseup.net> | 2019-06-25 12:19:26 +0200 |
commit | 7da2bf75f506756d860ecca9d3501a01556e1054 (patch) | |
tree | 5225af231b1c724b121845a458683562e39399db | |
parent | 547975644e93d1c421a468ab5e2396b5b953158b (diff) | |
download | bundler-7da2bf75f506756d860ecca9d3501a01556e1054.tar.gz |
Don't re-resolve locked platform specific gems
-rw-r--r-- | lib/bundler/definition.rb | 2 | ||||
-rw-r--r-- | spec/bundler/definition_spec.rb | 28 |
2 files changed, 29 insertions, 1 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb index 4664eec24d..079f3ddbb5 100644 --- a/lib/bundler/definition.rb +++ b/lib/bundler/definition.rb @@ -813,7 +813,7 @@ module Bundler resolve = SpecSet.new(converged) expanded_deps = expand_dependencies(deps, true) - @locked_specs_incomplete_for_platform = !resolve.for(expanded_deps, @unlock[:gems], true, true) + @locked_specs_incomplete_for_platform = !resolve.for(expand_dependencies(deps), @unlock[:gems], true, true) resolve = resolve.for(expanded_deps, @unlock[:gems], false, false, false) diff = nil diff --git a/spec/bundler/definition_spec.rb b/spec/bundler/definition_spec.rb index 38b37570fe..8736fef060 100644 --- a/spec/bundler/definition_spec.rb +++ b/spec/bundler/definition_spec.rb @@ -147,6 +147,34 @@ RSpec.describe Bundler::Definition do G end + it "for a locked gem for another platform" do + install_gemfile <<-G + source "#{file_uri_for(gem_repo1)}" + gem "only_java", platform: :jruby + G + + bundle "lock --add-platform java" + bundle :check, :env => { "DEBUG" => 1 } + + expect(out).to match(/using resolution from the lockfile/) + lockfile_should_be <<-G + GEM + remote: #{file_uri_for(gem_repo1)}/ + specs: + only_java (1.1-java) + + PLATFORMS + java + #{lockfile_platforms} + + DEPENDENCIES + only_java + + BUNDLED WITH + #{Bundler::VERSION} + G + end + it "for a rubygems gem" do install_gemfile <<-G source "#{file_uri_for(gem_repo1)}" |