From 0a5a0eeab45fb2db176b681159b328b3fdf95408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= <2887858+deivid-rodriguez@users.noreply.github.com> Date: Wed, 10 Sep 2025 10:32:26 +0200 Subject: [rubygems/rubygems] Handle locked sources more simillarly to locked specs https://github.com/rubygems/rubygems/commit/0a2f5ed717 --- lib/bundler/definition.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb index e177b6e396..bd424609c9 100644 --- a/lib/bundler/definition.rb +++ b/lib/bundler/definition.rb @@ -107,6 +107,7 @@ module Bundler @locked_ruby_version = @locked_gems.ruby_version @locked_deps = @locked_gems.dependencies @originally_locked_specs = SpecSet.new(@locked_gems.specs) + @originally_locked_sources = @locked_gems.sources @locked_checksums = @locked_gems.checksums if @unlocking_all @@ -114,7 +115,7 @@ module Bundler @locked_sources = [] else @locked_specs = @originally_locked_specs - @locked_sources = @locked_gems.sources + @locked_sources = @originally_locked_sources end else @locked_gems = nil @@ -123,8 +124,9 @@ module Bundler @platforms = [] @locked_deps = {} @locked_specs = SpecSet.new([]) - @originally_locked_specs = @locked_specs @locked_sources = [] + @originally_locked_specs = @locked_specs + @originally_locked_sources = @locked_sources @locked_checksums = Bundler.feature_flag.lockfile_checksums? end @@ -954,7 +956,7 @@ module Bundler sources.all_sources.each do |source| # has to be done separately, because we want to keep the locked checksum # store for a source, even when doing a full update - if @locked_checksums && @locked_gems && locked_source = @locked_gems.sources.find {|s| s == source && !s.equal?(source) } + if @locked_checksums && @locked_gems && locked_source = @originally_locked_sources.find {|s| s == source && !s.equal?(source) } source.checksum_store.merge!(locked_source.checksum_store) end # If the source is unlockable and the current command allows an unlock of @@ -1137,7 +1139,7 @@ module Bundler end def additional_base_requirements_to_prevent_downgrades(resolution_base) - return resolution_base unless @locked_gems && !sources.expired_sources?(@locked_gems.sources) + return resolution_base unless @locked_gems && !sources.expired_sources?(@originally_locked_sources) @originally_locked_specs.each do |locked_spec| next if locked_spec.source.is_a?(Source::Path) || locked_spec.source_changed? -- cgit v1.2.3