Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.

Commit

Permalink
adding requires and default yaml parser to psych if possible
Browse files Browse the repository at this point in the history
  • Loading branch information
tenderlove committed Jan 21, 2011
1 parent f2ca897 commit a318f91
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 0 deletions.
6 changes: 6 additions & 0 deletions lib/bundler.rb
@@ -1,6 +1,12 @@
require 'rbconfig'
require 'fileutils'
require 'pathname'

begin
require 'psych'

This comment has been minimized.

Copy link
@cris

cris Feb 3, 2011

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 https://gist.github.com/809309 for reproduce. I've created bug https://github.com/carlhuda/bundler/issues/issue/1010

rescue LoadError
end

require 'yaml'
require 'bundler/rubygems_ext'
require 'bundler/version'
Expand Down
1 change: 1 addition & 0 deletions 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
Expand Down
1 change: 1 addition & 0 deletions lib/bundler/source.rb
@@ -1,4 +1,5 @@
require "uri"
require 'rubygems/user_interaction'
require "rubygems/installer"
require "rubygems/spec_fetcher"
require "rubygems/format"
Expand Down
2 changes: 2 additions & 0 deletions lib/bundler/ui.rb
@@ -1,3 +1,5 @@
require 'rubygems/user_interaction'

module Bundler
class UI
def warn(message)
Expand Down
2 changes: 2 additions & 0 deletions spec/support/rubygems_ext.rb
@@ -1,3 +1,5 @@
require 'rubygems/user_interaction'

module Spec
module Rubygems
def self.setup
Expand Down

2 comments on commit a318f91

@stephank
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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: https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/6354-psych-does-not-handle-symbols-in-yaml-used-in-activesupport

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.

@ndbroadbent
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.