Skip to content

Commit 2c8a3df

Browse files
authored
Merge pull request #9410 from Shopify/ec-package-range-memoize
Cache package version selection
2 parents edf0012 + a4f5973 commit 2c8a3df

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

bundler/lib/bundler/resolver/strategy.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ class Resolver
55
class Strategy
66
def initialize(source)
77
@source = source
8+
@package_priority_cache = {}
89
end
910

1011
def next_package_and_version(unsatisfied)
@@ -17,10 +18,12 @@ def next_package_and_version(unsatisfied)
1718

1819
def next_term_to_try_from(unsatisfied)
1920
unsatisfied.min_by do |package, range|
20-
matching_versions = @source.versions_for(package, range)
21-
higher_versions = @source.versions_for(package, range.upper_invert)
21+
@package_priority_cache[[package, range]] ||= begin
22+
matching_versions = @source.versions_for(package, range)
23+
higher_versions = @source.versions_for(package, range.upper_invert)
2224

23-
[matching_versions.count <= 1 ? 0 : 1, higher_versions.count]
25+
[matching_versions.count <= 1 ? 0 : 1, higher_versions.count]
26+
end
2427
end
2528
end
2629

0 commit comments

Comments
 (0)