diff options
| author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2024-06-14 11:08:48 +0200 |
|---|---|---|
| committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2024-06-20 15:21:08 +0900 |
| commit | 758e01d39da4b84a9950ad1301af98010e27fbee (patch) | |
| tree | d87abfe9ad4a88e8b6539513b95cfd00486d2177 /lib | |
| parent | c6a28b02c9892ae570e6da1b068470c8c93b9d16 (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.rb | 9 |
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? |
