rubygems-update 2.6.11 → 2.6.12

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: a3145b3347290a8137e8aafa35a0c28e7a2df9cf50129a35f8e99c4e37dfbad9
4
- data.tar.gz: e9c34d66185f10c358e6bfb47d1a55828f3433d16eb1c1dddb127c36fcab297d
2
+ SHA1:
3
+ metadata.gz: 44c39a40585bfd8c3d906bdc7bae896a7a0c335a
4
+ data.tar.gz: 6ca4daf88142d1426d98f45a2f8c7e95a743b40e
5
5
  SHA512:
6
- metadata.gz: 9e27f2aa64535ebc313e5ede961eccb6b671ee65d42730ab84b200df57a3f819ef5f379d9c5041ee80d6127d8fad2a03c9661ecf1042fe712f9767178d883e43
7
- data.tar.gz: 19aeb548def6a0b6a274e5281f1b840a8de35d026c31ff4d9bb1f827808b58758f6a1fe9d72688a8c02043cecae13912c5894832a27889ebbe0f8974190c1208
6
+ metadata.gz: 144d483fedfaa9c66bfaeb41a6380d790b093086a9e754cf9d1979f8bbce1aff61338459c644405ebf2018122335c3fe1f01f6a7b8695ea80c6fcc3de34a2e72
7
+ data.tar.gz: 03a3dc90d9d15e3d827f2e55486e2ccc44d8dcae5a0f5b9a02ba1d832bdb3c574c4a0c4e798beff3c2e8d344533a686480dfd8392872ed8473d9ccfca36c2a8f
@@ -1,5 +1,28 @@
1
1
  # coding: UTF-8
2
2
 
3
+ === 2.6.12 / 2017-04-30
4
+
5
+ Bug fixes:
6
+
7
+ * Fix test_self_find_files_with_gemfile to sort expected files. Pull
8
+ request #1880 by Kazuaki Matsuo.
9
+ * Fix issue for MinGW / MSYS2 builds and testing. Pull request #1879 by
10
+ MSP-Greg.
11
+ * Fix gem open to open highest version number rather than lowest. Pull
12
+ request #1877 by Tim Pope.
13
+ * Add a test for requiring a default spec as installed by the ruby
14
+ installer. Pull request #1899 by Samuel Giddins.
15
+ * Fix broken --exact parameter to gem command. Pull request #1873 by Jason
16
+ Frey.
17
+ * [Installer] Generate backwards-compatible binstubs. Pull request #1904
18
+ by Samuel Giddins.
19
+ * Fix pre-existing source recognition on add action. Pull request #1883 by
20
+ Jonathan Claudius.
21
+ * Prevent negative IDs in output of #inspect. Pull request #1908 by Vít
22
+ Ondruch.
23
+ * Allow Gem.finish_resolve to respect already-activated specs. Pull
24
+ request #1910 by Samuel Giddins.
25
+
3
26
  === 2.6.11 / 2017-03-16
4
27
 
5
28
  Bug fixes:
@@ -10,7 +10,7 @@ require 'rbconfig'
10
10
  require 'thread'
11
11
 
12
12
  module Gem
13
- VERSION = "2.6.11"
13
+ VERSION = "2.6.12"
14
14
  end
15
15
 
16
16
  # Must be first since it unloads the prelude from 1.9.2
@@ -234,6 +234,7 @@ module Gem
234
234
 
235
235
  def self.finish_resolve(request_set=Gem::RequestSet.new)
236
236
  request_set.import Gem::Specification.unresolved_deps.values
237
+ request_set.import Gem.loaded_specs.values.map {|s| Gem::Dependency.new(s.name, s.version) }
237
238
 
238
239
  request_set.resolve_current.each do |s|
239
240
  s.full_spec.activate
@@ -72,7 +72,7 @@ class Gem::Commands::OpenCommand < Gem::Command
72
72
  end
73
73
 
74
74
  def spec_for name
75
- spec = Gem::Specification.find_all_by_name(name, @version).last
75
+ spec = Gem::Specification.find_all_by_name(name, @version).first
76
76
 
77
77
  return spec if spec
78
78
 
@@ -86,7 +86,7 @@ is too hard to use.
86
86
  name = Array(options[:name])
87
87
  else
88
88
  args = options[:args].to_a
89
- name = options[:exact] ? args : args.map{|arg| /#{arg}/i }
89
+ name = options[:exact] ? args.map{|arg| /\A#{Regexp.escape(arg)}\Z/ } : args.map{|arg| /#{arg}/i }
90
90
  end
91
91
 
92
92
  prerelease = options[:prerelease]
@@ -44,7 +44,7 @@ class Gem::Commands::SourcesCommand < Gem::Command
44
44
  source = Gem::Source.new source_uri
45
45
 
46
46
  begin
47
- if Gem.sources.include? source_uri then
47
+ if Gem.sources.include? source then
48
48
  say "source #{source_uri} already present in the cache"
49
49
  else
50
50
  source.load_specs :released
@@ -104,7 +104,7 @@ class Gem::DependencyList
104
104
  end
105
105
 
106
106
  def inspect # :nodoc:
107
- "#<%s:0x%x %p>" % [self.class, object_id, map { |s| s.full_name }]
107
+ "%s %p>" % [super[0..-2], map { |s| s.full_name }]
108
108
  end
109
109
 
110
110
  ##
@@ -214,7 +214,7 @@ class Gem::Installer
214
214
 
215
215
  ruby_executable = true
216
216
  existing = io.read.slice(%r{
217
- ^(
217
+ ^\s*(
218
218
  gem \s |
219
219
  load \s Gem\.bin_path\( |
220
220
  load \s Gem\.activate_bin_path\(
@@ -701,6 +701,8 @@ class Gem::Installer
701
701
  # Return the text for an application file.
702
702
 
703
703
  def app_script_text(bin_file_name)
704
+ # note that the `load` lines cannot be indented, as old RG versions match
705
+ # against the beginning of the line
704
706
  return <<-TEXT
705
707
  #{shebang bin_file_name}
706
708
  #
@@ -723,7 +725,12 @@ if ARGV.first
723
725
  end
724
726
  end
725
727
 
728
+ if Gem.respond_to?(:activate_bin_path)
726
729
  load Gem.activate_bin_path('#{spec.name}', '#{bin_file_name}', version)
730
+ else
731
+ gem #{spec.name.dump}, version
732
+ load Gem.bin_path(#{spec.name.dump}, #{bin_file_name.dump}, version)
733
+ end
727
734
  TEXT
728
735
  end
729
736
 
@@ -112,7 +112,7 @@ class Gem::Platform
112
112
  end
113
113
 
114
114
  def inspect
115
- "#<%s:0x%x @cpu=%p, @os=%p, @version=%p>" % [self.class, object_id, *to_a]
115
+ "%s @cpu=%p, @os=%p, @version=%p>" % [super[0..-2], *to_a]
116
116
  end
117
117
 
118
118
  def to_a
@@ -455,7 +455,7 @@ module Gem::Security
455
455
 
456
456
  ##
457
457
  # Creates a new key pair of the specified +length+ and +algorithm+. The
458
- # default is a 2048 bit RSA key.
458
+ # default is a 3072 bit RSA key.
459
459
 
460
460
  def self.create_key length = KEY_LENGTH, algorithm = KEY_ALGORITHM
461
461
  algorithm.new length
@@ -657,7 +657,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
657
657
  "only_one_executable" => true,
658
658
  "full_name" => "rubygems-#{Gem::VERSION}",
659
659
  "has_deps" => false,
660
- "homepage" => "http://docs.rubygems.org/",
660
+ "homepage" => "http://guides.rubygems.org/",
661
661
  "name" => 'rubygems',
662
662
  "ri_installed" => true,
663
663
  "summary" => "RubyGems itself",
@@ -2102,7 +2102,7 @@ class Gem::Specification < Gem::BasicSpecification
2102
2102
  if $DEBUG
2103
2103
  super
2104
2104
  else
2105
- "#<#{self.class}:0x#{__id__.to_s(16)} #{full_name}>"
2105
+ "#{super[0..-2]} #{full_name}>"
2106
2106
  end
2107
2107
  end
2108
2108
 
@@ -484,7 +484,7 @@ class Gem::TestCase < MiniTest::Unit::TestCase
484
484
 
485
485
  system @git, 'add', gemspec
486
486
  system @git, 'commit', '-a', '-m', 'a non-empty commit message', '--quiet'
487
- head = Gem::Util.popen('git', 'rev-parse', 'master').strip
487
+ head = Gem::Util.popen(@git, 'rev-parse', 'master').strip
488
488
  end
489
489
 
490
490
  return name, git_spec.version, directory, head
@@ -1498,6 +1498,8 @@ end
1498
1498
  begin
1499
1499
  gem 'rdoc'
1500
1500
  require 'rdoc'
1501
+
1502
+ require 'rubygems/rdoc'
1501
1503
  rescue LoadError, Gem::LoadError
1502
1504
  end
1503
1505
 
@@ -1514,3 +1516,4 @@ tmpdirs << (ENV['GEM_PATH'] = Dir.mktmpdir("path"))
1514
1516
  pid = $$
1515
1517
  END {tmpdirs.each {|dir| Dir.rmdir(dir)} if $$ == pid}
1516
1518
  Gem.clear_paths
1519
+ Gem.loaded_specs.clear
@@ -75,6 +75,29 @@ class TestGem < Gem::TestCase
75
75
  end
76
76
  end
77
77
 
78
+ def test_self_finish_resolve_respects_loaded_specs
79
+ save_loaded_features do
80
+ a1 = new_spec "a", "1", "b" => "> 0"
81
+ b1 = new_spec "b", "1", "c" => ">= 1"
82
+ b2 = new_spec "b", "2", "c" => ">= 2"
83
+ c1 = new_spec "c", "1"
84
+ c2 = new_spec "c", "2"
85
+
86
+ install_specs c1, c2, b1, b2, a1
87
+
88
+ a1.activate
89
+ c1.activate
90
+
91
+ assert_equal %w(a-1 c-1), loaded_spec_names
92
+ assert_equal ["b (> 0)"], unresolved_names
93
+
94
+ Gem.finish_resolve
95
+
96
+ assert_equal %w(a-1 b-1 c-1), loaded_spec_names
97
+ assert_equal [], unresolved_names
98
+ end
99
+ end
100
+
78
101
  def test_self_install
79
102
  spec_fetcher do |f|
80
103
  f.gem 'a', 1
@@ -492,7 +515,7 @@ class TestGem < Gem::TestCase
492
515
  skip if RUBY_VERSION <= "1.8.7"
493
516
 
494
517
  cwd = File.expand_path("test/rubygems", @@project_dir)
495
- $LOAD_PATH.unshift cwd
518
+ actual_load_path = $LOAD_PATH.unshift(cwd).dup
496
519
 
497
520
  discover_path = File.join 'lib', 'sff', 'discover.rb'
498
521
 
@@ -518,12 +541,12 @@ class TestGem < Gem::TestCase
518
541
  expected = [
519
542
  File.expand_path('test/rubygems/sff/discover.rb', @@project_dir),
520
543
  File.join(foo1.full_gem_path, discover_path)
521
- ]
544
+ ].sort
522
545
 
523
- assert_equal expected, Gem.find_files('sff/discover')
524
- assert_equal expected, Gem.find_files('sff/**.rb'), '[ruby-core:31730]'
546
+ assert_equal expected, Gem.find_files('sff/discover').sort
547
+ assert_equal expected, Gem.find_files('sff/**.rb').sort, '[ruby-core:31730]'
525
548
  ensure
526
- assert_equal cwd, $LOAD_PATH.shift unless RUBY_VERSION <= "1.8.7"
549
+ assert_equal cwd, actual_load_path.shift unless RUBY_VERSION <= "1.8.7"
527
550
  end
528
551
 
529
552
  def test_self_find_latest_files
@@ -24,7 +24,8 @@ class TestGemCommandsOpenCommand < Gem::TestCase
24
24
  @cmd.options[:args] = %w[foo]
25
25
  @cmd.options[:editor] = "#{Gem.ruby} -e0 --"
26
26
 
27
- spec = gem 'foo'
27
+ gem 'foo', '1.0.0'
28
+ spec = gem 'foo', '1.0.1'
28
29
  mock = MiniTest::Mock.new
29
30
  mock.expect(:call, true, [spec.full_gem_path])
30
31
 
@@ -642,7 +642,7 @@ pl (1)
642
642
  assert_equal expected, @ui.output
643
643
  end
644
644
 
645
- def test_execute_exact
645
+ def test_execute_exact_remote
646
646
  spec_fetcher do |fetcher|
647
647
  fetcher.spec 'coolgem-omg', 3
648
648
  fetcher.spec 'coolgem', '4.2.1'
@@ -665,6 +665,60 @@ coolgem (4.2.1)
665
665
  assert_equal expected, @ui.output
666
666
  end
667
667
 
668
+ def test_execute_exact_local
669
+ spec_fetcher do |fetcher|
670
+ fetcher.spec 'coolgem-omg', 3
671
+ fetcher.spec 'coolgem', '4.2.1'
672
+ fetcher.spec 'wow_coolgem', 1
673
+ end
674
+
675
+ @cmd.handle_options %w[--exact coolgem]
676
+
677
+ use_ui @ui do
678
+ @cmd.execute
679
+ end
680
+
681
+ expected = <<-EOF
682
+
683
+ *** LOCAL GEMS ***
684
+
685
+ coolgem (4.2.1)
686
+ EOF
687
+
688
+ assert_equal expected, @ui.output
689
+ end
690
+
691
+ def test_execute_exact_multiple
692
+ spec_fetcher do |fetcher|
693
+ fetcher.spec 'coolgem-omg', 3
694
+ fetcher.spec 'coolgem', '4.2.1'
695
+ fetcher.spec 'wow_coolgem', 1
696
+
697
+ fetcher.spec 'othergem-omg', 3
698
+ fetcher.spec 'othergem', '1.2.3'
699
+ fetcher.spec 'wow_othergem', 1
700
+ end
701
+
702
+ @cmd.handle_options %w[--exact coolgem othergem]
703
+
704
+ use_ui @ui do
705
+ @cmd.execute
706
+ end
707
+
708
+ expected = <<-EOF
709
+
710
+ *** LOCAL GEMS ***
711
+
712
+ coolgem (4.2.1)
713
+
714
+ *** LOCAL GEMS ***
715
+
716
+ othergem (1.2.3)
717
+ EOF
718
+
719
+ assert_equal expected, @ui.output
720
+ end
721
+
668
722
  private
669
723
 
670
724
  def add_gems_to_fetcher
@@ -108,6 +108,58 @@ source #{@gem_repo} already present in the cache
108
108
  assert_equal '', @ui.error
109
109
  end
110
110
 
111
+ def test_execute_add_redundant_source_trailing_slash
112
+ # Remove pre-existing gem source (w/ slash)
113
+ repo_with_slash = "http://gems.example.com/"
114
+ @cmd.handle_options %W[--remove #{repo_with_slash}]
115
+ use_ui @ui do
116
+ @cmd.execute
117
+ end
118
+ source = Gem::Source.new repo_with_slash
119
+ assert_equal false, Gem.sources.include?(source)
120
+
121
+ expected = <<-EOF
122
+ #{repo_with_slash} removed from sources
123
+ EOF
124
+
125
+ assert_equal expected, @ui.output
126
+ assert_equal '', @ui.error
127
+
128
+ # Re-add pre-existing gem source (w/o slash)
129
+ repo_without_slash = "http://gems.example.com"
130
+ @cmd.handle_options %W[--add #{repo_without_slash}]
131
+ use_ui @ui do
132
+ @cmd.execute
133
+ end
134
+ source = Gem::Source.new repo_without_slash
135
+ assert_equal true, Gem.sources.include?(source)
136
+
137
+ expected = <<-EOF
138
+ http://gems.example.com/ removed from sources
139
+ http://gems.example.com added to sources
140
+ EOF
141
+
142
+ assert_equal expected, @ui.output
143
+ assert_equal '', @ui.error
144
+
145
+ # Re-add original gem source (w/ slash)
146
+ @cmd.handle_options %W[--add #{repo_with_slash}]
147
+ use_ui @ui do
148
+ @cmd.execute
149
+ end
150
+ source = Gem::Source.new repo_with_slash
151
+ assert_equal true, Gem.sources.include?(source)
152
+
153
+ expected = <<-EOF
154
+ http://gems.example.com/ removed from sources
155
+ http://gems.example.com added to sources
156
+ source http://gems.example.com/ already present in the cache
157
+ EOF
158
+
159
+ assert_equal expected, @ui.output
160
+ assert_equal '', @ui.error
161
+ end
162
+
111
163
  def test_execute_add_http_rubygems_org
112
164
  http_rubygems_org = 'http://rubygems.org'
113
165
 
@@ -62,7 +62,12 @@ if ARGV.first
62
62
  end
63
63
  end
64
64
 
65
+ if Gem.respond_to?(:activate_bin_path)
65
66
  load Gem.activate_bin_path('a', 'executable', version)
67
+ else
68
+ gem "a", version
69
+ load Gem.bin_path("a", "executable", version)
70
+ end
66
71
  EOF
67
72
 
68
73
  wrapper = @installer.app_script_text 'executable'
@@ -301,6 +301,17 @@ class TestGemRequire < Gem::TestCase
301
301
  assert_equal %w(default-2.0.0.0), loaded_spec_names
302
302
  end
303
303
 
304
+ def test_realworld_default_gem
305
+ skip "no default gems on ruby < 2.0" unless RUBY_VERSION >= "2"
306
+ cmd = <<-RUBY
307
+ $stderr = $stdout
308
+ require "json"
309
+ puts Gem.loaded_specs["json"].default_gem?
310
+ RUBY
311
+ output = Gem::Util.popen(Gem.ruby, "-e", cmd).strip
312
+ assert_equal "true", output
313
+ end
314
+
304
315
  def test_default_gem_and_normal_gem
305
316
  default_gem_spec = new_default_spec("default", "2.0.0.0",
306
317
  nil, "default/gem.rb")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.11
4
+ version: 2.6.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-03-17 00:00:00.000000000 Z
13
+ date: 2017-04-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: builder
@@ -800,7 +800,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
800
800
  version: '0'
801
801
  requirements: []
802
802
  rubyforge_project:
803
- rubygems_version: 2.6.10
803
+ rubygems_version: 2.6.11
804
804
  signing_key:
805
805
  specification_version: 4
806
806
  summary: RubyGems is a package management framework for Ruby