ruby/lib/bundler/resolver
Hartley McGuire 752a1d7854 [rubygems/rubygems] Implement pub_grub strategy interface
My application spends more than 30% of time during `bundle update`
comparing versions due to versions being sorted inside
next_package_to_try. This has been addressed in pub_grub by defining a
strategy interface (a `#next_package_and_version` method) which allows
consumers to have finer control over the heuristic to select the next
package to try.

This commit implements the new strategy interface to remove extraneous
version sorting (previously in next_package_to_try) since only the final
count of versions is used.

Combined with a previous change to pub_grub (already applied to
Bundler), this commit results in `bundle update` taking only half the
time it did on 2.6.5.

62f69e27f0
2025-03-27 13:57:26 +09:00
..
base.rb [rubygems/rubygems] Don't remove platform specific variants from the lockfile unless necessary 2025-01-14 12:24:37 +09:00
candidate.rb [rubygems/rubygems] Consistently use "lockfile" over "lock file" 2025-03-24 13:25:07 +09:00
incompatibility.rb [rubygems/rubygems] Use modern hashes consistently 2023-12-07 22:29:33 +00:00
package.rb [rubygems/rubygems] Fix locked gems being upgraded when locked dependencies are incorrect 2025-02-18 12:12:51 +09:00
root.rb Migrate our resolver engine to PubGrub 2022-11-12 07:40:31 +09:00
spec_group.rb [rubygems/rubygems] Move expanding dependencies with metadata to specification classes 2025-02-06 15:57:57 +09:00
strategy.rb [rubygems/rubygems] Implement pub_grub strategy interface 2025-03-27 13:57:26 +09:00