Skip to content

Commit 0a2f5ed

Browse files
Handle locked sources more simillarly to locked specs
1 parent ad92aba commit 0a2f5ed

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

bundler/lib/bundler/definition.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,15 @@ def initialize(lockfile, dependencies, sources, unlock, ruby_version = nil, opti
107107
@locked_ruby_version = @locked_gems.ruby_version
108108
@locked_deps = @locked_gems.dependencies
109109
@originally_locked_specs = SpecSet.new(@locked_gems.specs)
110+
@originally_locked_sources = @locked_gems.sources
110111
@locked_checksums = @locked_gems.checksums
111112

112113
if @unlocking_all
113114
@locked_specs = SpecSet.new([])
114115
@locked_sources = []
115116
else
116117
@locked_specs = @originally_locked_specs
117-
@locked_sources = @locked_gems.sources
118+
@locked_sources = @originally_locked_sources
118119
end
119120
else
120121
@locked_gems = nil
@@ -123,8 +124,9 @@ def initialize(lockfile, dependencies, sources, unlock, ruby_version = nil, opti
123124
@platforms = []
124125
@locked_deps = {}
125126
@locked_specs = SpecSet.new([])
126-
@originally_locked_specs = @locked_specs
127127
@locked_sources = []
128+
@originally_locked_specs = @locked_specs
129+
@originally_locked_sources = @locked_sources
128130
@locked_checksums = Bundler.feature_flag.lockfile_checksums?
129131
end
130132

@@ -954,7 +956,7 @@ def converge_sources
954956
sources.all_sources.each do |source|
955957
# has to be done separately, because we want to keep the locked checksum
956958
# store for a source, even when doing a full update
957-
if @locked_checksums && @locked_gems && locked_source = @locked_gems.sources.find {|s| s == source && !s.equal?(source) }
959+
if @locked_checksums && @locked_gems && locked_source = @originally_locked_sources.find {|s| s == source && !s.equal?(source) }
958960
source.checksum_store.merge!(locked_source.checksum_store)
959961
end
960962
# If the source is unlockable and the current command allows an unlock of
@@ -1137,7 +1139,7 @@ def lockfiles_equal?(current, proposed, preserve_unknown_sections)
11371139
end
11381140

11391141
def additional_base_requirements_to_prevent_downgrades(resolution_base)
1140-
return resolution_base unless @locked_gems && !sources.expired_sources?(@locked_gems.sources)
1142+
return resolution_base unless @locked_gems && !sources.expired_sources?(@originally_locked_sources)
11411143
@originally_locked_specs.each do |locked_spec|
11421144
next if locked_spec.source.is_a?(Source::Path) || locked_spec.source_changed?
11431145

0 commit comments

Comments
 (0)