Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > [ANN] RubyGems 0.8.0

Reply
Thread Tools

[ANN] RubyGems 0.8.0

 
 
Chad Fowler
Guest
Posts: n/a
 
      09-16-2004
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/t...uby/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



 
Reply With Quote
 
 
 
 
Richard Kilmer
Guest
Posts: n/a
 
      09-16-2004
I STRONGLY suggest the RUBYOPT thing. And, because rubygems starts with an
'r' we actually have a file named ubygems.rb which enables:

ruby -rubygems

And the RUBYOPT can be: rubygems

So the double 'r' is not necessary.

But like Chad said, this feature lets you just use a standard 'require'
statement on any file in any gem and it does an automatic 'require_gem' for
you transparently. To do this we override the require method. So, if in
your scripts you perform a bogus require you may get a message like:

irb(main):001:0> require 'foo'
LoadError: No such file to load -- foo
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/loadpath_manager.rb:5:in
`require__'
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/loadpath_manager.rb:5:in
`require'
from (irb):1

You notice the double require and require__ in the call stack. This is what
enables our transparency.

If you need to require a gem of a prior version though, you can still use
require_gem "GemName", "= x.y.z" to get that version. The require hack
always loads the latest version.

Best,

Rich

On 9/15/04 11:55 PM, "Chad Fowler" <(E-Mail Removed)> wrote:

> 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.





 
Reply With Quote
 
 
 
 
Gavin Sinclair
Guest
Posts: n/a
 
      09-16-2004
Thanks Chad; this is a groovilicious release. For the collective
readership's benefit, I'd like to provide a few comments.

The library stub thing is dead. If you do this:

require 'rubygems'
require 'active_record' # (A)

then line (A) will cause 'active_record' to be loaded either from
site_ruby or from a gem (any gem). This gives us the transparency we've
been looking for. I believe a 'site_ruby' install will get first
preference, so if you have version requirements [1], then you should do
this:

require 'rubygems'
require_gem 'active_record', '= 0.7.9'

Rich strongly recommends setting the environment variable RUBYOPT to
'rubygems'. That's something each user has to do. I recommend that
developers make it easy for their users by including code like this:

begin
require 'ubygems' # (B)
rescue LoadError
warn "Don't have RubyGems 0.8+" if thats_a_concern?
end

require 'active_record'

This will now work on any user's machine, whether they have RubyGems
installed or not, and whether they've set their RUBYOPT variable or not.

Note: line (B) will work from RubyGems 0.8+ but not RubyGems 0.7-. That's
the idea.

Thanks for all the cool gems people have contributed. Now that this
release is out, I'm going to contribute some myself

Some comments on other features:

* If your unit tests are in the 'test' directory of your project,
and are all named 'tc_*.rb', then include this in your gemspec:

spec.test_files = Dir.glob('test/tc_*.rb')

* If you have a test _suite_ file, which loads all the other tests,
you can put this in instead:

spec.test_file = 'test/test_suite.rb'

* If you have _several_ test suite files,

spec.test_files = Dir.glob('test/ts_*.rb')

* The 'spec' and 'unpack' commands only work with _installed_ gems.
I'll extend these commands to other gems for the next release.
'unpack' is useful for taking a look inside a package. For example,

gem unpack rake

will create the directory './rake-0.4.7', or whatever your latest
installed versions is.

Remember to take a look at the "Package Management with RubyGems" chapter
from Pickaxe II, available at

http://www.pragmaticprogrammer.com/titles/ruby/

Remember also that RubyGems isn't the only game in town. Mauricio is
doing a fine job with RPA. The two projects overlap somewhat, but serve
slightly different purposes. Please try to organise your code and project
so that it can be easily packaged into a gem, into the RPA, into a
Debian/RPM/ebuild/... If you have any questions about this, fire away.

Cheers,
Gavin


Chad wrote:
> Marking the 3000th download of RubyGems
> (http://rubygems.rubyforge.org), we are pleased to announce the release
> of RubyGems 0.8.0! [........]





 
Reply With Quote
 
Dennis Ranke
Guest
Posts: n/a
 
      09-16-2004
Hi!

When trying to install the new rubygems 0.8 on a winxp system (latest
one-click installer), I get the following error:

E:\Dokumente und Einstellungen\dranke\Eigene
Dateien\rubygems-0.8.0>install.rb

As of RubyGems 0.8.0, library stubs are no longer needed.
Searching $LOAD_PATH for stubs to optionally delete (may take a while)...
....done.
No library stubs found.

Successfully built RubyGem
Name: sources
Version: 0.0.1
File: sources-0.0.1.gem
e:/programme/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:139:in
`generate_
bin_scripts': You don't have write permissions into the e:/bin directory.
(Gem::
FilePermissionError)
from
e:/programme/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:69:i
n `install'
from E:/Dokumente und Einstellungen/dranke/Eigene
Dateien/rubygems-0.8.0
/install.rb:144:in `install_rb'
from E:/Dokumente und Einstellungen/dranke/Eigene
Dateien/rubygems-0.8.0
/install.rb:148

E:\Dokumente und Einstellungen\dranke\Eigene Dateien\rubygems-0.8.0>irb
irb(main):001:0> require 'rbconfig'
=> true
irb(main):002:0> Config::CONFIG['bindir']
=> "e:/programme/ruby/bin"

So far, I have been unable to figure out where the "e:/bin" comes from,
this directory doesn't exist on this computer.

In installer.rb: generate_bin_scripts CONFIG['bindir'] evaluates to the
correct "e:/programme/ruby/bin" while Config::CONFIG['bindir'] evaluates
to "e:/bin". When I change generate_bin_scripts to use CONFIG['bindir']
the install finishes without errors, but the sources gem is not installed
and trying to install it manually produces:

E:\Dokumente und Einstellungen\dranke\Eigene
Dateien\rubygems-0.8.0\packages\sou
rces>gem install sources-0.0.1.gem
Attempting local installation of 'sources-0.0.1.gem'
ERROR: Error installing gem sources-0.0.1.gem[.gem]: uninitialized
constant Gem
::Installer::CONFIG

I hope someone has some kind of idea what causes all of this.

--
exoticorn/farbrausch
 
Reply With Quote
 
Austin Ziegler
Guest
Posts: n/a
 
      09-16-2004
On Thu, 16 Sep 2004 12:55:59 +0900, Chad Fowler <(E-Mail Removed)> wrote:
> 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!


Sadly, I have an error to report on installation:

c:/apps/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:139:in `generate_bin_s
cripts': You don't have write permissions into the c:/bin directory. (Gem::FileP
ermissionError)
from c:/apps/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:69:in `in
stall'
from install.rb:144:in `install_rb'
from install.rb:148

I was using

gem install rubygems-update
update_rubygems

Note where my ruby is: C:/Apps/Ruby -- yet it still tried to install
something into C:/Bin.

-austin
--
Austin Ziegler * http://www.velocityreviews.com/forums/(E-Mail Removed)
* Alternate: (E-Mail Removed)
: as of this email, I have [ 6 ] Gmail invitations


 
Reply With Quote
 
Chad Fowler
Guest
Posts: n/a
 
      09-16-2004
Thanks. We've had several reports of similar things on Windows (and
gotten quite a bit of data from some of them). We'll have a look and
release a patch as soon as we've got a fix.

Chad

On Thu, 16 Sep 2004, Austin Ziegler wrote:

# On Thu, 16 Sep 2004 12:55:59 +0900, Chad Fowler <(E-Mail Removed)> wrote:
# > 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!
#
# Sadly, I have an error to report on installation:
#
# c:/apps/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:139:in `generate_bin_s
# cripts': You don't have write permissions into the c:/bin directory. (Gem::FileP
# ermissionError)
# from c:/apps/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:69:in `in
# stall'
# from install.rb:144:in `install_rb'
# from install.rb:148
#
# I was using
#
# gem install rubygems-update
# update_rubygems
#
# Note where my ruby is: C:/Apps/Ruby -- yet it still tried to install
# something into C:/Bin.
#
# -austin
# --
# Austin Ziegler * (E-Mail Removed)
# * Alternate: (E-Mail Removed)
# : as of this email, I have [ 6 ] Gmail invitations
#


 
Reply With Quote
 
James Britt
Guest
Posts: n/a
 
      09-16-2004
Chad Fowler wrote:

> Thanks. We've had several reports of similar things on Windows (and
> gotten quite a bit of data from some of them). We'll have a look and
> release a patch as soon as we've got a fix.
>
> Chad
>



Here's a another data point, from my win2k box:

Successfully built RubyGem
Name: sources
Version: 0.0.1
File: sources-0.0.1.gem
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:139:in
`generate_bin_scripts': You don't have write permissions into the c:/bin
directory. (
Gem::FilePermissionError)
from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:69:in
`install'
from install.rb:144:in `install_rb'
from install.rb:148




My Ruby instance lives n c:\ruby.
ruby 1.8.2 (2004-07-29) [i386-mswin32]

gems uninstall rubygems-update
fails, too.

James




 
Reply With Quote
 
Chad Fowler
Guest
Posts: n/a
 
      09-17-2004
It turns out that our release manager for 0.8.0 (me) made a mistake
and missed a couple of the 0.8.0 tagged files. Not really sure how
that happened, but we have just released RubyGems 0.8.1.

This should fix the problems that Windows users have been seeing with 0.8.0.

You can either download it from
http://rubyforge.org/frs/?group_id=126

or do (assuming you have a working rubygems installation):

$ gem install rubygems-update
$ update_rubygems


Thanks for the help tracking this one down (plus the patches we've
already recieved for 0.8.0)!

Keep those gems coming.

Chad


On Fri, 17 Sep 2004 00:44:55 +0900, James Britt
<(E-Mail Removed)> wrote:
> Chad Fowler wrote:
>
> > Thanks. We've had several reports of similar things on Windows (and
> > gotten quite a bit of data from some of them). We'll have a look and
> > release a patch as soon as we've got a fix.
> >
> > Chad
> >

>
>
> Here's a another data point, from my win2k box:
>
> Successfully built RubyGem
> Name: sources
> Version: 0.0.1
> File: sources-0.0.1.gem
> c:/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:139:in
> `generate_bin_scripts': You don't have write permissions into the c:/bin
> directory. (
> Gem::FilePermissionError)
> from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:69:in
> `install'
> from install.rb:144:in `install_rb'
> from install.rb:148
>
>
> My Ruby instance lives n c:\ruby.
> ruby 1.8.2 (2004-07-29) [i386-mswin32]
>
> gems uninstall rubygems-update
> fails, too.
>
> James
>
>



 
Reply With Quote
 
Chad Fowler
Guest
Posts: n/a
 
      09-17-2004
(I thought I sent this earlier but it didn't go through...excuse me if
this is a duplicate).


Our release manager for RubyGems 0.8.0 (me, in fact) somehow didn't
grab all of the 0.8.0-tagged files in CVS when 0.8.0 was released, so
we missed some windows-related bug fixes that were done just prior to
release.

This is the cause of the errors that some Windows users have reported.

So, we give you:

RubyGems 0.8.1

Get it here:
http://rubyforge.org/frs/?group_id=126
or
$ gem install rubygems-update
$ update_rubygems

Thanks for all of the feedback and testing so far on this release!
We've already gotten some good patches and a lot of great suggestions!

Keep those gems coming.

Chad

On Fri, 17 Sep 2004 00:44:55 +0900, James Britt
<(E-Mail Removed)> wrote:
> Chad Fowler wrote:
>
> > Thanks. We've had several reports of similar things on Windows (and
> > gotten quite a bit of data from some of them). We'll have a look and
> > release a patch as soon as we've got a fix.
> >
> > Chad
> >

>
>
> Here's a another data point, from my win2k box:
>
> Successfully built RubyGem
> Name: sources
> Version: 0.0.1
> File: sources-0.0.1.gem
> c:/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:139:in
> `generate_bin_scripts': You don't have write permissions into the c:/bin
> directory. (
> Gem::FilePermissionError)
> from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:69:in
> `install'
> from install.rb:144:in `install_rb'
> from install.rb:148
>
>
> My Ruby instance lives n c:\ruby.
> ruby 1.8.2 (2004-07-29) [i386-mswin32]
>
> gems uninstall rubygems-update
> fails, too.
>
> James
>
>



 
Reply With Quote
 
Dennis Ranke
Guest
Posts: n/a
 
      09-17-2004
On Sat, 18 Sep 2004 00:13:44 +0900, Chad Fowler <(E-Mail Removed)>
wrote:

> So, we give you:
>
> RubyGems 0.8.1


This installs fine now, however there appears to be some kind of problem
installing dependencies through a proxy server. Trying to remote install
rails I get the following:

E:\Programme\ruby\lib\ruby\gems\1.8>gem install rails -p
http://esperanto:8080
Attempting local installation of 'rails'
Local gem file not found: rails*.gem
Attempting remote installation of 'rails'
Install required dependency actionpack? [Yn] Y
Updating Gem source index for: http://gems.rubyforge.org
ERROR: While executing gem ... (Errno::ECONNRESET)
Eine vorhandene Verbindung wurde vom Remotehost geschlossen. -
connect(2)

This looks a lot like what happens when I try to install actionpack
without specifying the proxy:

E:\Programme\ruby\lib\ruby\gems\1.8>gem install actionpack
Attempting local installation of 'actionpack'
Local gem file not found: actionpack*.gem
Attempting remote installation of 'actionpack'
Updating Gem source index for: http://gems.rubyforge.org
ERROR: While executing gem ... (Errno::ECONNRESET)
Eine vorhandene Verbindung wurde vom Remotehost geschlossen. -
connect(2)

Installing actionpack directly through the proxy does work, though, so
maybe the proxy option is for some reason dropped when trying to download
the dependecies.

--
exoticorn/farbrausch
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Rubygems 1.3.5 can't load 'rubygems/defaults/operating_sy..' Eric Roscher Ruby 3 11-24-2009 02:15 AM
[BUG] RubyGems: "No such file to load -- rubygems/builder" Erik Veenstra Ruby 4 02-04-2005 10:28 PM
Problems with fresh install of RubyGems on Ubuntu Linux: No suchfile to load -- rubygems/builder (LoadError) Trevor Ruby 5 01-29-2005 12:52 AM
RubyGems news? Phil Tomson Ruby 2 01-24-2004 06:27 PM
RubyGems and dependencies Francis Hwang Ruby 2 12-24-2003 05:09 PM



Advertisments