[rubygems/rubygems] Fix resolver issue due to ill-defined version ranges being created

https://github.com/rubygems/rubygems/commit/f2f2ac9680
This commit is contained in:
David Rodríguez 2025-02-18 19:01:40 +01:00 committed by Hiroshi SHIBATA
parent bf6c106d54
commit cdbadafd25
2 changed files with 41 additions and 1 deletions

View File

@ -237,7 +237,7 @@ module Bundler
sorted_versions[high]
end
range = PubGrub::VersionRange.new(min: low, max: high, include_min: true)
range = PubGrub::VersionRange.new(min: low, max: high, include_min: !low.nil?)
self_constraint = PubGrub::VersionConstraint.new(package, range: range)

View File

@ -379,4 +379,44 @@ RSpec.describe "Resolving" do
should_resolve_without_dependency_api %w[myrack-3.0.0 standalone_migrations-2.0.4]
end
it "resolves fine cases that need joining unbounded disjoint ranges" do
@index = build_index do
gem "inspec", "5.22.3" do
dep "ruby", ">= 3.2.2"
dep "train-kubernetes", ">= 0.1.7"
end
gem "ruby", "3.2.2"
gem "train-kubernetes", "0.1.12" do
dep "k8s-ruby", ">= 0.14.0"
end
gem "train-kubernetes", "0.1.10" do
dep "k8s-ruby", "= 0.10.5"
end
gem "train-kubernetes", "0.1.7" do
dep "k8s-ruby", ">= 0.10.5"
end
gem "k8s-ruby", "0.10.5" do
dep "ruby","< 3.2.2"
end
gem "k8s-ruby", "0.11.0" do
dep "ruby", ">= 3.2.2"
end
gem "k8s-ruby", "0.14.0" do
dep "ruby", "< 3.2.2"
end
end
dep "inspec", "5.22.3"
dep "ruby", "3.2.2"
should_resolve_as %w[inspec-5.22.3 ruby-3.2.2 train-kubernetes-0.1.7 k8s-ruby-0.11.0]
end
end