Marking the 3000th download of RubyGems (http://rubygems.rubyforge.org), we are pleased to announce the release of RubyGems 0.8.0! The reaction and participation of the community so far as been astounding...keep those gems coming--this is your show; we're just trying to provide a little infrastructure!
DOWNLOAD HERE: http://rubyforge.org/frs/?group_id=126
...or....
$ gem install rubygems-update
$ update_rubygems
It's been a while since 0.7.0, but there's been a _ton_ of activity during this period. This is a VERY big release for us.
There are a lot of changes packed into 0.8.0 (listed in the release notes pasted at the bottom of this message), but there are a few things that stand out:
Replacement of library stub functionality
···
===============================
Instead of cluttering up the site_ruby directory with library/stub files, we can now load library files out of any installed gem without having to "require_gem" first. However, you'll have to first "require 'rubygems'" in order for this functionality to work. The easiest way to do this is to either pass "-rrubygems" on ruby's command line or set your RUBYOPT environment variable to include "rrubygems". The rubygems.rb file itself has been made to be VERY lightweight, so it should not be intrusive to load.
CAVEAT: libraries loaded with the "-r" switch on ruby's command line will not enjoy this seamless integration.
New Package Format
Graciously contributed by Mauricio Fernandez, RubyGems now uses tar/gzip as its package format. This shouldn't require any changes on the part of RubyGems' users and packagers/developers, BUT as new gems are added to the repository, anyone using RubyGems 0.7.0 will be unable to install them. If you see an error that looks like this:
ERROR: Error installing gem rubygems-update-0.8.0.gem[.gem]: Error reading files from gem
...it means you're trying to install a 0.8.0+ gem using RubyGems 0.7.0 or earlier.
Our advice to everyone is to upgrade now.
Pickaxe II
As you all know, the second edition of Programming Ruby is due out at the beginning of this month (pre-order NOW. It's an incredible book). Dave has made the chapter on RubyGems available as a PDF excerpt. Preview it here http://www.pragmaticprogrammer.com/titles/ruby/index.html to get a jump start on using RubyGems and creating your own gems, and then pick up the full book when it comes out. Even if you've read through the first edition multiple times (as many of us have), there is a _lot_ of great new stuff in the new edition.
What's coming?
We're getting awfully close to RubyGems 1.0. We've got some exciting things cooking, including graphical gem managers for various platforms, http://rubygems.org, and integration with the one-click ruby installer(s). Jim Weirich will be presenting RubyGems at this year's RubyConf (http://rubyconf.org). There are bound to be some teasers...
RubyGems is a party to which everyone is invited. Without YOUR libraries, the whole thing is meaningless. Help us celebrate RubyGems' "One Conference Year" birthday Oct. 1 (we started RubyGems at last year's RubyConf), by continuing to do what you're doing: Release more gems!
Thanks in advance for your continued feedback, patches, bug reports, and (most of all) gems.
Chad (for the RubyGems team)
Since so much else has changed, here's a dump of the release notes:
* Remove need for library stubs. Set the RUBYOPT environment variable to include
"rrubygems", and a normal require will find gem files. Continue to use 'require_gem gem_name, version' to specify gem versions.
* Deprecated "test_suite_file" gemspec attribute in favor of "test_files" array.
* Generates rdoc by default on installs.
* Adopted tar/gzip file format, thanks to Mauricio Fernandez.
* "gem rdoc" allows generation of rdoc after gem installation (will add a "gem test" in 0.9.0)
* Application stubs can now accept an optional parameter of _VERSION_ that will run
an arbitrary version of the application requested.
* Various bug fixes
* Various platform-independency improvements
* "gem spec --all" displays spec info for all installed version of a given gem. * Dynamic caching of sources
* Support for user-definable sources on the command line (thanks Assaph Mehr)
* More intelligent support for platform-dependent gems. Use Platform::CURRENT when
building a gem to set its platform to the one you're building on. Installation displays a choice of platform-dependent gems, allowing the user to pick.
* Added "gem unpack" for "unpacking" a gem to the current directory