[ rubygems-Bugs-28907 ] [RG 1.5.0/Ruby 1.9.x] source gem build error due to syck?
noreply at rubyforge.org
noreply at rubyforge.org
Tue Dec 13 11:45:45 EST 2011
Bugs item #28907, was opened at 2011-02-03 18:59
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=575&aid=28907&group_id=126
Category: `gem` commands (other)
Group: v1.5.x
Status: Closed
Resolution: Accepted
Priority: 3
Submitted By: Jon Forums (jonforums)
Assigned to: Eric Hodel (drbrain)
Summary: [RG 1.5.0/Ruby 1.9.x] source gem build error due to syck?
Initial Comment:
When building a source gem from http://github.com/oopsforge/oops-null using 'rake gem' I get the following error on Win7 with:
* ruby 1.9.2p174 (2011-01-28 revision 30696) [i386-mingw32]
* ruby 1.9.3dev (2011-02-04 trunk 30776) [i386-mingw32]
but no errors using "ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32]".
Manually building via 'gem build oops-null.gemspec' work fine on all the Ruby versions including JRuby 1.6.0.RC1. All versions have been upgraded to RG 1.5.0 via "gem update --system".
FWIW, the failure does not occur on "ruby 1.9.2 (2010-12-25 patchlevel 136) [i386-mingw32]" using RG 1.3.7
My "fix" was to add the following lines to the project Rakefile after the 3 require's:
require 'yaml'
YAML::ENGINE.yamler='psych' if defined?(YAML::ENGINE)
I will try to replicate on my Arch system later this afternoon.
Reproducible?
Jon
== ERROR ==
C:\projects\oops-null-git>gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.5.0
- RUBY VERSION: 1.9.2 (2011-01-28 patchlevel 174) [i386-mingw32]
- INSTALLATION DIRECTORY: C:/ruby192/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: C:/ruby192/bin/ruby.exe
- EXECUTABLE DIRECTORY: C:/ruby192/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-mingw32
- GEM PATHS:
- C:/ruby192/lib/ruby/gems/1.9.1
- C:/Users/Jon/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://rubygems.org", "http://gemcutter.org"]
- "gem" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- http://rubygems.org
- http://gemcutter.org
C:\projects\oops-null-git>rake gem
(in C:/projects/oops-null-git)
mkdir -p pkg
mkdir -p pkg
mkdir -p pkg/oops-null-0.3.0/bin
rm -f pkg/oops-null-0.3.0/bin/nulloops
ln bin/nulloops pkg/oops-null-0.3.0/bin/nulloops
rm -f pkg/oops-null-0.3.0/Rakefile
ln Rakefile pkg/oops-null-0.3.0/Rakefile
rm -f pkg/oops-null-0.3.0/oops-null.gemspec
ln oops-null.gemspec pkg/oops-null-0.3.0/oops-null.gemspec
mkdir -p pkg/oops-null-0.3.0/ext/oops_null
rm -f pkg/oops-null-0.3.0/ext/oops_null/extconf.rb
ln ext/oops_null/extconf.rb pkg/oops-null-0.3.0/ext/oops_null/extconf.rb
rm -f pkg/oops-null-0.3.0/ext/oops_null/oops_null.c
ln ext/oops_null/oops_null.c pkg/oops-null-0.3.0/ext/oops_null/oops_null.c
rm -f pkg/oops-null-0.3.0/ext/oops_null/oops_null.h
ln ext/oops_null/oops_null.h pkg/oops-null-0.3.0/ext/oops_null/oops_null.h
mkdir -p pkg/oops-null-0.3.0/lib
rm -f pkg/oops-null-0.3.0/lib/oops-null.rb
ln lib/oops-null.rb pkg/oops-null-0.3.0/lib/oops-null.rb
cd pkg/oops-null-0.3.0
rake aborted!
undefined method `write' for #<Syck::Emitter:0x22bd9e0>
C:/ruby192/lib/ruby/1.9.1/psych/visitors/emitter.rb:17:in `end_document'
C:/ruby192/lib/ruby/1.9.1/psych/visitors/emitter.rb:17:in `visit_Psych_Nodes_Document'
C:/ruby192/lib/ruby/1.9.1/psych/visitors/visitor.rb:10:in `accept'
C:/ruby192/lib/ruby/1.9.1/psych/visitors/emitter.rb:10:in `block in visit_Psych_Nodes_Stream'
C:/ruby192/lib/ruby/1.9.1/psych/visitors/emitter.rb:10:in `each'
C:/ruby192/lib/ruby/1.9.1/psych/visitors/emitter.rb:10:in `visit_Psych_Nodes_Stream'
C:/ruby192/lib/ruby/1.9.1/psych/visitors/visitor.rb:11:in `accept'
C:/ruby192/lib/ruby/1.9.1/psych/nodes/node.rb:36:in `to_yaml'
C:/ruby192/lib/ruby/1.9.1/psych.rb:166:in `dump'
C:/ruby192/lib/ruby/1.9.1/psych/core_ext.rb:13:in `psych_to_yaml'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:706:in `node_export'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:706:in `add'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:706:in `encode_with'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:727:in `block (2 levels) in to_yaml'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:726:in `map'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:726:in `block in to_yaml'
C:/ruby192/lib/ruby/1.9.1/syck.rb:401:in `call'
C:/ruby192/lib/ruby/1.9.1/syck.rb:401:in `emit'
C:/ruby192/lib/ruby/1.9.1/syck.rb:401:in `quick_emit'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:725:in `to_yaml'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:78:in `block (2 levels) in write_package'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:73:in `block (3 levels) in add_gem_contents'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_writer.rb:83:in `new'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:67:in `block (2 levels) in add_gem_contents'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:65:in `wrap'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:65:in `block in add_gem_contents'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_writer.rb:113:in `add_file'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:63:in `add_gem_contents'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:31:in `open'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package.rb:68:in `open'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:77:in `block in write_package'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:76:in `open'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:76:in `write_package'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:39:in `build'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package_task.rb:116:in `block (3 levels) in define'
C:/ruby192/lib/ruby/1.9.1/rake.rb:1157:in `when_writing'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package_task.rb:115:in `block (2 levels) in define'
C:/ruby192/lib/ruby/1.9.1/fileutils.rb:121:in `chdir'
C:/ruby192/lib/ruby/1.9.1/fileutils.rb:121:in `cd'
C:/ruby192/lib/ruby/1.9.1/rake.rb:1092:in `chdir'
C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/package_task.rb:114:in `block in define'
C:/ruby192/lib/ruby/1.9.1/rake.rb:634:in `call'
C:/ruby192/lib/ruby/1.9.1/rake.rb:634:in `block in execute'
C:/ruby192/lib/ruby/1.9.1/rake.rb:629:in `each'
C:/ruby192/lib/ruby/1.9.1/rake.rb:629:in `execute'
C:/ruby192/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain'
C:/ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
C:/ruby192/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
C:/ruby192/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites'
C:/ruby192/lib/ruby/1.9.1/rake.rb:602:in `each'
C:/ruby192/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites'
C:/ruby192/lib/ruby/1.9.1/rake.rb:594:in `block in invoke_with_call_chain'
C:/ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
C:/ruby192/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
C:/ruby192/lib/ruby/1.9.1/rake.rb:581:in `invoke'
C:/ruby192/lib/ruby/1.9.1/rake.rb:2041:in `invoke_task'
C:/ruby192/lib/ruby/1.9.1/rake.rb:2019:in `block (2 levels) in top_level'
C:/ruby192/lib/ruby/1.9.1/rake.rb:2019:in `each'
C:/ruby192/lib/ruby/1.9.1/rake.rb:2019:in `block in top_level'
C:/ruby192/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
C:/ruby192/lib/ruby/1.9.1/rake.rb:2013:in `top_level'
C:/ruby192/lib/ruby/1.9.1/rake.rb:1992:in `run'
C:/ruby192/bin/rake:31:in `<main>'
----------------------------------------------------------------------
Comment By: Roger Pack (rogerdpack)
Date: 2011-12-13 16:45
Message:
just got this today:
undefined method `write' for #<Syck::Emitter:0x29ba928>
ruby 1.9.2p290 (2011-07-09) [i386-mingw32]
full output: https://gist.github.com/1472862
will reopen if I run into this again...
----------------------------------------------------------------------
Comment By: Roger Pack (rogerdpack)
Date: 2011-03-03 20:01
Message:
Was this still fixed in 1.6.0? (I'm still getting it there).
Thanks!
-r
----------------------------------------------------------------------
Comment By: Eric Hodel (drbrain)
Date: 2011-02-28 18:56
Message:
Fixed by 1.5.3
----------------------------------------------------------------------
Comment By: Ryan Davis (zenspider)
Date: 2011-02-25 19:38
Message:
So, to be clear, if psych is used to create a gemspec with a version specifier using "=", and the gem is subsequently loaded using syck, this error will occur.
This is a bug in syck.
Our workaround is to look up the parsed value and if it looks up nil, fall back on a manual "=". We should backport this fix into the 1.5 line.
Eric. I'll leave the backport to you.
----------------------------------------------------------------------
Comment By: Roger Pack (rogerdpack)
Date: 2011-02-25 18:24
Message:
Just got this with jeweler, too, FYI.
https://gist.github.com/844237
----------------------------------------------------------------------
Comment By: Leonard Chin (lchin)
Date: 2011-02-10 07:37
Message:
The same error occurs with hoe
Using RubyGems at commit 182bcaf7bd4f77493794 with Ruby 1.9.2-p136
https://github.com/rubygems/rubygems/tree/182bcaf7bd4f77493794d216ac37aa9935655943
rake package --trace
(in /Users/lchin/Downloads/buggy)
** Invoke package (first_time)
** Invoke pkg/buggy-1.0.0.tgz (first_time, not_needed)
** Invoke pkg/buggy-1.0.0 (first_time, not_needed)
** Invoke .autotest (first_time, not_needed)
** Invoke History.txt (first_time, not_needed)
** Invoke Manifest.txt (first_time, not_needed)
** Invoke README.txt (first_time, not_needed)
** Invoke Rakefile (first_time, not_needed)
** Invoke bin/buggy (first_time, not_needed)
** Invoke lib/buggy.rb (first_time, not_needed)
** Invoke test/test_buggy.rb (first_time, not_needed)
** Invoke .autotest (not_needed)
** Invoke History.txt (not_needed)
** Invoke Manifest.txt (not_needed)
** Invoke README.txt (not_needed)
** Invoke Rakefile (not_needed)
** Invoke bin/buggy (not_needed)
** Invoke lib/buggy.rb (not_needed)
** Invoke test/test_buggy.rb (not_needed)
** Invoke gem (first_time)
** Invoke pkg/buggy-1.0.0.gem (first_time)
** Invoke pkg (first_time, not_needed)
** Invoke pkg/buggy-1.0.0 (not_needed)
** Invoke .autotest (not_needed)
** Invoke History.txt (not_needed)
** Invoke Manifest.txt (not_needed)
** Invoke README.txt (not_needed)
** Invoke Rakefile (not_needed)
** Invoke bin/buggy (not_needed)
** Invoke lib/buggy.rb (not_needed)
** Invoke test/test_buggy.rb (not_needed)
** Execute pkg/buggy-1.0.0.gem
cd pkg/buggy-1.0.0
WARNING: description and summary are identical
rake aborted!
undefined method `write' for #<Syck::Emitter:0x00000100919d48>
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych/visitors/emitter.rb:17:in `end_document'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych/visitors/emitter.rb:17:in `visit_Psych_Nodes_Document'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych/visitors/visitor.rb:10:in `accept'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych/visitors/emitter.rb:10:in `block in visit_Psych_Nodes_Stream'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych/visitors/emitter.rb:10:in `each'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych/visitors/emitter.rb:10:in `visit_Psych_Nodes_Stream'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych/visitors/visitor.rb:11:in `accept'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych/nodes/node.rb:36:in `to_yaml'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:166:in `dump'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych/core_ext.rb:13:in `psych_to_yaml'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:706:in `node_export'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:706:in `add'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:706:in `encode_with'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:728:in `block (2 levels) in to_yaml'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:727:in `map'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:727:in `block in to_yaml'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/syck.rb:401:in `call'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/syck.rb:401:in `emit'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/syck.rb:401:in `quick_emit'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:726:in `to_yaml'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:78:in `block (2 levels) in write_package'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:73:in `block (3 levels) in add_gem_contents'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_writer.rb:83:in `new'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:67:in `block (2 levels) in add_gem_contents'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:65:in `wrap'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:65:in `block in add_gem_contents'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_writer.rb:113:in `add_file'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:63:in `add_gem_contents'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:31:in `open'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package.rb:68:in `open'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:77:in `block in write_package'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:76:in `open'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:76:in `write_package'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:39:in `build'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package_task.rb:116:in `block (3 levels) in define'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:1159:in `when_writing'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package_task.rb:115:in `block (2 levels) in define'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/fileutils.rb:121:in `chdir'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/fileutils.rb:121:in `cd'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:1094:in `chdir'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/package_task.rb:114:in `block in define'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:636:in `block in execute'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:597:in `block in invoke_with_call_chain'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:607:in `block in invoke_prerequisites'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:596:in `block in invoke_with_call_chain'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:607:in `block in invoke_prerequisites'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:596:in `block in invoke_with_call_chain'
/Users/lchin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:2029:in `block (2 levels) in top_level'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:2029:in `block in top_level'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:2001:in `block in run'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/gems/rake-0.8.7/bin/rake:31:in `<top (required)>'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/bin/rake:19:in `load'
/Users/lchin/.rvm/gems/ruby-1.9.2-p136 at global/bin/rake:19:in `<main>'
----------------------------------------------------------------------
Comment By: Jon Forums (jonforums)
Date: 2011-02-05 22:00
Message:
All OK now with the updated rake-compiler.
So I'm clear, this is the main commit to pay attention to?
https://github.com/rubygems/rubygems/commit/67f9f760c782142d9bfd8099750274ba498d6682
Given the simple tweak to rake-compiler, is your
recommendation that other gems requiring yaml also prefer
psych when running on 1.9.2+ and RG 1.5.0+
FWIW, I personally like the idea of preferring psych, but
would like to have first seen it mentioned in one of the
following rather than in a bt:
http://blog.segment7.net/2011/01/31/rubygems-1-5
https://github.com/rubygems/rubygems/blob/master/UPGRADING.rdoc
Jon
----------------------------------------------------------------------
Comment By: Eric Hodel (drbrain)
Date: 2011-02-04 23:37
Message:
Yes, you are loading syck (require 'yaml') before psych (require 'psych'):
https://github.com/luislavena/rake-compiler/blob/master/lib/rake/baseextensiontask.rb
This is not supported.
A patch will be sent to rake-compiler.
You can work around this by requiring psych before rake-compiler.
----------------------------------------------------------------------
Comment By: Jon Forums (jonforums)
Date: 2011-02-04 21:01
Message:
That's not the issue, sorry I wasn't clear. I'm not mixing
syck or psyck in the same ruby in my code.
My original Rakefile https://github.com/oopsforge/oops-
null/blob/master/Rakefile that worked pre-1.5.0 didn't
explicitly require 'yaml' or the YAML::ENGINE.yamler=
nonsense.
I added these lines to get the gem to build when I saw the
error message
undefined method `write' for #<Syck::Emitter:0x22bd9e0>
C:/ruby192/lib/ruby/1.9.1/psych/visitors/emitter.rb:17:in
`end_document'
...
..as I guessed that explicitly setting the YAML engine to
psych would prevent syck from being visited/wrapped by
psych.
I think something's changed in RG 1.5.0 and/or ruby_1_9_2 or
trunk that's causing the problem. I wanted to dig into how
psych was visiting/wrapping syck but ran out of time. I also
did a quick look through rake-compiler and don't think it's
to blame.
Given that my original Rakefile fails on Win7 MRI 1.9.2-
p174, 1.9.2-p136, 1.9.3dev and Arch 1.9.3dev when using RG
1.5.0 I still think the problem is in RG.
Hopefully I explained it more clearly this time.
Would you take one more look at that long back trace and see
if you change your mind on the issue?
----------------------------------------------------------------------
Comment By: Eric Hodel (drbrain)
Date: 2011-02-04 20:33
Message:
Do not mix syck (require 'yaml') and psych (require 'psych') in the same ruby.
RubyGems uses psych on ruby 1.9.2 and newer as syck is deprecated and will be removed at a future date. Please update your Rakefile to match.
----------------------------------------------------------------------
Comment By: Jon Forums (jonforums)
Date: 2011-02-04 14:53
Message:
same failure on "ruby 1.9.2p136 (2010-12-25) [i386-mingw32]"
upgraded from RG 1.3.7 to RG 1.5.0
----------------------------------------------------------------------
Comment By: Jon Forums (jonforums)
Date: 2011-02-03 19:13
Message:
similar failure and working "fix" on Arch using:
ruby 1.9.3dev (2011-02-04 trunk 30776) [i686-linux]
RubyGems Environment:
- RUBYGEMS VERSION: 1.5.0
- RUBY VERSION: 1.9.3 (2011-02-04 patchlevel -1) [i686-
linux]
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/local/lib/ruby/gems/1.9.1
- /home/jon/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://rubygems.org",
"http://gemcutter.org"]
- "gem" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- http://rubygems.org
- http://gemcutter.org
----------------------------------------------------------------------
You can respond by visiting:
http://rubyforge.org/tracker/?func=detail&atid=575&aid=28907&group_id=126
More information about the RubyGems-Developers
mailing list