[前][次][番号順一覧][スレッド一覧]

ruby-changes:70430

From: Hiroshi <ko1@a...>
Date: Wed, 22 Dec 2021 08:19:10 +0900 (JST)
Subject: [ruby-changes:70430] fff9b45fa9 (master): Reverts the accidental commits for rubygems/bundler.

https://git.ruby-lang.org/ruby.git/commit/?id=fff9b45fa9

From fff9b45fa949f72b5cc6971b54eb3aa384d1d022 Mon Sep 17 00:00:00 2001
From: Hiroshi SHIBATA <hsbt@r...>
Date: Wed, 22 Dec 2021 07:52:59 +0900
Subject: Reverts the accidental commits for rubygems/bundler.

  We stay to the stable version for releasing Ruby 3.1.0.

  Revert commits:
    b86a7ba49252e00e19c22bbcdc821b5acc31ff92
    ef973aa7aa65143a4f05d623c016d459426770d0
---
 lib/bundler/definition.rb             | 16 ++++++----------
 spec/bundler/commands/install_spec.rb | 24 ++----------------------
 2 files changed, 8 insertions(+), 32 deletions(-)

diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index 19e5569fad1..9a94bd3ed3a 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -87,11 +87,10 @@ module Bundler https://github.com/ruby/ruby/blob/trunk/lib/bundler/definition.rb#L87
         @platforms = @locked_platforms.dup
         @locked_bundler_version = @locked_gems.bundler_version
         @locked_ruby_version = @locked_gems.ruby_version
-        @originally_locked_specs = SpecSet.new(@locked_gems.specs)
 
         if unlock != true
           @locked_deps    = @locked_gems.dependencies
-          @locked_specs   = @originally_locked_specs
+          @locked_specs   = SpecSet.new(@locked_gems.specs)
           @locked_sources = @locked_gems.sources
         else
           @unlock         = {}
@@ -692,17 +691,14 @@ module Bundler https://github.com/ruby/ruby/blob/trunk/lib/bundler/definition.rb#L691
     def converge_specs(specs)
       deps = []
       converged = []
-
-      @dependencies.each do |dep|
-        if specs[dep].any? {|s| s.satisfies?(dep) && (!dep.source || s.source.include?(dep.source)) }
-          deps << dep
-        end
-      end
-
       specs.each do |s|
         # Replace the locked dependency's source with the equivalent source from the Gemfile
         dep = @dependencies.find {|d| s.satisfies?(d) }
 
+        if dep && (!dep.source || s.source.include?(dep.source))
+          deps << dep
+        end
+
         s.source = (dep && dep.source) || sources.get(s.source) || sources.default_source unless Bundler.frozen_bundle?
 
         next if @unlock[:sources].include?(s.source.name)
@@ -834,7 +830,7 @@ module Bundler https://github.com/ruby/ruby/blob/trunk/lib/bundler/definition.rb#L830
 
     def additional_base_requirements_for_resolve
       return [] unless @locked_gems && unlocking? && !sources.expired_sources?(@locked_gems.sources)
-      converge_specs(@originally_locked_specs).map do |locked_spec|
+      converge_specs(@locked_gems.specs).map do |locked_spec|
         name = locked_spec.name
         dep = Gem::Dependency.new(name, ">= #{locked_spec.version}")
         DepProxy.get_proxy(dep, locked_spec.platform)
diff --git a/spec/bundler/commands/install_spec.rb b/spec/bundler/commands/install_spec.rb
index dd4d31a1adb..e00caa53153 100644
--- a/spec/bundler/commands/install_spec.rb
+++ b/spec/bundler/commands/install_spec.rb
@@ -364,9 +364,7 @@ RSpec.describe "bundle install with gem sources" do https://github.com/ruby/ruby/blob/trunk/spec/bundler/commands/install_spec.rb#L364
     end
 
     it "throws a warning if a gem is added twice in Gemfile without version requirements" do
-      build_repo2
-
-      install_gemfile <<-G
+      install_gemfile <<-G, :raise_on_error => false
         source "#{file_uri_for(gem_repo2)}"
         gem "rack"
         gem "rack"
@@ -378,9 +376,7 @@ RSpec.describe "bundle install with gem sources" do https://github.com/ruby/ruby/blob/trunk/spec/bundler/commands/install_spec.rb#L376
     end
 
     it "throws a warning if a gem is added twice in Gemfile with same versions" do
-      build_repo2
-
-      install_gemfile <<-G
+      install_gemfile <<-G, :raise_on_error => false
         source "#{file_uri_for(gem_repo2)}"
         gem "rack", "1.0"
         gem "rack", "1.0"
@@ -391,22 +387,6 @@ RSpec.describe "bundle install with gem sources" do https://github.com/ruby/ruby/blob/trunk/spec/bundler/commands/install_spec.rb#L387
       expect(err).to include("While it's not a problem now, it could cause errors if you change the version of one of them later.")
     end
 
-    it "throws a warning if a gem is added twice under different platforms and does not crash when using the generated lockfile" do
-      build_repo2
-
-      install_gemfile <<-G
-        source "#{file_uri_for(gem_repo2)}"
-        gem "rack", :platform => :jruby
-        gem "rack"
-      G
-
-      bundle "install"
-
-      expect(err).to include("Your Gemfile lists the gem rack (>= 0) more than once.")
-      expect(err).to include("Remove any duplicate entries and specify the gem only once.")
-      expect(err).to include("While it's not a problem now, it could cause errors if you change the version of one of them later.")
-    end
-
     it "does not throw a warning if a gem is added once in Gemfile and also inside a gemspec as a development dependency" do
       build_lib "my-gem", :path => bundled_app do |s|
         s.add_development_dependency "my-private-gem"
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]