summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2024-06-14 11:08:48 +0200
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2024-06-20 15:21:08 +0900
commit758e01d39da4b84a9950ad1301af98010e27fbee (patch)
treed87abfe9ad4a88e8b6539513b95cfd00486d2177 /lib
parentc6a28b02c9892ae570e6da1b068470c8c93b9d16 (diff)
[rubygems/rubygems] Make sure to not re-resolve when a not fully specific local platform is locked
https://github.com/rubygems/rubygems/commit/36a02c6128
Diffstat (limited to 'lib')
-rw-r--r--lib/bundler/definition.rb9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index 93ddfeaed9..7eac113254 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -621,11 +621,13 @@ module Bundler
end
def start_resolution
+ @platforms |= [local_platform]
+
result = SpecSet.new(resolver.start)
@resolved_bundler_version = result.find {|spec| spec.name == "bundler" }&.version
- if @current_ruby_locked_platform && @current_ruby_locked_platform != local_platform
+ if most_specific_ruby_locked_platform_is_not_local_platform?
@platforms.delete(result.incomplete_for_platform?(dependencies, @current_ruby_locked_platform) ? @current_ruby_locked_platform : local_platform)
end
@@ -667,10 +669,15 @@ module Bundler
def add_current_platform
@current_ruby_locked_platform = most_specific_locked_platform if current_ruby_platform_locked?
+ return if most_specific_ruby_locked_platform_is_not_local_platform?
add_platform(local_platform)
end
+ def most_specific_ruby_locked_platform_is_not_local_platform?
+ @current_ruby_locked_platform && @current_ruby_locked_platform != local_platform
+ end
+
def change_reason
if unlocking?
unlock_targets = if @gems_to_unlock.any?