summaryrefslogtreecommitdiff
path: root/lib/bundler/definition.rb
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2018-04-18 20:44:50 -0700
committerSamuel Giddins <segiddins@segiddins.me>2018-04-18 21:49:01 -0700
commite2e8e5aec2edd9d7508306f72fad1a5312c3bfaf (patch)
treea9b29706d1da241fc5231c840d74ac155ea7de69 /lib/bundler/definition.rb
parentbbd0b49aa2260de17b697a21f2bb932959284c5c (diff)
downloadbundler-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.rb27
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