aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2023-08-25 09:55:37 +0200
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2023-08-28 11:15:33 +0900
commit279dcfab7aea4474c6722fd39cbf65017edb4b2b (patch)
tree67afe40f1e1f19fc2cec1b523c87a7612c837bb2 /spec
parent7bf5f780281edc2fca83a0657e3a8d256e6e7065 (diff)
downloadruby-279dcfab7aea4474c6722fd39cbf65017edb4b2b.tar.gz
[rubygems/rubygems] Fix standalone install crashing when using legacy multi remote gemfiles
If a legacy multi remote Gemfile depends transitively on a default gem, then in standalone mode we'd fail to fetch the proper version from the source that includes it, since we were adding it to `specs` (instead of `remote_specs`), which was already including the default version of the gem, and thus preventing the remote version from "overwriting that" and being added to the index. We should add it to the `remote_specs` index directly instead. https://github.com/rubygems/rubygems/commit/05f4f9dfc0
Diffstat (limited to 'spec')
-rw-r--r--spec/bundler/install/gemfile/sources_spec.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/bundler/install/gemfile/sources_spec.rb b/spec/bundler/install/gemfile/sources_spec.rb
index 1f89f9f0f9..8cb0476821 100644
--- a/spec/bundler/install/gemfile/sources_spec.rb
+++ b/spec/bundler/install/gemfile/sources_spec.rb
@@ -78,6 +78,33 @@ RSpec.describe "bundle install with gems on multiple sources" do
end
end
+ context "without source affinity, and a stdlib gem present in one of the sources", :ruby_repo do
+ let(:default_json_version) { ruby "gem 'json'; require 'json'; puts JSON::VERSION" }
+
+ before do
+ build_repo2 do
+ build_gem "json", default_json_version
+ end
+
+ build_repo4 do
+ build_gem "foo" do |s|
+ s.add_dependency "json", default_json_version
+ end
+ end
+
+ gemfile <<-G
+ source "https://gem.repo2"
+ source "https://gem.repo4"
+
+ gem "foo"
+ G
+ end
+
+ it "works in standalone mode", :bundler => "< 3" do
+ bundle "install --standalone", :artifice => "compact_index"
+ end
+ end
+
context "with source affinity" do
context "with sources given by a block" do
before do