diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2018-04-18 20:44:50 -0700 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2018-04-18 21:49:01 -0700 |
commit | e2e8e5aec2edd9d7508306f72fad1a5312c3bfaf (patch) | |
tree | a9b29706d1da241fc5231c840d74ac155ea7de69 /lib/bundler/definition.rb | |
parent | bbd0b49aa2260de17b697a21f2bb932959284c5c (diff) | |
download | bundler-e2e8e5aec2edd9d7508306f72fad1a5312c3bfaf.tar.gz |
[Definition] Filter out unneeded gem platforms after resolvingsegiddins/6491-extra-gem-platform-in-lockfile
Diffstat (limited to 'lib/bundler/definition.rb')
-rw-r--r-- | lib/bundler/definition.rb | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb index bec3cadbb4..df8ee1f54b 100644 --- a/lib/bundler/definition.rb +++ b/lib/bundler/definition.rb @@ -245,17 +245,22 @@ module Bundler def resolve @resolve ||= begin last_resolve = converge_locked_specs - if Bundler.frozen_bundle? - Bundler.ui.debug "Frozen, using resolution from the lockfile" - last_resolve - elsif !unlocking? && nothing_changed? - Bundler.ui.debug("Found no changes, using resolution from the lockfile") - last_resolve - else - # Run a resolve against the locally available gems - Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}") - last_resolve.merge Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms) - end + resolve = + if Bundler.frozen_bundle? + Bundler.ui.debug "Frozen, using resolution from the lockfile" + last_resolve + elsif !unlocking? && nothing_changed? + Bundler.ui.debug("Found no changes, using resolution from the lockfile") + last_resolve + else + # Run a resolve against the locally available gems + Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}") + last_resolve.merge Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms) + end + + # filter out gems that _can_ be installed on multiple platforms, but don't need + # to be + resolve.for(expand_dependencies(dependencies, true), [], false, false, false) end end |