[rubygems/rubygems] Fix another incorrect removal of "ruby" platform from lockfile

When dependencies in path sources have changed, we'll be re-resolving,
and we can't really know whether the resolution will be valid or invalid
for the Ruby platform, so skip the removal in that case.

https://github.com/rubygems/rubygems/commit/afc3b0956f
This commit is contained in:
David Rodríguez 2023-06-30 11:52:11 +02:00 коммит произвёл Hiroshi SHIBATA
Родитель af9eeb19d8
Коммит 0fcb4c6af7
2 изменённых файлов: 47 добавлений и 0 удалений

Просмотреть файл

@ -941,6 +941,7 @@ module Bundler
Bundler.local_platform == Gem::Platform::RUBY ||
!platforms.include?(Gem::Platform::RUBY) ||
(@new_platform && platforms.last == Gem::Platform::RUBY) ||
@path_changes ||
@dependency_changes ||
!@originally_locked_specs.incomplete_ruby_specs?(dependencies)

Просмотреть файл

@ -782,6 +782,52 @@ RSpec.describe "bundle install with explicit source paths" do
expect(the_bundle).to include_gems "rack 0.9.1"
end
it "does not remove existing ruby platform" do
build_lib "foo", "1.0", :path => lib_path("foo") do |s|
s.add_dependency "rack", "0.9.1"
end
lockfile <<~L
PATH
remote: #{lib_path("foo")}
specs:
foo (1.0)
PLATFORMS
#{lockfile_platforms("ruby")}
DEPENDENCIES
foo!
BUNDLED WITH
#{Bundler::VERSION}
L
bundle "lock"
expect(lockfile).to eq <<~G
PATH
remote: #{lib_path("foo")}
specs:
foo (1.0)
rack (= 0.9.1)
GEM
remote: #{file_uri_for(gem_repo1)}/
specs:
rack (0.9.1)
PLATFORMS
#{lockfile_platforms("ruby")}
DEPENDENCIES
foo!
BUNDLED WITH
#{Bundler::VERSION}
G
end
end
describe "switching sources" do