Skip to content
Browse files

adding requires and default yaml parser to psych if possible

  • Loading branch information...
1 parent f2ca897 commit a318f9180811fee3f0fd9db98c39916695502091 @tenderlove tenderlove committed
Showing with 12 additions and 0 deletions.
  1. +6 −0 lib/bundler.rb
  2. +1 −0 lib/bundler/cli.rb
  3. +1 −0 lib/bundler/source.rb
  4. +2 −0 lib/bundler/ui.rb
  5. +2 −0 spec/support/rubygems_ext.rb
6 lib/bundler.rb
@@ -1,6 +1,12 @@
require 'rbconfig'
require 'fileutils'
require 'pathname'
+ require 'psych'
cris added a note

It's a very bad idea to add 'psych' instead of default 'syck' for 'yaml'. I have an issue with this in bundler 1.0.10 and ruby 1.9.2 because psych has a big issue with aliased sections in yaml. Now, to fix it, I should do require 'yaml' before require 'bunler' in rails-script.

See for reproduce. I've created bug

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
+rescue LoadError
require 'yaml'
require 'bundler/rubygems_ext'
require 'bundler/version'
1 lib/bundler/cli.rb
@@ -1,6 +1,7 @@
$:.unshift File.expand_path('../vendor', __FILE__)
require 'thor'
require 'thor/actions'
+require 'rubygems/user_interaction'
require 'rubygems/config_file'
# Work around a RubyGems bug
1 lib/bundler/source.rb
@@ -1,4 +1,5 @@
require "uri"
+require 'rubygems/user_interaction'
require "rubygems/installer"
require "rubygems/spec_fetcher"
require "rubygems/format"
2 lib/bundler/ui.rb
@@ -1,3 +1,5 @@
+require 'rubygems/user_interaction'
module Bundler
class UI
def warn(message)
2 spec/support/rubygems_ext.rb
@@ -1,3 +1,5 @@
+require 'rubygems/user_interaction'
module Spec
module Rubygems
def self.setup

2 comments on commit a318f91


This commit changes the default YAML parser to Psych for all gems, which may introduce subtle breakage. I personally ran into this in Rails 2.3:

I'm not sure if this is a Bundler issue, or if any problems should be reported to the application or Psych. FWIW, Rails 3.0 seems to have worked around it, so I assume they acknowledge it to be an issue there, and I've reported one for 2.3.


Is it possible that 'psych' is breaking the YAML output of ".bundle/config"?
It appears to us that between 1.0.9 and 1.0.10, the command "bundle install --deployment" has been broken, and no longer writes to ".bundle/config".
It could be an issue with our server configuration though, so it would be great to have this verified by someone else.

Please sign in to comment.
Something went wrong with that request. Please try again.