RubyGems now has improved output for dependency conflicts: $ ruby -Ilib bin/gem install my_gem -i ~/tmp/gems ERROR: While executing gem ... (Gem::ImpossibleDependenciesError) rye-0.9.8 requires net-ssh (>= 2.0.13) but it conflicted: Activated net-ssh-2.6.7 instead of (~> 2.2.2) via: vagrant-1.0.7, my_gem2-0, my_gem-0 Activated net-ssh-2.2.2 instead of (>= 2.6.5) via: net-scp-1.1.1, rye-0.9.8, my_gem-0 Now the dependency and its requirement are printed along with the nature of the conflict and the path taken that resulted in the conflict. Fixes #485
See http://semver.org/spec/v2.0.0-rc.1 for details.
…ome helper methods to rubygems/test_case.rb
…mbiguous to test_gem_specification.rb file. - move loaded_spec_names and save_loaded_features to rubygems/test_case.rb
Also removes the TODO about slice!, replacing multiple rewrites via  with slice! and shift. Fixes #524
Previously if the tar entry was corrupt RubyGems would raise an arbitrary error. Now StandardError is captured and a FormatError is raised instead which allows the user to examine and possibly delete the corrupt file. Fixes #519
This will open the door for much more change in the future. More things could be pulled into this object, but I'm not ready to fight with all the tests such things break yet. Basically, #user_agent and the @proxy_uri variable are only used within this method, but there are a bunch of tests that hack at their internal state.