[Rubygems-developers] [ANN] RubyGems 0.9.5

Eric Hodel drbrain at segment7.net
Tue Nov 20 01:12:58 EST 2007

RubyGems 0.9.5 adds several new features and fixes several bugs.

To upgrade to the latest RubyGems:

   gem update --system

To upgrade to the latest RubyGems by hand:

* Download RubyGems from http://rubyforge.org/frs/? 
* `gem install rubygems-update-0.9.5.gem`
* `update_rubygems`

To install RubyGems from scratch:

* Download RubyGems source .tgz or .zip file from
* Unpack the source .tgz or .zip
* `ruby setup.rb`

To install RubyGems on Ruby 1.9 update your ruby trunk checkout and  

To file bugs:


When filing a bug, `gem env` output will be helpful in diagnosing the  

If you find a bug where RubyGems crashes, please provide debug  
output.  You can do that with `gem --debug the_command`.  For example:

   $ gem --debug unknown_command
   Exception `RuntimeError' at [...]/rubygems/command_manager.rb:114  
- Unknown command unknown_command
   ERROR:  While executing gem ... (RuntimeError)
       Unknown command unknown_command
           [...]/rubygems/command_manager.rb:114:in `find_command'
           [...]/rubygems/command_manager.rb:103:in `process_args'
           [...]/rubygems/command_manager.rb:74:in `run'
           [...]/rubygems/gem_runner.rb:39:in `run'

=== Changes

Select new features include:

* Automatic installation of platform gems
* New bandwidth and memory friendlier index file format
* "Offline" mode (--no-update-sources)
* Bulk update threshold can be specified (-B, --bulk-threshold)
* New `gem fetch` command
* `gem` now has "really verbose" output when you specify -v
* Ruby 1.9 compatible

Other changes include:

* Time::today is deprecated and will be removed at a future date
* `gem install --include-dependencies` (-y) is now deprecated since  
it is the
   default, use --ignore-dependencies to turn off automatic dependency
* `gem.bat` and bin stubs on mswin platforms are improved and  
compatible with
   the One-Click Installer
* Multi-version diamond dependencies only are installed once
* Bulk index updates take less memory
* -V now enables verbose instead of -v to avoid collision with -- 
version's -v
* `gem install -i` makes sure all depenencies are installed
* `gem update --system` reinstalls into the prefix it was originally  
installe in
* `gem update --system` respects --no-rdoc and --no-ri flags
* HTTP basic authentication support for proxies
* Gem::Specification#platforms should no longer be a String, use
   Gem::Platfor::CURRENT when building binary gems instead
* `gem env` has more diagnostic information
* require 'rubygems' loads less code
* sources.gem is gone, RubyGems now uses built-in defaults
* `gem install --source` will no longer add --source by default, use
   `gem souces --add` to make it a permanent extra source
* `gem query` (list) no longer prints details by default
* Exact gem names are matched in various places
* mkrf extensions are now supported
* A gem can depend on a specific RubyGems version
* `gem_server` is now `gem server`
* `gemlock` is now `gem lock`
* `gem_mirror` is now `gem mirror`
* `gemwhich` is now `gem which`
* `gemri` is no longer included with RubyGems
* `index_gem_repository.rb` is now `gem generate_index`
* `gem` performs more validation of parameters
* Removed gem* commands are now replaced with stubs that warn
* Custom rdoc styles are now supported
* Gem indexer no longer removes quick index during index creation
* Kernel#require only rescues a LoadError for the file being required  
* `gem dependencies` can now display some information for remote gems

=== Special Thanks

* Daniel Berger for win32 support and testing
* Luis Lavena for win32 support and testing
* Tom Copeland for help testing and releasing the new indexer
* Wilson Bilkovich for the new Marshal index format
* To the rest of the RubyGems bug reporters and patch contributors

The full set of changes including contributors is included in the  

=== Platforms

RubyGems now automatically handles platform gems.  This means that  
`gem install` will no longer prompt for gem selection.  RubyGems uses  
Ruby's built-in configuration to match the running ruby's platform to  
choose the correct gem to install.  The automatically chosen platform  
may be overridden with the --platform option.

The dependency, fetch, install, outdated, specification, uninstall  
and update commands all respond to --platform.

For more information, see `gem help platforms`

=== Thanks

Keep those gems coming!

-- Jim & Chad & Eric (for the RubyGems team)

More information about the Rubygems-developers mailing list