summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>2025-09-10 10:32:26 +0200
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2025-09-16 17:17:32 +0900
commit0a5a0eeab45fb2db176b681159b328b3fdf95408 (patch)
tree4d71fd4604ccfc821acdabdcd1ea5c6cf3b8e9c8
parent12aa9e7457458245c9452ca5f786f6191742edf2 (diff)
[rubygems/rubygems] Handle locked sources more simillarly to locked specs
https://github.com/rubygems/rubygems/commit/0a2f5ed717
-rw-r--r--lib/bundler/definition.rb10
1 files 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?