Ruby Gems: new release and plans for inclusion in Ruby 1.9
Tom Copeland, who maintains RubyForge, explains the changes to the way the package index , which improve reliability of Ruby Gems:
- 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
You may have seen this message from "gem install" before:Another change improves memory usage:
$ gem install railsThen when you run "gem install rails" five minutes later, it installs just fine. This was due to the way we were rebuilding the gem index on RubyForge - we were doing it "in place", so that the current index would be overwritten and then populated over the course of the build. These take a fair while - 10 minutes or so - and during that time the index was essentially empty. Booooo.
ERROR: While executing gem ... (Gem::GemNotFoundException)
Could not find rails (> 0) in any repository
[...]Eric Hodel has twiddled the gem index builder to build it in a temporary directory and then move it in place. So those gem index outages should be a thing of the past. Thanks Eric!
Also, Wilson Bilkovich added a new Marshal formatted index that will reduce both bandwidth usage and memory consumption. Instead of 120M or so it takes to do a bulk yaml index update, it takes about 30M with a Marshal index update.To update to Ruby Gems 0.9.4.5 simply do this:
gem update --system --source http://segment7.net/
The feature list item about Ruby 1.9 compatibility hints at Ruby Gems' future: inclusion in the standard Ruby 1.9. This started with a post by Sasada Koichi back in July:
Matz plans to import gem into Ruby 1.9. Does anyone has any comment to this?The ensuing discussion picked up again in October and is now focussed on details about the nature of Ruby Gems in Ruby 1.9. Specifics about matters such as the name and behavior of the package management are being discussed now.
- possibility/difficulty to import (who is the maintainer of gem?)
- and other problems