rubygems-update 1.8.21 → 1.8.22

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.

@@ -0,0 +1,14 @@
1
+ before_script:
2
+ - gem install minitest
3
+ - gem install rdoc
4
+ - gem install hoe
5
+ - gem install hoe-seattlerb
6
+ rvm:
7
+ - 1.8.7
8
+ - 1.9.2
9
+ - 1.9.3
10
+ - ruby-head
11
+ notifications:
12
+ email:
13
+ - drbrain@segment7.net
14
+ - evan+notify@phx.io
@@ -1,5 +1,14 @@
1
1
  # coding: UTF-8
2
2
 
3
+ === 1.8.22 / 2012-04-13
4
+
5
+ * 4 bug fixes:
6
+
7
+ * Workaround for psych/syck YAML date parsing issue
8
+ * Don't trust the encoding of ARGV. Fixes #307
9
+ * Quiet default warnings about missing spec variables
10
+ * Read a binary file properly (windows fix)
11
+
3
12
  === 1.8.21 / 2012-03-22
4
13
 
5
14
  * 2 bug fixes:
@@ -1,5 +1,6 @@
1
1
  .autotest
2
2
  .document
3
+ .travis.yml
3
4
  History.txt
4
5
  LICENSE.txt
5
6
  MIT.txt
data/Rakefile CHANGED
@@ -56,7 +56,7 @@ hoe = Hoe.spec 'rubygems-update' do
56
56
  rdoc_options << "--title=RubyGems #{self.version} Documentation"
57
57
  end
58
58
 
59
- self.rsync_args += " --no-p"
59
+ self.rsync_args += " --no-p -O"
60
60
 
61
61
  # FIX: this exists because update --system installs the gem and
62
62
  # doesn't uninstall it. It should uninstall or better, not install
@@ -226,10 +226,11 @@ task "git:newchangelog" do
226
226
  now = Time.new.strftime "%Y-%m-%d"
227
227
 
228
228
  changes = `#{cmd}`.split(/\|\|\|/).each_slice(3).map do |msg, author, email|
229
- msg.split(/\n/).reject { |s| s.empty? }
229
+ c = msg.split(/\n/).reject { |s| s.empty? }
230
+ c.empty? ? nil : c.first
230
231
  end
231
232
 
232
- changes = changes.flatten
233
+ changes = changes.flatten.compact
233
234
 
234
235
  next if changes.empty?
235
236
 
@@ -112,6 +112,7 @@ require "rubygems/deprecate"
112
112
  # * Daniel Berger -- djberg96(at)gmail.com
113
113
  # * Phil Hagelberg -- technomancy(at)gmail.com
114
114
  # * Ryan Davis -- ryand-ruby(at)zenspider.com
115
+ # * Evan Phoenix -- evan@phx.io
115
116
  #
116
117
  # (If your name is missing, PLEASE let us know!)
117
118
  #
@@ -120,7 +121,7 @@ require "rubygems/deprecate"
120
121
  # -The RubyGems Team
121
122
 
122
123
  module Gem
123
- VERSION = '1.8.21'
124
+ VERSION = '1.8.22'
124
125
 
125
126
  ##
126
127
  # Raised when RubyGems is unable to load or activate a gem. Contains the
@@ -466,9 +466,13 @@ require 'rubygems'
466
466
 
467
467
  version = "#{Gem::Requirement.default}"
468
468
 
469
- if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
470
- version = $1
471
- ARGV.shift
469
+ if ARGV.first
470
+ str = ARGV.first
471
+ str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
472
+ if str =~ /\\A_(.*)_\\z/
473
+ version = $1
474
+ ARGV.shift
475
+ end
472
476
  end
473
477
 
474
478
  gem '#{spec.name}', version
@@ -118,7 +118,9 @@ class Gem::InstallerTestCase < Gem::TestCase
118
118
  FileUtils.mkdir_p 'bin'
119
119
  FileUtils.mkdir_p 'lib'
120
120
  FileUtils.mkdir_p File.join('ext', 'a')
121
- File.open File.join('bin', 'executable'), 'w' do |f| f.puts '1' end
121
+ File.open File.join('bin', 'executable'), 'w' do |f|
122
+ f.puts "raise 'ran executable'"
123
+ end
122
124
  File.open File.join('lib', 'code.rb'), 'w' do |f| f.puts '1' end
123
125
  File.open File.join('ext', 'a', 'mkrf_conf.rb'), 'w' do |f|
124
126
  f << <<-EOF
@@ -1002,6 +1002,12 @@ class Gem::Specification
1002
1002
  when String then
1003
1003
  if /\A(\d{4})-(\d{2})-(\d{2})\Z/ =~ date then
1004
1004
  Time.utc($1.to_i, $2.to_i, $3.to_i)
1005
+
1006
+ # Workaround for where the date format output from psych isn't
1007
+ # parsed as a Time object by syck and thus comes through as a
1008
+ # string.
1009
+ elsif /\A(\d{4})-(\d{2})-(\d{2}) \d{2}:\d{2}:\d{2}\.\d+?Z\z/ =~ date then
1010
+ Time.utc($1.to_i, $2.to_i, $3.to_i)
1005
1011
  else
1006
1012
  raise(Gem::InvalidSpecificationException,
1007
1013
  "invalid date format in specification: #{date.inspect}")
@@ -1378,7 +1384,7 @@ class Gem::Specification
1378
1384
  val = other_spec.instance_variable_get(name)
1379
1385
  if val then
1380
1386
  instance_variable_set name, val.dup
1381
- else
1387
+ elsif Gem.configuration.really_verbose
1382
1388
  warn "WARNING: #{full_name} has an invalid nil value for #{name}"
1383
1389
  end
1384
1390
  rescue TypeError
@@ -35,9 +35,13 @@ require 'rubygems'
35
35
 
36
36
  version = \">= 0\"
37
37
 
38
- if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
39
- version = $1
40
- ARGV.shift
38
+ if ARGV.first
39
+ str = ARGV.first
40
+ str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
41
+ if str =~ /\\A_(.*)_\\z/
42
+ version = $1
43
+ ARGV.shift
44
+ end
41
45
  end
42
46
 
43
47
  gem 'a', version
@@ -669,6 +673,95 @@ load Gem.bin_path('a', 'executable', version)
669
673
  assert_same @installer, @pre_install_hook_arg
670
674
  end
671
675
 
676
+ def test_install_creates_working_binstub
677
+ Dir.mkdir util_inst_bindir
678
+ util_setup_gem
679
+ util_clear_gems
680
+
681
+ @installer.wrappers = true
682
+
683
+ gemdir = File.join @gemhome, 'gems', @spec.full_name
684
+
685
+ @newspec = nil
686
+ build_rake_in do
687
+ use_ui @ui do
688
+ @newspec = @installer.install
689
+ end
690
+ end
691
+
692
+ exe = File.join gemdir, 'bin', 'executable'
693
+
694
+ e = assert_raises RuntimeError do
695
+ instance_eval File.read(exe)
696
+ end
697
+
698
+ assert_match(/ran executable/, e.message)
699
+ end
700
+
701
+ def test_install_creates_binstub_that_understand_version
702
+ Dir.mkdir util_inst_bindir
703
+ util_setup_gem
704
+ util_clear_gems
705
+
706
+ @installer.wrappers = true
707
+
708
+ @newspec = nil
709
+ build_rake_in do
710
+ use_ui @ui do
711
+ @newspec = @installer.install
712
+ end
713
+ end
714
+
715
+ exe = File.join @gemhome, 'bin', 'executable'
716
+
717
+ ARGV.unshift "_3.0_"
718
+
719
+ begin
720
+ Gem::Specification.reset
721
+
722
+ e = assert_raises Gem::LoadError do
723
+ instance_eval File.read(exe)
724
+ end
725
+ ensure
726
+ ARGV.shift if ARGV.first == "_3.0_"
727
+ end
728
+
729
+ assert_match(/\(= 3\.0\)/, e.message)
730
+ end
731
+
732
+ def test_install_creates_binstub_that_dont_trust_encoding
733
+ skip unless "".respond_to?(:force_encoding)
734
+
735
+ Dir.mkdir util_inst_bindir
736
+ util_setup_gem
737
+ util_clear_gems
738
+
739
+ @installer.wrappers = true
740
+
741
+ @newspec = nil
742
+ build_rake_in do
743
+ use_ui @ui do
744
+ @newspec = @installer.install
745
+ end
746
+ end
747
+
748
+ exe = File.join @gemhome, 'bin', 'executable'
749
+
750
+ ARGV.unshift "\xE4pfel".force_encoding("UTF-8")
751
+
752
+ begin
753
+ Gem::Specification.reset
754
+
755
+ e = assert_raises RuntimeError do
756
+ instance_eval File.read(exe)
757
+ end
758
+ ensure
759
+ ARGV.shift if ARGV.first == "\xE4pfel"
760
+ end
761
+
762
+ assert_match(/ran executable/, e.message)
763
+ end
764
+
672
765
  def test_install_with_no_prior_files
673
766
  Dir.mkdir util_inst_bindir
674
767
  util_clear_gems
@@ -411,7 +411,7 @@ dependencies: []
411
411
  def test_handles_private_null_type
412
412
  path = File.join DATA_PATH, "null-type.gemspec.rz"
413
413
 
414
- data = Marshal.load Gem.inflate(File.read(path))
414
+ data = Marshal.load Gem.inflate(Gem.read_binary(path))
415
415
 
416
416
  assert_equal nil, data.rubyforge_project
417
417
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 8
9
- - 21
10
- version: 1.8.21
9
+ - 22
10
+ version: 1.8.22
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jim Weirich
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2012-03-22 00:00:00 Z
20
+ date: 2012-04-13 00:00:00 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: minitest
@@ -25,14 +25,13 @@ dependencies:
25
25
  requirement: &id001 !ruby/object:Gem::Requirement
26
26
  none: false
27
27
  requirements:
28
- - - ">="
28
+ - - ~>
29
29
  - !ruby/object:Gem::Version
30
- hash: 37
30
+ hash: 27
31
31
  segments:
32
32
  - 2
33
- - 11
34
- - 3
35
- version: 2.11.3
33
+ - 12
34
+ version: "2.12"
36
35
  type: :development
37
36
  version_requirements: *id001
38
37
  - !ruby/object:Gem::Dependency
@@ -183,6 +182,7 @@ extra_rdoc_files:
183
182
  files:
184
183
  - .autotest
185
184
  - .document
185
+ - .travis.yml
186
186
  - History.txt
187
187
  - LICENSE.txt
188
188
  - MIT.txt
@@ -387,7 +387,7 @@ post_install_message:
387
387
  rdoc_options:
388
388
  - --main
389
389
  - README.rdoc
390
- - --title=RubyGems 1.8.21 Documentation
390
+ - --title=RubyGems 1.8.22 Documentation
391
391
  require_paths:
392
392
  - hide_lib_for_update
393
393
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -413,7 +413,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
413
413
  requirements: []
414
414
 
415
415
  rubyforge_project: rubygems
416
- rubygems_version: 1.8.20
416
+ rubygems_version: 1.8.21
417
417
  signing_key:
418
418
  specification_version: 3
419
419
  summary: RubyGems is a package management framework for Ruby