summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2024-08-02 20:59:31 +0200
committergit <svn-admin@ruby-lang.org>2024-08-05 17:27:11 +0000
commit540bcf524850854fdf199096da1e0e829e1dfbe9 (patch)
treed8b56d924f67b17f5ec08678a32c3c8b97ab9591 /lib
parentdc804bd83c79d39eac71ca1a369061a8ba1b4ace (diff)
[rubygems/rubygems] Fix locked source not getting respected when `bundle update <specific_gem>` is run
https://github.com/rubygems/rubygems/commit/eec6830c04
Diffstat (limited to 'lib')
-rw-r--r--lib/bundler/definition.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index 31b9517693..d2cab437a0 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -214,6 +214,7 @@ module Bundler
@resolve = nil
@resolver = nil
@resolution_packages = nil
+ @source_requirements = nil
@specs = nil
Bundler.ui.debug "The definition is missing dependencies, failed to resolve & materialize locally (#{e})"
@@ -499,6 +500,8 @@ module Bundler
@unlocking
end
+ attr_writer :source_requirements
+
private
attr_reader :sources
@@ -971,6 +974,10 @@ module Bundler
end
def source_requirements
+ @source_requirements ||= find_source_requirements
+ end
+
+ def find_source_requirements
# Record the specs available in each gem's source, so that those
# specs will be available later when the resolver knows where to
# look for that gemspec (or its dependencies)
@@ -1052,6 +1059,7 @@ module Bundler
def dup_for_full_unlock
unlocked_definition = self.class.new(@lockfile, @dependencies, @sources, true, @ruby_version, @optional_groups, @gemfiles)
+ unlocked_definition.source_requirements = source_requirements
unlocked_definition.gem_version_promoter.tap do |gvp|
gvp.level = gem_version_promoter.level
gvp.strict = gem_version_promoter.strict