ruby-changes:44205
From: nobu <ko1@a...>
Date: Wed, 28 Sep 2016 10:16:50 +0900 (JST)
Subject: [ruby-changes:44205] nobu:r56278 (trunk): rubygems 2.6.7
nobu 2016-09-28 10:16:43 +0900 (Wed, 28 Sep 2016) New Revision: 56278 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=56278 Log: rubygems 2.6.7 * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems to 2.6.7, not the master, with r56225. Modified files: trunk/lib/rubygems/commands/owner_command.rb trunk/lib/rubygems/commands/push_command.rb trunk/lib/rubygems/commands/query_command.rb trunk/lib/rubygems/commands/setup_command.rb trunk/lib/rubygems/commands/yank_command.rb trunk/lib/rubygems/core_ext/kernel_require.rb trunk/lib/rubygems/exceptions.rb trunk/lib/rubygems/installer.rb trunk/lib/rubygems/request_set.rb trunk/lib/rubygems/resolver.rb trunk/lib/rubygems/source.rb trunk/lib/rubygems/spec_fetcher.rb trunk/lib/rubygems/test_case.rb trunk/lib/rubygems/user_interaction.rb trunk/lib/rubygems/version.rb trunk/lib/rubygems.rb trunk/test/rubygems/test_gem.rb trunk/test/rubygems/test_gem_commands_query_command.rb trunk/test/rubygems/test_gem_commands_setup_command.rb trunk/test/rubygems/test_gem_installer.rb trunk/test/rubygems/test_gem_resolver.rb trunk/test/rubygems/test_gem_source.rb trunk/test/rubygems/test_gem_spec_fetcher.rb trunk/test/rubygems/test_gem_version.rb Index: test/rubygems/test_gem_installer.rb =================================================================== --- test/rubygems/test_gem_installer.rb (revision 56277) +++ test/rubygems/test_gem_installer.rb (revision 56278) @@ -1416,7 +1416,7 @@ gem 'other', version https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_installer.rb#L1416 def test_pre_install_checks_ruby_version use_ui @ui do installer = Gem::Installer.at old_ruby_required - e = assert_raises Gem::RuntimeRequirementNotMetError do + e = assert_raises Gem::InstallError do installer.pre_install_checks end assert_equal 'old_ruby_required requires Ruby version = 1.4.6.', @@ -1435,7 +1435,7 @@ gem 'other', version https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_installer.rb#L1435 use_ui @ui do @installer = Gem::Installer.at gem - e = assert_raises Gem::RuntimeRequirementNotMetError do + e = assert_raises Gem::InstallError do @installer.pre_install_checks end assert_equal 'old_rubygems_required requires RubyGems version < 0. ' + Index: test/rubygems/test_gem_resolver.rb =================================================================== --- test/rubygems/test_gem_resolver.rb (revision 56277) +++ test/rubygems/test_gem_resolver.rb (revision 56278) @@ -683,32 +683,6 @@ class TestGemResolver < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_resolver.rb#L683 assert_resolves_to [b1, c1, d2], r end - def test_sorts_by_source_then_version - sourceA = Gem::Source.new 'http://example.com/a' - sourceB = Gem::Source.new 'http://example.com/b' - sourceC = Gem::Source.new 'http://example.com/c' - - spec_A_1 = new_spec 'some-dep', '0.0.1' - spec_A_2 = new_spec 'some-dep', '1.0.0' - spec_B_1 = new_spec 'some-dep', '0.0.1' - spec_B_2 = new_spec 'some-dep', '0.0.2' - spec_C_1 = new_spec 'some-dep', '0.1.0' - - set = StaticSet.new [ - Gem::Resolver::SpecSpecification.new(nil, spec_B_1, sourceB), - Gem::Resolver::SpecSpecification.new(nil, spec_B_2, sourceB), - Gem::Resolver::SpecSpecification.new(nil, spec_C_1, sourceC), - Gem::Resolver::SpecSpecification.new(nil, spec_A_2, sourceA), - Gem::Resolver::SpecSpecification.new(nil, spec_A_1, sourceA), - ] - - dependency = make_dep 'some-dep', '> 0' - - resolver = Gem::Resolver.new [dependency], set - - assert_resolves_to [spec_B_2], resolver - end - def test_select_local_platforms r = Gem::Resolver.new nil, nil Index: test/rubygems/test_gem_commands_query_command.rb =================================================================== --- test/rubygems/test_gem_commands_query_command.rb (revision 56277) +++ test/rubygems/test_gem_commands_query_command.rb (revision 56278) @@ -557,25 +557,6 @@ EOF https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_commands_query_command.rb#L557 assert_equal expected, @ui.output end - def test_execute_show_default_gems_with_platform - a1 = new_default_spec 'a', 1 - a1.platform = 'java' - install_default_specs a1 - - use_ui @ui do - @cmd.execute - end - - expected = <<-EOF - -*** LOCAL GEMS *** - -a (default: 1 java) -EOF - - assert_equal expected, @ui.output - end - def test_execute_default_details spec_fetcher do |fetcher| fetcher.spec 'a', 2 Index: test/rubygems/test_gem.rb =================================================================== --- test/rubygems/test_gem.rb (revision 56277) +++ test/rubygems/test_gem.rb (revision 56278) @@ -157,35 +157,6 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L157 assert_match 'a-2/bin/exec', Gem.bin_path('a', 'exec', '>= 0') end - def test_activate_bin_path_resolves_eagerly - a1 = util_spec 'a', '1' do |s| - s.executables = ['exec'] - s.add_dependency 'b' - end - - b1 = util_spec 'b', '1' do |s| - s.add_dependency 'c', '2' - end - - b2 = util_spec 'b', '2' do |s| - s.add_dependency 'c', '1' - end - - c1 = util_spec 'c', '1' - c2 = util_spec 'c', '2' - - install_specs c1, c2, b1, b2, a1 - - Gem.activate_bin_path("a", "exec", ">= 0") - - # If we didn't eagerly resolve, this would activate c-2 and then the - # finish_resolve would cause a conflict - gem 'c' - Gem.finish_resolve - - assert_equal %w(a-1 b-2 c-1), loaded_spec_names - end - def test_self_bin_path_no_exec_name e = assert_raises ArgumentError do Gem.bin_path 'a' @@ -374,7 +345,7 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L345 begin Dir.chdir 'detect/a/b' - assert_equal [BUNDLER_FULL_NAME], Gem.detect_gemdeps.map(&:full_name) + assert_empty Gem.detect_gemdeps ensure Dir.chdir @tempdir end @@ -1426,7 +1397,7 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L1397 Gem.detect_gemdeps - assert_equal %W(a-1 b-1 #{BUNDLER_FULL_NAME} c-1), loaded_spec_names + assert_equal %w!a-1 b-1 c-1!, loaded_spec_names end def test_auto_activation_of_detected_gemdeps_file @@ -1449,40 +1420,10 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L1420 ENV['RUBYGEMS_GEMDEPS'] = "-" - assert_equal [a, b, util_spec("bundler", Bundler::VERSION), c], Gem.detect_gemdeps.sort_by { |s| s.name } + assert_equal [a,b,c], Gem.detect_gemdeps.sort_by { |s| s.name } end LIB_PATH = File.expand_path "../../../lib".dup.untaint, __FILE__.dup.untaint - BUNDLER_LIB_PATH = File.expand_path $LOAD_PATH.find {|lp| File.file?(File.join(lp, "bundler.rb")) }.dup.untaint - BUNDLER_FULL_NAME = "bundler-#{Bundler::VERSION}" - - def test_use_gemdeps_uses_bundler_postit_trampoline - refute_includes $LOADED_FEATURES, File.join(BUNDLER_LIB_PATH, "bundler/postit_trampoline.rb".dup.untaint) - ENV.delete("BUNDLE_DISABLE_POSTIT") - - a = new_spec "a", "1", nil, "lib/a.rb" - b = new_spec "b", "1", nil, "lib/b.rb" - c = new_spec "c", "1", nil, "lib/c.rb" - - install_specs a, b, c - - path = File.join @tempdir, "gem.deps.rb" - - File.open path, "w" do |f| - f.puts "gem 'a'" - f.puts "gem 'b'" - f.puts "gem 'c'" - end - - ENV['RUBYGEMS_GEMDEPS'] = path - - Gem.detect_gemdeps - - assert_equal %W(a-1 b-1 #{BUNDLER_FULL_NAME} c-1), loaded_spec_names - - trampoline_path = RUBY_VERSION > "1.9" ? File.join(BUNDLER_LIB_PATH, "bundler/postit_trampoline.rb".dup.untaint) : "bundler/postit_trampoline.rb" - assert_includes $LOADED_FEATURES, trampoline_path - end def test_looks_for_gemdeps_files_automatically_on_start util_clear_gems @@ -1509,9 +1450,9 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L1450 ENV['GEM_PATH'] = path ENV['RUBYGEMS_GEMDEPS'] = "-" - out = `#{Gem.ruby.dup.untaint} -I "#{LIB_PATH.untaint}" -I "#{BUNDLER_LIB_PATH.untaint}" -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"` + out = `#{Gem.ruby.dup.untaint} -I "#{LIB_PATH.untaint}" -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"` - assert_equal %W(a-1 b-1 #{BUNDLER_FULL_NAME} c-1).inspect, out.strip + assert_equal '["a-1", "b-1", "c-1"]', out.strip end def test_looks_for_gemdeps_files_automatically_on_start_in_parent_dir @@ -1541,12 +1482,12 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L1482 Dir.mkdir "sub1" out = Dir.chdir "sub1" do - `#{Gem.ruby.dup.untaint} -I "#{LIB_PATH.untaint}" -I "#{BUNDLER_LIB_PATH.untaint}" -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"` + `#{Gem.ruby.dup.untaint} -I "#{LIB_PATH.untaint}" -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"` end Dir.rmdir "sub1" - assert_equal %W(a-1 b-1 #{BUNDLER_FULL_NAME} c-1).inspect, out.strip + assert_equal '["a-1", "b-1", "c-1"]', out.strip end def test_register_default_spec @@ -1620,7 +1561,7 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L1561 Gem.use_gemdeps gem_deps_file - assert_equal %W(a-1 #{BUNDLER_FULL_NAME}), loaded_spec_names + assert spec.activated? refute_nil Gem.gemdeps end @@ -1681,7 +1622,7 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L1622 Gem.use_gemdeps - assert_equal %W(a-1 #{BUNDLER_FULL_NAME}), loaded_spec_names + assert spec.activated? ensure ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps end @@ -1723,14 +1664,8 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L1664 io.write 'gem "a"' end - platform = Bundler::GemHelpers.generic_local_platform - if platform == Gem::Platform::RUBY - platform = '' - else - platform = " #{platform}" - end expected = <<-EXPECTED -Could not find gem 'a#{platform}' in any of the gem sources listed in your Gemfile or available on this machine. +Unable to resolve dependency: user requested 'a (>= 0)' You may need to `gem install -g` to install missing gems EXPECTED @@ -1758,7 +1693,7 @@ You may need to `gem install -g` to inst https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem.rb#L1693 Gem.use_gemdeps - assert_equal %W(a-1 #{BUNDLER_FULL_NAME}), loaded_spec_names + assert spec.activated? ensure ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps end Index: test/rubygems/test_gem_commands_setup_command.rb =================================================================== --- test/rubygems/test_gem_commands_setup_command.rb (revision 56277) +++ test/rubygems/test_gem_commands_setup_command.rb (revision 56278) @@ -20,13 +20,6 @@ class TestGemCommandsSetupCommand < Gem: https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_commands_setup_command.rb#L20 open 'lib/rubygems.rb', 'w' do |io| io.puts '# rubygems.rb' end open 'lib/rubygems/test_case.rb', 'w' do |io| io.puts '# test_case.rb' end open 'lib/rubygems/ssl_certs/rubygems.org/foo.pem', 'w' do |io| io.puts 'PEM' end - - FileUtils.mkdir_p 'bundler/exe' - FileUtils.mkdir_p 'bundler/lib/bundler' - - open 'bundler/exe/bundle', 'w' do |io| io.puts '# bundle' end - open 'bundler/lib/bundler.rb', 'w' do |io| io.puts '# bundler.rb' end - open 'bundler/lib/bundler/b.rb', 'w' do |io| io.puts '# b.rb' end end def test_pem_files_in @@ -47,16 +40,12 @@ class TestGemCommandsSetupCommand < Gem: https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_commands_setup_command.rb#L40 assert_path_exists File.join(dir, 'rubygems.rb') assert_path_exists File.join(dir, 'rubygems/ssl_certs/rubygems.org/foo.pem') - - assert_path_exists File.join(dir, 'bundler.rb') - assert_path_exists File.join(dir, 'bundler/b.rb') end end def test_remove_old_lib_files lib = File.join @install_dir, 'lib' lib_rubygems = File.join lib, 'rubygems' - lib_bundler = File.join lib, 'bundler' lib_rubygems_defaults = File.join lib_rubygems, 'defaults' securerandom_rb = File.join lib, 'securerandom.rb' @@ -66,16 +55,13 @@ class TestGemCommandsSetupCommand < Gem: https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_commands_setup_command.rb#L55 old_builder_rb = File.join lib_rubygems, 'builder.rb' old_format_rb = File.join lib_rubygems, 'format.rb' - old_bundler_c_rb = File.join lib_bundler, 'c.rb' FileUtils.mkdir_p lib_rubygems_defaults - FileUtils.mkdir_p lib_bundler open securerandom_rb, 'w' do |io| io.puts '# securerandom.rb' end open old_builder_rb, 'w' do |io| io.puts '# builder.rb' end open old_format_rb, 'w' do |io| io.puts '# format.rb' end - open old_bundler_c_rb, 'w' do |io| io.puts '# c.rb' end open engine_defaults_rb, 'w' do |io| io.puts '# jruby.rb' end open os_defaults_rb, 'w' do |io| io.puts '# operating_system.rb' end @@ -84,7 +70,6 @@ class TestGemCommandsSetupCommand < Gem: https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_commands_setup_command.rb#L70 refute_path_exists old_builder_rb refute_path_exists old_format_rb - refute_path_exists old_bundler_c_rb assert_path_exists securerandom_rb assert_path_exists engine_defaults_rb Index: test/rubygems/test_gem_source.rb =================================================================== --- test/rubygems/test_gem_source.rb (revision 56277) +++ test/rubygems/test_gem_source.rb (revision 56278) @@ -228,15 +228,6 @@ class TestGemSource < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_source.rb#L228 assert_equal(-1, remote. <=>(no_uri), 'remote <=> no_uri') end - def test_spaceship_order_is_preserved_when_uri_differs - sourceA = Gem::Source.new "http://example.com/a" - sourceB = Gem::Source.new "http://example.com/b" - - assert_equal( 0, sourceA. <=>(sourceA), 'sourceA <=> sourceA') - assert_equal( 1, sourceA. <=>(sourceB), 'sourceA <=> sourceB') - assert_equal( 1, sourceB. <=>(sourceA), 'sourceB <=> sourceA') - end - def test_update_cache_eh assert @source.update_cache? end Index: test/rubygems/test_gem_version.rb =================================================================== --- test/rubygems/test_gem_version.rb (revision 56277) +++ test/rubygems/test_gem_version.rb (revision 56278) @@ -65,8 +65,7 @@ class TestGemVersion < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_version.rb#L65 def test_hash assert_equal v("1.2").hash, v("1.2").hash refute_equal v("1.2").hash, v("1.3").hash - assert_equal v("1.2").hash, v("1.2.0").hash - assert_equal v("1.2.pre.1").hash, v("1.2.0.pre.1.0").hash + refute_equal v("1.2").hash, v("1.2.0").hash end def test_initialize @@ -100,9 +99,6 @@ class TestGemVersion < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_version.rb#L99 assert_prerelease '1.A' - assert_prerelease '1-1' - assert_prerelease '1-a' - refute_prerelease "1.2.0" refute_prerelease "2.9" refute_prerelease "22.1.50.0" @@ -158,12 +154,6 @@ class TestGemVersion < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_version.rb#L154 assert_equal [9,8,7], v("9.8.7").segments end - def test_canonical_segments - assert_equal [1], v("1.0.0").canonical_segments - assert_equal [1, "a", 1], v("1.0.0.a.1.0").canonical_segments - assert_equal [1, 2, 3, "pre", 1], v("1.2.3-1").canonical_segments - end - # Asserts that +version+ is a prerelease. def assert_prerelease version @@ -193,7 +183,6 @@ class TestGemVersion < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_version.rb#L183 def assert_version_equal expected, actual assert_equal v(expected), v(actual) - assert_equal v(expected).hash, v(actual).hash, "since #{actual} == #{expected}, they must have the same hash" end # Assert that two versions are eql?. Checks both directions. Index: test/rubygems/test_gem_spec_fetcher.rb =================================================================== --- test/rubygems/test_gem_spec_fetcher.rb (revision 56277) +++ test/rubygems/test_gem_spec_fetcher.rb (revision 56278) @@ -169,26 +169,6 @@ class TestGemSpecFetcher < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_spec_fetcher.rb#L169 assert_equal "bad news from the internet (#{@gem_repo})", sfp.error.message end - def test_suggest_gems_from_name_latest - spec_fetcher do|fetcher| - fetcher.spec 'example', 1 - fetcher.spec 'other-example', 1 - end - - suggestions = @sf.suggest_gems_from_name('examplw') - assert_equal ['example'], suggestions - end - - def test_suggest_gems_from_name_prerelease - spec_fetcher do|fetcher| - fetcher.spec 'example', '1.a' - fetcher.spec 'other-example', 1 - end - - suggestions = @sf.suggest_gems_from_name('examplw') - assert_equal ['example'], suggestions - end - def test_available_specs_latest spec_fetcher do |fetcher| fetcher.spec 'a', 1 Index: lib/rubygems.rb =================================================================== --- lib/rubygems.rb (revision 56277) +++ lib/rubygems.rb (revision 56278) @@ -296,10 +296,7 @@ module Gem https://github.com/ruby/ruby/blob/trunk/lib/rubygems.rb#L296 def self.activate_bin_path name, exec_name, requirement # :nodoc: spec = find_spec_for_exe name, exec_name, [requirement] - Gem::LOADED_SPECS_MUTEX.synchronize do - spec.activate - finish_resolve - end + Gem::LOADED_SPECS_MUTEX.synchronize { spec.activate } spec.bin_file exec_name end @@ -596,6 +593,7 @@ An Array (#{env.inspect}) was passed in https://github.com/ruby/ruby/blob/trunk/lib/rubygems.rb#L593 # Zlib::GzipReader wrapper that unzips +data+. def self.gunzip(data) + require 'rubygems/util' Gem::Util.gunzip data end @@ -603,6 +601,7 @@ An Array (#{env.inspect}) was passed in https://github.com/ruby/ruby/blob/trunk/lib/rubygems.rb#L601 # Zlib::GzipWriter wrapper that zips +data+. def self.gzip(data) + require 'rubygems/util' Gem::Util.gzip data end @@ -610,6 +609,7 @@ An Array (#{env.inspect}) was passed in https://github.com/ruby/ruby/blob/trunk/lib/rubygems.rb#L609 # A Zlib::Inflate#inflate wrapper def self.inflate(data) + require 'rubygems/util' Gem::Util.inflate data end @@ -1147,6 +1147,8 @@ An Array (#{env.inspect}) was passed in https://github.com/ruby/ruby/blob/trunk/lib/rubygems.rb#L1147 path = path.dup if path == "-" then + require 'rubygems/util' + Gem::Util.traverse_parents Dir.pwd do |directory| dep_file = GEM_DEP_FILES.find { |f| File.file?(f) } @@ -1165,24 +1167,18 @@ An Array (#{env.inspect}) was passed in https://github.com/ruby/ruby/blob/trunk/lib/rubygems.rb#L1167 raise ArgumentError, "Unable to find gem dependencies file at #{path}" end - ENV["BUNDLE_GEMFILE"] ||= File.expand_path(path) - require 'rubygems/user_interaction' - Gem::DefaultUserInteraction.use_ui(ui) do - require "bundler/postit_trampoline" unless ENV["BUNDLE_DISABLE_POSTIT"] - require "bundler" - @gemdeps = Bundler.setup - Bundler.ui = nil - @gemdeps.requested_specs.map(&:to_spec).sort_by(&:name) - end - rescue => e - case e - when Gem::LoadError, Gem::UnsatisfiableDependencyError, (defined?(Bundler::GemNotFound) ? Bundler::GemNotFound : Gem::LoadError) - warn e.message - warn "You may need to `gem install -g` to install missing gems" - warn "" - else - raise - end + rs = Gem::RequestSet.new + @gemdeps = rs.load_gemdeps path + + rs.resolve_current.map do |s| + sp = s.full_spec + sp.activate + sp + end + rescue Gem::LoadError, Gem::UnsatisfiableDependencyError => e + warn e.message + warn "You may need to `gem install -g` to install missing gems" + warn "" end class << self @@ -1228,8 +1224,6 @@ An Array (#{env.inspect}) was passed in https://github.com/ruby/ruby/blob/trunk/lib/rubygems.rb#L1224 prefix_pattern = /^(#{prefix_group})/ end - suffix_pattern = /#{Regexp.union(Gem.suffixes)}\z/ - spec.files.each do |file| if new_format file = file.sub(prefix_pattern, "") @@ -1237,7 +1231,6 @@ An Array (#{env.inspect}) was passed in https://github.com/ruby/ruby/blob/tr (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/