[rubygems/rubygems] Don't potentially load remote metadata when expanding dependencies

For installed specifications, we can ignore any constraints they may
have, since we know they match the current version of Ruby or otherwise
would not be installed.

For remote specifications, we already resolve optimistically without
metadata and retry force-fetching it if necessary.

If in the future we support resolving against a Ruby version different
that the one being run, we'll probably need to change this but now it's
unnecessary and saves some memory.

### Before

Total allocated: 262.99 MB (3177437 objects)
Total retained:  115.91 MB (1297821 objects)

### After

Total allocated: 259.89 MB (3134199 objects)
Total retained:  115.05 MB (1283779 objects)

https://github.com/rubygems/rubygems/commit/201c1863fc
This commit is contained in:
David Rodríguez 2025-01-31 09:19:49 +01:00 committed by Hiroshi SHIBATA
parent a1716e2365
commit 385dc5dc16

View File

@ -16,8 +16,8 @@ module Bundler
def expanded_dependencies
runtime_dependencies + [
metadata_dependency("Ruby", required_ruby_version),
metadata_dependency("RubyGems", required_rubygems_version),
metadata_dependency("Ruby", @required_ruby_version),
metadata_dependency("RubyGems", @required_rubygems_version),
].compact
end