From fcc4b607379b25f607ce8d003664902f58fefd23 Mon Sep 17 00:00:00 2001 From: Samuel Giddins Date: Mon, 6 Aug 2018 23:02:49 -0700 Subject: Fix error sorting Also avoid mutating the original exception message to generate the message we want --- lib/bundler/definition.rb | 4 ++-- lib/bundler/resolver.rb | 4 ++-- lib/bundler/resolver/spec_group.rb | 4 ++-- lib/bundler/source/metadata.rb | 4 ++-- spec/install/gems/resolving_spec.rb | 8 ++++---- spec/resolver/basic_spec.rb | 4 ++-- spec/support/indexes.rb | 4 ++-- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb index df8ee1f54b..3964c07fb5 100644 --- a/lib/bundler/definition.rb +++ b/lib/bundler/definition.rb @@ -855,8 +855,8 @@ module Bundler concat_ruby_version_requirements(locked_ruby_version_object) unless @unlock[:ruby] end [ - Dependency.new("ruby\0", ruby_versions), - Dependency.new("rubygems\0", Gem::VERSION), + Dependency.new("Ruby\0", ruby_versions), + Dependency.new("RubyGems\0", Gem::VERSION), ] end end diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb index 13fe436cb1..3fd1706371 100644 --- a/lib/bundler/resolver.rb +++ b/lib/bundler/resolver.rb @@ -308,7 +308,7 @@ module Bundler deps = conflict.requirement_trees.map(&:last).flatten(1) !Bundler::VersionRanges.empty?(*Bundler::VersionRanges.for_many(deps.map(&:requirement))) end - e.conflicts.replace(conflicts) unless conflicts.empty? + e = Molinillo::VersionConflict.new(conflicts, e.specification_provider) unless conflicts.empty? solver_name = "Bundler" possibility_type = "gem" @@ -329,7 +329,7 @@ module Bundler trees.reject! {|t| !maximal.include?(t.last) } if maximal - trees.sort_by {|t| [t.flatten.map(&:to_s), t.reverse.map(&:name)] } + trees.sort_by {|t| t.reverse.map(&:name) } end, :printable_requirement => lambda {|req| SharedHelpers.pretty_dependency(req) }, :additional_message_for_conflict => lambda do |o, name, conflict| diff --git a/lib/bundler/resolver/spec_group.rb b/lib/bundler/resolver/spec_group.rb index 34d043aed7..119f63b5c8 100644 --- a/lib/bundler/resolver/spec_group.rb +++ b/lib/bundler/resolver/spec_group.rb @@ -94,10 +94,10 @@ module Bundler return [] if !spec.is_a?(EndpointSpecification) && !spec.is_a?(Gem::Specification) dependencies = [] if !spec.required_ruby_version.nil? && !spec.required_ruby_version.none? - dependencies << DepProxy.new(Gem::Dependency.new("ruby\0", spec.required_ruby_version), platform) + dependencies << DepProxy.new(Gem::Dependency.new("Ruby\0", spec.required_ruby_version), platform) end if !spec.required_rubygems_version.nil? && !spec.required_rubygems_version.none? - dependencies << DepProxy.new(Gem::Dependency.new("rubygems\0", spec.required_rubygems_version), platform) + dependencies << DepProxy.new(Gem::Dependency.new("RubyGems\0", spec.required_rubygems_version), platform) end dependencies end diff --git a/lib/bundler/source/metadata.rb b/lib/bundler/source/metadata.rb index 93909002c7..639f262f74 100644 --- a/lib/bundler/source/metadata.rb +++ b/lib/bundler/source/metadata.rb @@ -5,8 +5,8 @@ module Bundler class Metadata < Source def specs @specs ||= Index.build do |idx| - idx << Gem::Specification.new("ruby\0", RubyVersion.system.to_gem_version_with_patchlevel) - idx << Gem::Specification.new("rubygems\0", Gem::VERSION) + idx << Gem::Specification.new("Ruby\0", RubyVersion.system.to_gem_version_with_patchlevel) + idx << Gem::Specification.new("RubyGems\0", Gem::VERSION) idx << Gem::Specification.new do |s| s.name = "bundler" diff --git a/spec/install/gems/resolving_spec.rb b/spec/install/gems/resolving_spec.rb index 844653d494..f581522c71 100644 --- a/spec/install/gems/resolving_spec.rb +++ b/spec/install/gems/resolving_spec.rb @@ -142,14 +142,14 @@ RSpec.describe "bundle install with install-time dependencies" do expect(out).to_not include("Gem::InstallError: require_ruby requires Ruby version > 9000") nice_error = strip_whitespace(<<-E).strip - Bundler found conflicting requirements for the ruby\0 version: + Bundler found conflicting requirements for the Ruby\0 version: In Gemfile: - ruby\0 (#{error_message_requirement}) + Ruby\0 (#{error_message_requirement}) require_ruby was resolved to 1.0, which depends on - ruby\0 (> 9000) + Ruby\0 (> 9000) - ruby\0 (> 9000), which is required by gem 'require_ruby', is not available in the local ruby installation + Ruby\0 (> 9000), which is required by gem 'require_ruby', is not available in the local ruby installation E expect(last_command.bundler_err).to end_with(nice_error) end diff --git a/spec/resolver/basic_spec.rb b/spec/resolver/basic_spec.rb index 6d2dea2fb3..a2d5e13377 100644 --- a/spec/resolver/basic_spec.rb +++ b/spec/resolver/basic_spec.rb @@ -157,10 +157,10 @@ Bundler could not find compatible versions for gem "a": s.required_ruby_version = "~> 2.0.0" end - gem "ruby\0", "1.8.7" + gem "Ruby\0", "1.8.7" end dep "foo" - dep "ruby\0", "1.8.7" + dep "Ruby\0", "1.8.7" deps = [] @deps.each do |d| diff --git a/spec/support/indexes.rb b/spec/support/indexes.rb index c56d6145a7..5f6c515735 100644 --- a/spec/support/indexes.rb +++ b/spec/support/indexes.rb @@ -76,7 +76,7 @@ module Spec gem "rack-mount", %w[0.4 0.5 0.5.1 0.5.2 0.6] # --- Pre-release support - gem "rubygems\0", ["1.3.2"] + gem "RubyGems\0", ["1.3.2"] # --- Rails versions "1.2.3 2.2.3 2.3.5 3.0.0.beta 3.0.0.beta1" do |version| @@ -413,7 +413,7 @@ module Spec gem("b", %w[0.9.0 1.5.0 2.0.0.pre]) # --- Pre-release support - gem "rubygems\0", ["1.3.2"] + gem "RubyGems\0", ["1.3.2"] end end end -- cgit v1.2.1