From rubygems at freeze.org Wed Jun 1 09:00:40 2005 From: rubygems at freeze.org (Jim Freeze) Date: Wed Jun 1 08:49:46 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <200505310824.36874.jim@weirichhouse.org> References: <20050530010740.A11495@cs.mcgill.ca> <200505310824.36874.jim@weirichhouse.org> Message-ID: <20050601130040.GA877@freeze.org> * Jim Weirich [2005-05-31 08:24:36 -0400]: > On Tuesday 31 May 2005 03:05 am, Eric Hodel wrote: > > Which automatically finds RubyInline, adds it to $LOAD_PATH, and then > > requires 'inline'. > > > > Instead, we could do this: > > > > activate 'RubyInline', '= 3.2.2' > > require 'inline' > > > > activate would add RubyInline 3.2.2 to $LOAD_PATH, and require would > > just DTRT. > > > I think I like 'Gem.activate' for namespace reasons ... there currently exists > a method by that name in the library, but is used only internally as far as I > know and I think we can safely hijack its name. I don't understand how you would use Gem.activate. If I start a new app, what do I do? Something like?: require 'rubygems' Gem.activate('rake', '1.1.1') I think I like the simple activate, or even activate_gem better. activate_gem 'RubyInline', '= 3.2.2' require 'inline' -- Jim Freeze Ruby: I can explain it to ya but I can't understand it fer ya. From gsinclair at soyabean.com.au Wed Jun 1 09:28:52 2005 From: gsinclair at soyabean.com.au (Gavin Sinclair) Date: Wed Jun 1 09:22:32 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <20050601130040.GA877@freeze.org> References: <20050530010740.A11495@cs.mcgill.ca> <200505310824.36874.jim@weirichhouse.org> <20050601130040.GA877@freeze.org> Message-ID: <32195182928.20050601232852@soyabean.com.au> On Wednesday, June 1, 2005, 11:00:40 PM, Jim wrote: >> I think I like 'Gem.activate' for namespace reasons ... there currently exists >> a method by that name in the library, but is used only internally as far as I >> know and I think we can safely hijack its name. > I don't understand how you would use Gem.activate. > If I start a new app, what do I do? Something like?: > require 'rubygems' > Gem.activate('rake', '1.1.1') > I think I like the simple activate, or even activate_gem better. > activate_gem 'RubyInline', '= 3.2.2' > require 'inline' The only difference is the name: Gem.activate 'RubyInline', '= 3.2.2' require 'inline' Not sure what your point is about "starting a new app". But like I said, the only difference is the name. Gavin From hgs at dmu.ac.uk Wed Jun 1 09:50:49 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Wed Jun 1 09:43:55 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <32195182928.20050601232852@soyabean.com.au> References: <20050530010740.A11495@cs.mcgill.ca> <200505310824.36874.jim@weirichhouse.org> <20050601130040.GA877@freeze.org> <32195182928.20050601232852@soyabean.com.au> Message-ID: On Wed, 1 Jun 2005, Gavin Sinclair wrote: > On Wednesday, June 1, 2005, 11:00:40 PM, Jim wrote: > >> I think I like the simple activate, or even activate_gem better. > >> activate_gem 'RubyInline', '= 3.2.2' >> require 'inline' > > The only difference is the name: > > Gem.activate 'RubyInline', '= 3.2.2' > require 'inline' > > Not sure what your point is about "starting a new app". But like I > said, the only difference is the name. > > Gavin What puzzles me is the name. What is the activate doing? To me, you can only activate something if you have it but here it is being activated before require'd. So why is it activate rather than obtain, require, acquire, or some such name? I seem to have only seem the end of this discussion, not the bit where its operation was defined. Hugh From jim at weirichhouse.org Wed Jun 1 13:17:22 2005 From: jim at weirichhouse.org (Jim Weirich) Date: Wed Jun 1 13:10:21 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: References: <20050530010740.A11495@cs.mcgill.ca><200505310824.36874.jim@weirichhouse.org><20050601130040.GA877@freeze.org><32195182928.20050601232852@soyabean.com.au> Message-ID: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> Hugh Sasse said: > On Wed, 1 Jun 2005, Gavin Sinclair wrote: > >> On Wednesday, June 1, 2005, 11:00:40 PM, Jim wrote: >> >>> I think I like the simple activate, or even activate_gem better. >> >>> activate_gem 'RubyInline', '= 3.2.2' >>> require 'inline' >> >> The only difference is the name: >> >> Gem.activate 'RubyInline', '= 3.2.2' >> require 'inline' >> >> Not sure what your point is about "starting a new app". But like I >> said, the only difference is the name. >> >> Gavin > > What puzzles me is the name. What is the activate doing? To me, > you can only activate something if you have it but here it is being > activated before require'd. So why is it activate rather than > obtain, require, acquire, or some such name? > > I seem to have only seem the end of this discussion, not the bit > where its operation was defined. This started off as a discussion of require_gem and how it is really doing two things (1) moving a gem's directories into the load path and (2) requiring any files marked as autorequire in the gem. The reason it does two jobs is historical, and comes from the early feeling that 'require_gem' was a replacement for 'require'. As our understanding of the role of 'require_gem' evolved, we realized that 'require_gem' operates on gems, and that 'require' operates on files, so they are really two different things. So 'require_gem' is really *not* a replacement for 'require', and should stand alone. Also, at some point RubyGems gained the ability to 'auto-activate' the latest gem just by requiring a file in the gem that can't otherwise be found. At that point, 'require_gem' was only needed when you wanted to use a gem that was not the latest installed version. When used in a "select version" role, the fact it requires files as a side effect is rather annoying. This is the drive for a new command that does only (1) above. Since this new command will not require any files, it should not use the word 'require'. So what should it be called? Eric has suggested activate (or activate_gem, or Gem.activate): "activate" is the term used internally by RubyGems to denote the process of adding a gems directories to the ruby load path. By activating a specific version of a gem, we make it the one that will be used when resolving requires. Other terms are possible. "use" (and its variations use_gem and Gem.use) was considered but the Perlness of the work was a bit off-putting. "enable" is another possibility. Since this new command is only needed when specifying versions, something like "lockdown_version" is also possible. I think I like activate. It brings to mind turning something on so that it is ready to be used. -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas) From hgs at dmu.ac.uk Wed Jun 1 16:26:46 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Wed Jun 1 16:19:49 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> References: <20050530010740.A11495@cs.mcgill.ca><200505310824.36874.jim@weirichhouse.org><20050601130040.GA877@freeze.org><32195182928.20050601232852@soyabean.com.au> <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> Message-ID: On Wed, 1 Jun 2005, Jim Weirich wrote: > > Hugh Sasse said: >> >> I seem to have only seem the end of this discussion, not the bit s/seem the/seen the/ # BYKT :-) >> where its operation was defined. > [...] > they are really two different things. So 'require_gem' is really *not* a > replacement for 'require', and should stand alone. Also, at some point > RubyGems gained the ability to 'auto-activate' the latest gem just by > requiring a file in the gem that can't otherwise be found. > > At that point, 'require_gem' was only needed when you wanted to use a gem > that was not the latest installed version. When used in a "select > version" role, the fact it requires files as a side effect is rather > annoying. This is the drive for a new command that does only (1) above. > Since this new command will not require any files, it should not use the > word 'require'. So what should it be called? > > Eric has suggested activate (or activate_gem, or Gem.activate): > "activate" is the term used internally by RubyGems to denote the process > of adding a gems directories to the ruby load path. By activating a But that's invisible to the user -- i.e transparent... > specific version of a gem, we make it the one that will be used when > resolving requires. > > Other terms are possible. "use" (and its variations use_gem and Gem.use) > was considered but the Perlness of the work was a bit off-putting. :-) Perl's use seems more like our require, so the meaning would be unclear. > "enable" is another possibility. Since this new command is only needed We use it to denote which gem we want, so I think gem_select makes sense. (-: Of course it would have to have LOTS of tests, because as Dave and Andy have told us "select isn't broken" :-) > when specifying versions, something like "lockdown_version" is also > possible. > > I think I like activate. It brings to mind turning something on so that > it is ready to be used. Turning it on before getting the "required" components sounds like a recipe for smoke and funny smells, though :-) > > -- Thank you, Hugh From rubygems at freeze.org Wed Jun 1 22:53:46 2005 From: rubygems at freeze.org (Jim Freeze) Date: Wed Jun 1 22:43:26 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <20050601151438.GA1607@freeze.org> References: <20050530010740.A11495@cs.mcgill.ca> <200505310824.36874.jim@weirichhouse.org> <20050601130040.GA877@freeze.org> <32195182928.20050601232852@soyabean.com.au> <20050601151438.GA1607@freeze.org> Message-ID: <20050602025346.GA4526@freeze.org> Sorry, sent this earlier but with wrong From field, so it never made it. * Jim Freeze [2005-06-01 10:14:38 -0500]: * Gavin Sinclair [2005-06-01 23:28:52 +1000]: > On Wednesday, June 1, 2005, 11:00:40 PM, Jim wrote: > > > I don't understand how you would use Gem.activate. > > If I start a new app, what do I do? Something like?: > > > require 'rubygems' > > Gem.activate('rake', '1.1.1') > > > I think I like the simple activate, or even activate_gem better. > > > activate_gem 'RubyInline', '= 3.2.2' > > require 'inline' > > The only difference is the name: > > Gem.activate 'RubyInline', '= 3.2.2' > require 'inline' I understand that we want to control the namespace, but for some reason (at least for now) I like > > activate_gem 'RubyInline', '= 3.2.2' better. The Gem#whatever feels cumbersome and reminds me of Math::whatever. I assume that I could also do the following? include Gem activate 'RubyInline', '= 3.2.2.' -- Jim Freeze Theory and practice are the same, in theory. -- Ryan Davis From rubygems at freeze.org Wed Jun 1 22:55:52 2005 From: rubygems at freeze.org (Jim Freeze) Date: Wed Jun 1 22:45:31 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: References: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> Message-ID: <20050602025552.GB4526@freeze.org> * Hugh Sasse [2005-06-01 21:26:46 +0100]: > sense. (-: Of course it would have to have LOTS of tests, because > as Dave and Andy have told us "select isn't broken" :-) Wow, what a memory. -- Jim Freeze Theory and practice are the same, in theory. -- Ryan Davis From rubygems at freeze.org Wed Jun 1 23:13:17 2005 From: rubygems at freeze.org (Jim Freeze) Date: Wed Jun 1 23:02:46 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> References: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> Message-ID: <20050602031317.GC4526@freeze.org> * Jim Weirich [2005-06-01 17:17:22 -0000]: > >>> I think I like the simple activate, or even activate_gem better. > >> > >> Gem.activate 'RubyInline', '= 3.2.2' > >> > This started off as a discussion of require_gem and how it is really doing > two things (1) moving a gem's directories into the load path and (2) > requiring any files marked as autorequire in the gem. > > Eric has suggested activate (or activate_gem, or Gem.activate): > Other terms are possible. "use" (and its variations use_gem and Gem.use) > was considered but the Perlness of the work was a bit off-putting. > "enable" is another possibility. Since this new command is only needed > when specifying versions, something like "lockdown_version" is also > possible. Here is a list of possible names that I have seen (and some orthogonal counterparts that I have added) 01) require_gem 02) gem_require 03) select_gem 04) gem_select 05) activate_gem 06) gem_activate # reminds me of "wonder twin powers...activate!" 07) use_gem 08) gem_use 09) enable_gem 10) gem_enable 11) Gem.require 12) Gem.select 13) Gem.activate 14) Gem.use 15) Gem.enable 16) activate 17) lockdown_version 18) set_version 19) add_gem 20) queue_gem 99) set_the_load_path_for_a_gem_with_said_version_so_it_will_require_the_correct_version_automatically -- Jim Freeze Theory and practice are the same, in theory. -- Ryan Davis From rubygems at freeze.org Thu Jun 2 08:04:43 2005 From: rubygems at freeze.org (Jim Freeze) Date: Thu Jun 2 07:53:44 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <20050602031317.GC4526@freeze.org> References: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> <20050602031317.GC4526@freeze.org> Message-ID: <20050602120443.GA9694@freeze.org> * Jim Freeze [2005-06-01 22:13:17 -0500]: > 05) activate_gem > 06) gem_activate # reminds me of "wonder twin powers...activate!" > 13) Gem.activate > 16) activate Which reminds me, will there be a deactivate? -- Jim Freeze Theory and practice are the same, in theory. -- Ryan Davis From jim at weirichhouse.org Thu Jun 2 09:25:38 2005 From: jim at weirichhouse.org (Jim Weirich) Date: Thu Jun 2 09:18:35 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <20050602120443.GA9694@freeze.org> References: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org><20050602031317.GC4526@freeze.org> <20050602120443.GA9694@freeze.org> Message-ID: <55713.192.223.163.5.1117718738.squirrel@weirichhouse.org> Jim Freeze said: >> 05) activate_gem >> 06) gem_activate # reminds me of "wonder twin powers...activate!" >> 13) Gem.activate >> 16) activate > > Which reminds me, will there be a deactivate? None currently planned. Do you have a reasonable use case for one? -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas) From hgs at dmu.ac.uk Thu Jun 2 09:53:39 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Thu Jun 2 09:48:17 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <20050602031317.GC4526@freeze.org> References: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> <20050602031317.GC4526@freeze.org> Message-ID: On Wed, 1 Jun 2005, Jim Freeze wrote: > Here is a list of possible names that I have seen (and some orthogonal > counterparts that I have added) > > 01) require_gem + > 02) gem_require + > 03) select_gem +++ > 04) gem_select +++ > 05) activate_gem > 06) gem_activate # reminds me of "wonder twin powers...activate!" > 07) use_gem > 08) gem_use > 09) enable_gem ++ > 10) gem_enable ++ > 11) Gem.require > 12) Gem.select > 13) Gem.activate > 14) Gem.use > 15) Gem.enable > 16) activate > 17) lockdown_version > 18) set_version > 19) add_gem > 20) queue_gem 21) cue_gem (perhaps?) > 99) > set_the_load_path_for_a_gem_with_said_version_so_it_will_require_the_correct_version_automatically (A catchy little number that didn't make it onto "Ummagumma") I think I prefer the ones that integrate the whole gem business into ruby, without having to specify Gem::something or Gem.sumeoting. Any point in setting up a vote page for this, so we can collect opinions? Hugh From agorilla at gmail.com Thu Jun 2 10:04:14 2005 From: agorilla at gmail.com (Bill Guindon) Date: Thu Jun 2 09:57:10 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: References: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> <20050602031317.GC4526@freeze.org> Message-ID: <67a2229205060207045cc6be0a@mail.gmail.com> On 6/2/05, Hugh Sasse wrote: > On Wed, 1 Jun 2005, Jim Freeze wrote: > > > Here is a list of possible names that I have seen (and some orthogonal > > counterparts that I have added) > > > > 01) require_gem + > > 02) gem_require + > > 03) select_gem +++ > > 04) gem_select +++ > > 05) activate_gem > > 06) gem_activate # reminds me of "wonder twin powers...activate!" > > 07) use_gem > > 08) gem_use > > 09) enable_gem ++ > > 10) gem_enable ++ > > 11) Gem.require > > 12) Gem.select > > 13) Gem.activate > > 14) Gem.use > > 15) Gem.enable > > 16) activate > > 17) lockdown_version > > 18) set_version > > 19) add_gem > > 20) queue_gem > 21) cue_gem (perhaps?) > > 99) > > set_the_load_path_for_a_gem_with_said_version_so_it_will_require_the_correct_version_automatically > (A catchy little number that didn't make it onto "Ummagumma") > > I think I prefer the ones that integrate the whole gem business into > ruby, without having to specify Gem::something or Gem.sumeoting. Funny you should use that word, as Gem.specify was running through my mind. > Any point in setting up a vote page for this, so we can collect > opinions? > > Hugh > _______________________________________________ > Rubygems-developers mailing list > Rubygems-developers@rubyforge.org > http://rubyforge.org/mailman/listinfo/rubygems-developers > -- Bill Guindon (aka aGorilla) From hgs at dmu.ac.uk Thu Jun 2 10:15:36 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Thu Jun 2 10:08:39 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <67a2229205060207045cc6be0a@mail.gmail.com> References: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> <20050602031317.GC4526@freeze.org> <67a2229205060207045cc6be0a@mail.gmail.com> Message-ID: On Thu, 2 Jun 2005, Bill Guindon wrote: > On 6/2/05, Hugh Sasse wrote: >> On Wed, 1 Jun 2005, Jim Freeze wrote: >> >>> Here is a list of possible names that I have seen (and some orthogonal >>> counterparts that I have added) >>> >>> 01) require_gem + >>> 02) gem_require + >>> 03) select_gem +++ I forgot to state explicity that those + chars I added were my vote. I should have done something to the quoting, to avoid false attribution... [...] >> I think I prefer the ones that integrate the whole gem business into >> ruby, without having to specify Gem::something or Gem.sumeoting. > > Funny you should use that word, as Gem.specify was running through my mind. Yes, that would be good too. > Hugh From halostatue at gmail.com Thu Jun 2 10:19:06 2005 From: halostatue at gmail.com (Austin Ziegler) Date: Thu Jun 2 10:12:02 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: References: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> <20050602031317.GC4526@freeze.org> <67a2229205060207045cc6be0a@mail.gmail.com> Message-ID: <9e7db91105060207196cb242cc@mail.gmail.com> I like find_gem_version, personally. -austin From rubygems at freeze.org Thu Jun 2 10:31:23 2005 From: rubygems at freeze.org (Jim Freeze) Date: Thu Jun 2 10:20:22 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <55713.192.223.163.5.1117718738.squirrel@weirichhouse.org> References: <20050602120443.GA9694@freeze.org> <55713.192.223.163.5.1117718738.squirrel@weirichhouse.org> Message-ID: <20050602143123.GA10329@freeze.org> * Jim Weirich [2005-06-02 13:25:38 -0000]: > > Jim Freeze said: > >> 05) activate_gem > >> 06) gem_activate # reminds me of "wonder twin powers...activate!" > >> 13) Gem.activate > >> 16) activate > > > > Which reminds me, will there be a deactivate? > > None currently planned. Do you have a reasonable use case for one? Well, I don't think it would make sense to do an activate, require the gem, and then change the active gem since there is not a clean way to un-require a gem. However, consider the following scenario: activate some_gemlib, "= 1.2.3" # this activates some_subgemlib, "= 1.0.0" # but the libraries are not loaded deactivate some_subgemlib activate some_subgemlib, "= 2.0.0" # go about business as usual with some_gemlib now using v 2.0.0 of # some_subgemlib However, this may be equivalent to: activate some_gemlib, "= 1.2.3" # this activates some_subgemlib, "= 1.0.0" # no deactivate statement. Is overridden with second activate activate some_subgemlib, "= 2.0.0" # go about business as usual using some_subgemlib v 2.0.0. Thoughts? -- Jim Freeze Theory and practice are the same, in theory. -- Ryan Davis From rubygems at freeze.org Thu Jun 2 10:33:05 2005 From: rubygems at freeze.org (Jim Freeze) Date: Thu Jun 2 10:22:05 2005 Subject: [Rubygems-developers] require_gem/autorequire vs require. In-Reply-To: <9e7db91105060207196cb242cc@mail.gmail.com> References: <13561.192.223.163.5.1117646242.squirrel@weirichhouse.org> <20050602031317.GC4526@freeze.org> <67a2229205060207045cc6be0a@mail.gmail.com> <9e7db91105060207196cb242cc@mail.gmail.com> Message-ID: <20050602143305.GB10329@freeze.org> * Austin Ziegler [2005-06-02 10:19:06 -0400]: > I like find_gem_version, personally. Ok, so it found it. Now what? :) What if it doesn't find it? I would prefer something that indicates staging, cueing or some type of ready'ing of the gem. -- Jim Freeze Theory and practice are the same, in theory. -- Ryan Davis From scholz at scriptolutions.com Thu Jun 2 16:13:59 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Thu Jun 2 16:07:07 2005 Subject: [Rubygems-developers] Missing functions Message-ID: <5251662281.20050603031359@scriptolutions.com> Hello rubygems-developers, as i'm currently writting a Ruby Gems Frontend for ArachnoRuby i run into a lot of problems. First i found the following things missing: 1) Specifications for Remote Gems are not retrievable 2) "gem check" seems not to work for individual file as i can't set a gemname. But why do we then have a --version option ? It is very important to run unit tests and other checks (alien files) on a specific gem. 3) Give a detailed description of a GEM. Simply dumping a YAML file of the Specification is a easy hack but it's not what people want to see, especially on a front end. So a more readable output (like the "dependency" which is already implemented) should be implemented. 4) Update should also work on individual gems or list of gems. Updating all gems is too restrictive as it results in unwanted garbage on your disk and huge downloads. Can this feature be put on the TODO list for future versions ? -- Best regards, Lothar mailto:program@scriptolutions.com From ryand-ruby at zenspider.com Thu Jun 2 16:32:23 2005 From: ryand-ruby at zenspider.com (Ryan Davis) Date: Thu Jun 2 16:34:58 2005 Subject: [Rubygems-developers] Missing functions In-Reply-To: <5251662281.20050603031359@scriptolutions.com> References: <5251662281.20050603031359@scriptolutions.com> Message-ID: <9AA1220E-E26B-4199-A77C-5AAB6E5A1161@zenspider.com> On Jun 2, 2005, at 1:13 PM, Lothar Scholz wrote: > 1) Specifications for Remote Gems are not retrievable good catch: 506 % gem specification -r ParseTree (Remote 'info' operation is not yet implemented.) > 2) "gem check" seems not to work for individual file as > i can't set a gemname. But why do we then have a --version option ? > It is very important to run unit tests and other checks (alien > files) on a specific gem. I think check is an auditing function to make sure all your files are there and "alien" files are (optionally) reported. I don't think it runs the unit tests again, but I could be wrong. I think it'd be good to add a new command "test" or somesuch. > 3) Give a detailed description of a GEM. > Simply dumping a YAML file of the Specification is a easy hack but > it's not what people want to see, especially on a front end. So a > more readable output (like the "dependency" which is already > implemented) should be implemented. Well, in your case, you don't need this, because you can pipe the YAML, parse it, and then make it prettier. But in general, I agree that there should be something more like pkg_info on FreeBSD's port system. Very readable. > 4) Update should also work on individual gems or list of gems. > Updating all gems is too restrictive as it results in unwanted > garbage on your disk and huge downloads. Arguments: GEMNAME(s) name of gem(s) to update Does this not work? I haven't tested it because I am already up to date. > Can this feature be put on the TODO list for future versions ? Please file individual bugs at http://rubyforge.org/projects/ rubygems/ . If you file them, they you remain on the notification list for the bugs and can track the progress easier. -- ryand-ruby@zenspider.com - Seattle.rb - http://www.zenspider.com/ seattle.rb http://blog.zenspider.com/ - http://rubyforge.org/projects/ruby2c From jim at weirichhouse.org Thu Jun 2 17:40:37 2005 From: jim at weirichhouse.org (Jim Weirich) Date: Thu Jun 2 17:33:34 2005 Subject: [Rubygems-developers] Missing functions In-Reply-To: <5251662281.20050603031359@scriptolutions.com> References: <5251662281.20050603031359@scriptolutions.com> Message-ID: <52329.192.223.163.5.1117748437.squirrel@weirichhouse.org> Thanks, Lothar, for the feedback. Lothar Scholz said: > First i found the following things missing: > > 1) Specifications for Remote Gems are not retrievable This is a good idea ... done right, we could also use it to do incremental updates the the source cache. This gets more and more important as the number of gems keeps increasing. > 2) "gem check" seems not to work for individual file as > i can't set a gemname. But why do we then have a --version option ? > It is very important to run unit tests and other checks (alien > files) on a specific gem. Ryan's comments are correct, this is more of a file integrity check than a unit test runner. (Hmmm ... although the comment on the -v option does mention unit tests. I'll check this out and get back to you.) I could have sworn that unit testing was broken out into a separate command. Perhaps I was thinking about the rdoc command which is now a separate command. I agree, test needs the same treatment. > 3) Give a detailed description of a GEM. > Simply dumping a YAML file of the Specification is a easy hack but > it's not what people want to see, especially on a front end. So a > more readable output (like the "dependency" which is already > implemented) should be implemented. Ok, I hear you. There's a lot of information in the gem. Any thoughts on how you would like to see it displayed. Although, if you are doing a front end, I would imagine the YAML would be what you want for easy parsing. > 4) Update should also work on individual gems or list of gems. > Updating all gems is too restrictive as it results in unwanted > garbage on your disk and huge downloads. The update command should work for invidual gems. Are you having problems with it? -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas) From scholz at scriptolutions.com Thu Jun 2 18:14:24 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Thu Jun 2 18:07:38 2005 Subject: [Rubygems-developers] Why does an install command an update of the Gem source index ? Message-ID: <458886796.20050603051424@scriptolutions.com> Hello, I'm on a 40Kbit dialup and this is driving me nuts. I can't see any need for this update, in fact i don't see any need to cache anything from the remote source. Isn't RubyGems working like a classis client server application ? -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From scholz at scriptolutions.com Thu Jun 2 18:36:46 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Thu Jun 2 18:29:48 2005 Subject: [Rubygems-developers] Missing functions In-Reply-To: <52329.192.223.163.5.1117748437.squirrel@weirichhouse.org> References: <5251662281.20050603031359@scriptolutions.com> <52329.192.223.163.5.1117748437.squirrel@weirichhouse.org> Message-ID: <8960228968.20050603053646@scriptolutions.com> Hello Jim, >> 3) Give a detailed description of a GEM. >> Simply dumping a YAML file of the Specification is a easy hack but >> it's not what people want to see, especially on a front end. So a >> more readable output (like the "dependency" which is already >> implemented) should be implemented. JW> Ok, I hear you. There's a lot of information in the gem. Any thoughts on JW> how you would like to see it displayed. My idea would be BlueCloth formatted text output. I will now write my own subroutine to get the data out of the specs. But i'm scared that this will be out of date soon, so i would prefer a better looking and maintained format. JW> Although, if you are doing a front end, I would imagine the YAML would be JW> what you want for easy parsing. >> 4) Update should also work on individual gems or list of gems. >> Updating all gems is too restrictive as it results in unwanted >> garbage on your disk and huge downloads. JW> The update command should work for invidual gems. Are you having problems JW> with it? Okay it was just a documentation problem. Seems to work now http://docs.rubygems.org/read/chapter/10#page30 is telling me something else. But this documentation has a lot of bugs. Is it a wiki or can someone give me the email address of the documentation maintainer ? -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From hgs at dmu.ac.uk Thu Jun 2 19:35:21 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Thu Jun 2 19:28:55 2005 Subject: [Rubygems-developers] Why does an install command an update of the Gem source index ? In-Reply-To: <458886796.20050603051424@scriptolutions.com> References: <458886796.20050603051424@scriptolutions.com> Message-ID: On Fri, 3 Jun 2005, Lothar Scholz wrote: > Hello, > > I'm on a 40Kbit dialup and this is driving me nuts. > I can't see any need for this update, in fact i don't > see any need to cache anything from the remote source. I think you have a point, but I think it would be sensible to cache the info from the remote source locally. Rubygems-0.8.10 has a cache, but it seems to need to figure out whether it is the system or the user cache, and I've not understood what is happening there yet. If it can't write to the system cache then at least reading from it would help here. And I don't know if it checks the cache situation before getting /yaml.Z (index file) But I think the source_index method in lib/rubygems/remote_installer.rb should look for a SHA1 sum of yaml.Z before it decides whether to get it or not. Supporting If-Modified-Since and/or Etags would help also. Or it could at least check that the size hasn't changed. I'd send a patch but I've not figured out where the caching comes into play yet. The SHA1 bit is easy in ruby: the script and the result of feeding it itself are :- #!/bin/sh ruby -r digest/sha1 -e "puts Digest::SHA1.new(File.open('$1', 'rb').read).hexdigest" 3a4b9a45ef044a11661bc5bf92eac3a488eb5186 Once rubygems decides to update then HTTP does allow ranges, but I'm not sure if partial updates are practical given that we'd have to store N past versions of /yaml.Z to update against. > Isn't RubyGems working like a classis client server > application ? You mean, it (as|pre)sumes easy availability? > > Hugh From scholz at scriptolutions.com Fri Jun 3 00:59:28 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Fri Jun 3 00:52:38 2005 Subject: [Rubygems-developers] Why does an install command an update of the Gem source index ? In-Reply-To: References: <458886796.20050603051424@scriptolutions.com> Message-ID: <119793234.20050603115928@scriptolutions.com> Hello Hugh, Friday, June 3, 2005, 6:35:21 AM, you wrote: HS> I think you have a point, but I think it would be sensible to cache HS> the info from the remote source locally. Rubygems-0.8.10 has a HS> cache, but it seems to need to figure out whether it is the system HS> or the user cache, and I've not understood what is happening there HS> yet. If it can't write to the system cache then at least reading HS> from it would help here. And I don't know if it checks the cache HS> situation before getting /yaml.Z (index file) If i understand correctly then yaml.Z is a complete index of all packages and all versions. And this is a very bad idea. Usefull in the past where RubyGems was not popular and had a handfull of packages, so the developer could work on something different. But i think now the situation is worse enough to completely rewrite the whole handling. >> Isn't RubyGems working like a classis client server >> application ? HS> You mean, it (as|pre)sumes easy availability? In the way that as less data as possible should be store on the local system and minimized data transfer is preferred (which in this case is just a conclusion from the first point). -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From hgs at dmu.ac.uk Fri Jun 3 05:25:48 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Fri Jun 3 05:18:58 2005 Subject: [Rubygems-developers] Why does an install command an update of the Gem source index ? In-Reply-To: <119793234.20050603115928@scriptolutions.com> References: <458886796.20050603051424@scriptolutions.com> <119793234.20050603115928@scriptolutions.com> Message-ID: On Fri, 3 Jun 2005, Lothar Scholz wrote: > Hello Hugh, > > Friday, June 3, 2005, 6:35:21 AM, you wrote: > > > HS> I think you have a point, but I think it would be sensible to cache > HS> the info from the remote source locally. Rubygems-0.8.10 has a [on the basis that you shouldn't have to keep getting it] > > If i understand correctly then yaml.Z is a complete index of all > packages and all versions. And this is a very bad idea. Usefull in the > past where RubyGems was not popular and had a handfull of packages, so [...] OK, if you need the index file {intermittent connection, for example) then you are going to need the data it indexes, i.e. all the gems. So really only the server and its mirrors should have that. Then we need some way to query the server. Besides, if the index file gets too big it will take too long to update. We may need a database instead in the future. Is that how you see this working, or do you have something else in mind? > >>> Isn't RubyGems working like a classis client server >>> application ? [HGS> how?] > In the way that as less data as possible should be store on the local > system and minimized data transfer is preferred (which in this case > is just a conclusion from the first point). Minimized data transfer has been addressed somewhat by compression, but I think your first point about "does the client actually need the remote index at all?" is a good one. > Hugh From jim at weirichhouse.org Fri Jun 3 07:44:51 2005 From: jim at weirichhouse.org (Jim Weirich) Date: Fri Jun 3 07:37:02 2005 Subject: [Rubygems-developers] Why does an install command an update of the Gem source index ? In-Reply-To: References: <458886796.20050603051424@scriptolutions.com> Message-ID: <200506030744.52207.jim@weirichhouse.org> On Thursday 02 June 2005 07:35 pm, Hugh Sasse wrote: > But I think the source_index method in > lib/rubygems/remote_installer.rb should look for a SHA1 sum of > yaml.Z before it decides whether to get it or not. Supporting > If-Modified-Since and/or Etags would help also. Or it could at > least check that the size hasn't changed. RubyGems does check for the size. I thought it also used if-modified-since, but don't see it in the code. I know we tried it at one point. IIRC, it may have had trouble behind certain proxies, and I don't recall the workaround off the top of my head. > Rubygems-0.8.10 has a > cache, but it seems to need to figure out whether it is the system > or the user cache, and I've not understood what is happening there > yet. [...] We do cache the specs locally, in a system-wide cache and a user-specific cache for those times the system-wide cache is non-writable (which is often the case for Unix systems and almost never the case in Windows systems). Unfortunately, there are several gem releases every day and the cache goes out of date pretty fast. I consider that a good thing, but it does present some special challenges. Making the spec listing download more efficient has been a topic of discussion in the past. We are well aware of the current limitations. Let me share some of my ideas in this area. Being able to incrementally update the cache would be a big win, especially with the number of gems growing each day, just updating the ones that changed would be fairly zippy. The key is to do it in a way where you don't suddenly require everyone in the world to update their copy of RubyGems at the same time (because the server protocol is changed). Another feature of the current server protocol that I really like is that it can be implemented with a standard static file server. In other words, you can dump the gems in a directory served by an apache server, run an update script to update the metadata in that directory and you have a gem server. This is perfect for RubyForge and is also how I run my personal gem server (http://onestepback.org/betagems). I think we can upgrade the protocol without requiring a dynamic server configuration. Here's the plan. In addition to the current yaml file, make every individual gem spec available on the server as well. Also keep a small index that maps gem name to its latest version. (While the total number of gem-version combinations grows rapidly, the total number of unique gems (ignoring versions) grows much more slowly ... currently its under 300). When gems determines that it is time to update the cache, it first attempts to download the version map index. It then does individual downloads of only the gem specs that are out of date. At some point it gives up and decides that it would be more efficient to download the entire yaml file in a single download and then it falls back to the old method. If it fails to get the version map index, it also fails back to the old method. This allows it to work with old servers that don't yet support the new protocol. Of course, compressed versions of each of the files can be made available, and gems will attempt to get the compressed versions first (as it does with the yaml file today). Anyways, that's the plan. All we need is for someone to implement it. -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas) From chad at chadfowler.com Fri Jun 3 09:29:32 2005 From: chad at chadfowler.com (chad@chadfowler.com) Date: Fri Jun 3 08:15:41 2005 Subject: [Rubygems-developers] Why does an install command an update of the Gem source index ? In-Reply-To: <200506030744.52207.jim@weirichhouse.org> References: <458886796.20050603051424@scriptolutions.com> <200506030744.52207.jim@weirichhouse.org> Message-ID: <4709.213.201.133.230.1117805372.squirrel@213.201.133.230> > On Thursday 02 June 2005 07:35 pm, Hugh Sasse wrote: >> But I think the source_index method in >> lib/rubygems/remote_installer.rb should look for a SHA1 sum of >> yaml.Z before it decides whether to get it or not. Supporting >> If-Modified-Since and/or Etags would help also. Or it could at >> least check that the size hasn't changed. > > RubyGems does check for the size. I thought it also used > if-modified-since, > but don't see it in the code. I know we tried it at one point. IIRC, it > may > have had trouble behind certain proxies, and I don't recall the workaround > off the top of my head. > Forgive my silence as of late---just finishing up a trip to India (I'm in the lobby of my hotel in Amsterdam now). I implemented If-Modified-Since, but there was something specific to _rubyforge_ that made it never work. It worked against every other web server I tested with, but I could never get it to work against RubyForge's apache. I worked with Tom C. and we couldn't figure it out. So, Rich got tired of waiting and implemented the current size check. :) Chad From hgs at dmu.ac.uk Fri Jun 3 08:45:54 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Fri Jun 3 08:39:46 2005 Subject: [Rubygems-developers] Why does an install command an update of the Gem source index ? In-Reply-To: <200506030744.52207.jim@weirichhouse.org> References: <458886796.20050603051424@scriptolutions.com> <200506030744.52207.jim@weirichhouse.org> Message-ID: On Fri, 3 Jun 2005, Jim Weirich wrote: > On Thursday 02 June 2005 07:35 pm, Hugh Sasse wrote: >> But I think the source_index method in >> lib/rubygems/remote_installer.rb should look for a SHA1 sum of >> yaml.Z before it decides whether to get it or not. Supporting >> If-Modified-Since and/or Etags would help also. Or it could at >> least check that the size hasn't changed. > > RubyGems does check for the size. I thought it also used if-modified-since, > but don't see it in the code. I know we tried it at one point. IIRC, it may > have had trouble behind certain proxies, and I don't recall the workaround It should be possible to fall back to the default position. I might have a play with that at the weekend. > off the top of my head. > >> Rubygems-0.8.10 has a >> cache, but it seems to need to figure out whether it is the system >> or the user cache, and I've not understood what is happening there >> yet. [...] > > We do cache the specs locally, in a system-wide cache and a user-specific > cache for those times the system-wide cache is non-writable (which is often I couldn't see that without deeper exploration. Thanks > the case for Unix systems and almost never the case in Windows systems). > Unfortunately, there are several gem releases every day and the cache goes > out of date pretty fast. I consider that a good thing, but it does present > some special challenges. > > Making the spec listing download more efficient has been a topic of discussion > in the past. We are well aware of the current limitations. Let me share I certainly intended no negativity. It's an interesting problem as things get bigger, more data, more possible things to get updates, etc. > some of my ideas in this area. > > Being able to incrementally update the cache would be a big win, especially > with the number of gems growing each day, just updating the ones that changed Agreed. I can't see how to do this without holdin N back issues of the data, or making RCS/CVS/SVN a requirement of the server, which is an unpleasant constraint. Even the differential HTTP docs don't have much advice about this. > would be fairly zippy. The key is to do it in a way where you don't suddenly > require everyone in the world to update their copy of RubyGems at the same > time (because the server protocol is changed). Good point. > > Another feature of the current server protocol that I really like is that it > can be implemented with a standard static file server. In other words, you > can dump the gems in a directory served by an apache server, run an update > script to update the metadata in that directory and you have a gem server. > This is perfect for RubyForge and is also how I run my personal gem server > (http://onestepback.org/betagems). I think we can upgrade the protocol > without requiring a dynamic server configuration. This is good as it would encourage mirroring. [I wonder how easy that is now %x{gemserver --mirror $URL} ?? ] But I still think it might be useful to explore not sending the indices at all, and adding commands to the server (where there is one) for querying the index. > > Here's the plan. In addition to the current yaml file, make every individual > gem spec available on the server as well. Also keep a small index that maps > gem name to its latest version. (While the total number of gem-version > combinations grows rapidly, the total number of unique gems (ignoring > versions) grows much more slowly ... currently its under 300). When gems That duplication would be necessary for a files-only based server, and a server you could query would have to support that API. > determines that it is time to update the cache, it first attempts to download > the version map index. It then does individual downloads of only the gem > specs that are out of date. At some point it gives up and decides that it > would be more efficient to download the entire yaml file in a single download I suppose the cutoff point would depend on connection speed to some extent. > and then it falls back to the old method. If it fails to get the version map > index, it also fails back to the old method. This allows it to work with old > servers that don't yet support the new protocol. Of course, compressed > versions of each of the files can be made available, and gems will attempt to > get the compressed versions first (as it does with the yaml file today). > > Anyways, that's the plan. All we need is for someone to implement it. that seems like a good plan. I also wonder if it might be possible to use ypath to record updates to the /yaml.Z, so one only needs to download the update code newer than one's own yaml index. The only thing about that is that it would probably need to be executable code and may thus be a potential security hole. The only other thing I can think of is to split the yaml.Z file and allow people to get the parts they need, and re-assemble it. http://www.eng.cse.dmu.ac.uk/~hgs/ruby/splitter.rb The splitting would need to be done on Gem boundaries, rather than on size like that does. 40 kBits a second is -- assume about 8 kBits/sec overhead -- about 4kbytes/sec. So if each chunk is about 40kbytes thats about 10 secs per gem to update, as an update would mean the whole chunk must be obtained. Would that be sufficiently useful to Lothar? > Hugh From hgs at dmu.ac.uk Fri Jun 3 08:50:03 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Fri Jun 3 08:43:46 2005 Subject: [Rubygems-developers] Why does an install command an update of In-Reply-To: <4709.213.201.133.230.1117805372.squirrel@213.201.133.230> References: <458886796.20050603051424@scriptolutions.com> <200506030744.52207.jim@weirichhouse.org> <4709.213.201.133.230.1117805372.squirrel@213.201.133.230> Message-ID: On Fri, 3 Jun 2005, chad@chadfowler.com wrote: > Forgive my silence as of late---just finishing up a trip to India (I'm in > the lobby of my hotel in Amsterdam now). > > I implemented If-Modified-Since, but there was something specific to > _rubyforge_ that made it never work. It worked against every other web > server I tested with, but I could never get it to work against RubyForge's > apache. I worked with Tom C. and we couldn't figure it out. So, Rich got > tired of waiting and implemented the current size check. :) Yes, and I think Apache is particulary bad at this. I've tried to figure out how to enable it here, and it is not easy. > > Chad > Thank you, Hugh From gsinclair at soyabean.com.au Fri Jun 3 11:01:45 2005 From: gsinclair at soyabean.com.au (Gavin Sinclair) Date: Fri Jun 3 10:55:36 2005 Subject: [Rubygems-developers] Why does an install command an update of the Gem source index ? In-Reply-To: References: <458886796.20050603051424@scriptolutions.com> <119793234.20050603115928@scriptolutions.com> Message-ID: <145373555925.20050604010145@soyabean.com.au> On Friday, June 3, 2005, 7:25:48 PM, Hugh wrote: > Minimized data transfer has been addressed somewhat by compression, > but I think your first point about "does the client actually need > the remote index at all?" is a good one. It's really nice to be able to know about remote gems without having to query the server all the time. I guess that's the idea behind it. Gavin From jim at weirichhouse.org Fri Jun 3 11:16:30 2005 From: jim at weirichhouse.org (Jim Weirich) Date: Fri Jun 3 11:09:25 2005 Subject: [Rubygems-developers] Why does an install command an update ofthe Gem source index ? In-Reply-To: References: <458886796.20050603051424@scriptolutions.com><200506030744.52207.jim@weirichhouse.org> Message-ID: <7523.192.223.163.5.1117811790.squirrel@weirichhouse.org> Hugh Sasse said: > that seems like a good plan. I also wonder if it might be possible > to use ypath to record updates to the /yaml.Z, so one only needs to > download the update code newer than one's own yaml index. The only > thing about that is that it would probably need to be executable > code and may thus be a potential security hole. The natural split is at each gem boundary. And once a gem exists, it probably doesnt change often, so once it is cached, you've got it. After reflect, I realized my scheme was a bit too simple. You need to included every version of every gem in the index. And rather than keying on verion number, you need to key on either date or SHA1 hash. I'm liking the hash option. Today, a SHA1 hash index for all of the available gems is still undef 60Kb. Another option to reduce bandwidth is to toss the file lists in each of the downloaded gem specs. You only need that while installing (and at that point you have the full gem). Removing the file lists drops they yaml file down to 1/4 its original size. -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas) From hgs at dmu.ac.uk Fri Jun 3 12:21:09 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Fri Jun 3 12:14:10 2005 Subject: [Rubygems-developers] Why does an install command an update In-Reply-To: <7523.192.223.163.5.1117811790.squirrel@weirichhouse.org> References: <458886796.20050603051424@scriptolutions.com><200506030744.52207.jim@weirichhouse.org> <7523.192.223.163.5.1117811790.squirrel@weirichhouse.org> Message-ID: On Fri, 3 Jun 2005, Jim Weirich wrote: > > Hugh Sasse said: > > I'm liking the hash option. Today, a SHA1 hash index for all of the > available gems is still undef 60Kb. > > Another option to reduce bandwidth is to toss the file lists in each of > the downloaded gem specs. [s/\n//; # hgs] You mean the bits like files: - lib/cgikit - lib/cgikit.rb - lib/cgikit/components - lib/cgikit/components/CKErrorPage - lib/cgikit/components/CKErrorPage/CKErrorPage.ckd - lib/cgikit/components/CKErrorPage/CKErrorPage.html - lib/cgikit/components/CKErrorPage/CKErrorPage.rb ? There must be a way to express this more concisely. Dir doesn't YAML::dump in such a way as to pass the name and the entries, but that can be changed by yaml_properties or something, can't it?. Not sure about backwards compatibility..... > You only need that while installing (and at I'm not sure how gems are packed up yet, I'll need to read that bit, but could one install it without this info? I mean is it held in the archive format also -- all the gems in rubygems-0.8.10/tests/data seem to start with data.tar.gz, so if they are in tgz form then the paths should be in there already? > that point you have the full gem). Removing the file lists drops they > yaml file down to 1/4 its original size. Maybe a gem should have an install spec and meta[?] spec > Hugh From rubygems at freeze.org Fri Jun 3 13:10:01 2005 From: rubygems at freeze.org (Jim Freeze) Date: Fri Jun 3 12:58:53 2005 Subject: [Rubygems-developers] Why does an install command an update In-Reply-To: References: <7523.192.223.163.5.1117811790.squirrel@weirichhouse.org> Message-ID: <20050603171001.GA16778@freeze.org> * Hugh Sasse [2005-06-03 17:21:09 +0100]: > On Fri, 3 Jun 2005, Jim Weirich wrote: > > >Another option to reduce bandwidth is to toss the file lists in each of > >the downloaded gem specs. [s/\n//; # hgs] > > You mean the bits like > > files: > - lib/cgikit > - lib/cgikit.rb > - lib/cgikit/components > - lib/cgikit/components/CKErrorPage > - lib/cgikit/components/CKErrorPage/CKErrorPage.ckd > - lib/cgikit/components/CKErrorPage/CKErrorPage.html > - lib/cgikit/components/CKErrorPage/CKErrorPage.rb > > There must be a way to express this more concisely. Dir doesn't > YAML::dump in such a way as to pass the name and the entries, but > that can be changed by yaml_properties or something, can't it?. > Not sure about backwards compatibility..... FWIW, I coded up this little snippet: ----------- files = {"files" => %w( lib/cgikit lib/cgikit.rb lib/cgikit/components lib/cgikit/components/CKErrorPage lib/cgikit/components/CKErrorPage/CKErrorPage.ckd lib/cgikit/components/CKErrorPage/CKErrorPage.html lib/cgikit/components/CKErrorPage/CKErrorPage.rb ) } require 'yaml' puts files.to_yaml puts files.to_yaml.size def optimize_file_list(files) hash = Hash.new { |h,k| h[k] = [] } files.each { |file| dir = File.dirname(file) filename = File.basename(file) hash[dir] << filename } hash end files["files"] = optimize_file_list(files["files"]) puts files.to_yaml puts files.to_yaml.size ---------- Running this gives: % ruby ftest.rb --- files: - lib/cgikit - lib/cgikit.rb - lib/cgikit/components - lib/cgikit/components/CKErrorPage - lib/cgikit/components/CKErrorPage/CKErrorPage.ckd - lib/cgikit/components/CKErrorPage/CKErrorPage.html - lib/cgikit/components/CKErrorPage/CKErrorPage.rb 271 --- files: lib/cgikit/components/CKErrorPage: - CKErrorPage.ckd - CKErrorPage.html - CKErrorPage.rb lib/cgikit/components: - CKErrorPage lib/cgikit: - components lib: - cgikit - cgikit.rb 229 A slight savings of 15%. Not as much as I would have expected. -- Jim Freeze Theory and practice are the same, in theory. -- Ryan Davis From hgs at dmu.ac.uk Fri Jun 3 14:22:30 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Fri Jun 3 14:15:30 2005 Subject: [Rubygems-developers] Why does an install command an update In-Reply-To: <20050603171001.GA16778@freeze.org> References: <7523.192.223.163.5.1117811790.squirrel@weirichhouse.org> <20050603171001.GA16778@freeze.org> Message-ID: On Fri, 3 Jun 2005, Jim Freeze wrote: > * Hugh Sasse [2005-06-03 17:21:09 +0100]: > >> On Fri, 3 Jun 2005, Jim Weirich wrote: >> >>> Another option to reduce bandwidth is to toss the file lists in each of >>> the downloaded gem specs. [s/\n//; # hgs] >> >> You mean the bits like >> >> files: >> - lib/cgikit >> - lib/cgikit.rb >> - lib/cgikit/components >> - lib/cgikit/components/CKErrorPage >> - lib/cgikit/components/CKErrorPage/CKErrorPage.ckd >> - lib/cgikit/components/CKErrorPage/CKErrorPage.html >> - lib/cgikit/components/CKErrorPage/CKErrorPage.rb >> >> There must be a way to express this more concisely. Dir doesn't >> YAML::dump in such a way as to pass the name and the entries, but >> that can be changed by yaml_properties or something, can't it?. >> Not sure about backwards compatibility..... > > FWIW, I coded up this little snippet: > > ----------- > files = {"files" => > %w( > lib/cgikit > lib/cgikit.rb > lib/cgikit/components > lib/cgikit/components/CKErrorPage > lib/cgikit/components/CKErrorPage/CKErrorPage.ckd > lib/cgikit/components/CKErrorPage/CKErrorPage.html > lib/cgikit/components/CKErrorPage/CKErrorPage.rb > ) > } > > require 'yaml' > > puts files.to_yaml > puts files.to_yaml.size > > def optimize_file_list(files) > hash = Hash.new { |h,k| h[k] = [] } > files.each { |file| > dir = File.dirname(file) > filename = File.basename(file) > hash[dir] << filename > } > hash > end > > files["files"] = optimize_file_list(files["files"]) > puts files.to_yaml > puts files.to_yaml.size > ---------- > > Running this gives: > > % ruby ftest.rb > --- > files: > - lib/cgikit > - lib/cgikit.rb > - lib/cgikit/components > - lib/cgikit/components/CKErrorPage > - lib/cgikit/components/CKErrorPage/CKErrorPage.ckd > - lib/cgikit/components/CKErrorPage/CKErrorPage.html > - lib/cgikit/components/CKErrorPage/CKErrorPage.rb > 271 > --- > files: > lib/cgikit/components/CKErrorPage: > - CKErrorPage.ckd > - CKErrorPage.html > - CKErrorPage.rb > lib/cgikit/components: > - CKErrorPage > lib/cgikit: > - components > lib: > - cgikit > - cgikit.rb > 229 > > A slight savings of 15%. > Not as much as I would have expected. What about: diff -u files_in_rubygems.rb.orig files_in_rubygems.rb --- files_in_rubygems.rb.orig Fri Jun 3 18:37:50 2005 +++ files_in_rubygems.rb Fri Jun 3 19:17:02 2005 @@ -12,6 +12,7 @@ } require 'yaml' + require 'pathname' puts files.to_yaml puts files.to_yaml.size @@ -18,10 +19,26 @@ def optimize_file_list(files) hash = Hash.new { |h,k| h[k] = [] } + newhash = nil files.each { |file| - dir = File.dirname(file) - filename = File.basename(file) - hash[dir] << filename + path = Pathname.new(file) + key = nil + # move down the pathname.... + path.each_filename do |name| + if key.nil? + key = name + hash[key] = nil unless hash.has_key?(key) + newhash = hash + else + if newhash[key] + newhash[key][name] ||= nil + else + newhash[key] = {name => nil} + end + newhash = newhash[key] + key = name + end + end } hash end @@ -29,3 +46,5 @@ files["files"] = optimize_file_list(files["files"]) puts files.to_yaml puts files.to_yaml.size + +# vim:set sw=2 et: brains hgs 144 %> Which gives: brains hgs 19 %> ./files_in_rubygems.rb --- files: - lib/cgikit - lib/cgikit.rb - lib/cgikit/components - lib/cgikit/components/CKErrorPage - lib/cgikit/components/CKErrorPage/CKErrorPage.ckd - lib/cgikit/components/CKErrorPage/CKErrorPage.html - lib/cgikit/components/CKErrorPage/CKErrorPage.rb 271 --- files: lib: cgikit.rb: cgikit: components: CKErrorPage: CKErrorPage.ckd: CKErrorPage.html: CKErrorPage.rb: 174 brains hgs 20 %> Hugh From scholz at scriptolutions.com Fri Jun 3 14:58:07 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Fri Jun 3 14:51:05 2005 Subject: [Rubygems-developers] Build errors are not catched Message-ID: <3951112218.20050604015807@scriptolutions.com> Hello, I tried installing ruby_odeum and mysql on my machine. Both do c compiling and both fail to compile on my machine. But i still get the final message Successfully installed ruby_odeum-0.2.1 Installing RDoc documentation for ruby_odeum-0.2.1... I would call this an error in rubygems. -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From scholz at scriptolutions.com Fri Jun 3 15:01:57 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Fri Jun 3 14:55:00 2005 Subject: [Rubygems-developers] How to specifiy c level build options inside a gem Message-ID: <10051342296.20050604020157@scriptolutions.com> Hello, When i tried to install mysql on windows i thought that it would ask me for the library directory of the mysql driver. But it did not. Is this an error from the person who build the mysql gem or does RubyGems not offer such a functionality. On windows there is simply no way to detect a c library, so a user must specify it. -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From scholz at scriptolutions.com Fri Jun 3 15:09:32 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Fri Jun 3 15:02:36 2005 Subject: [Rubygems-developers] Feature Request: Provide RDOC on the gem server. Message-ID: <9051797437.20050604020932@scriptolutions.com> Hello, I think there should be a way to allow a user to read RDOC before installing a gem. In many cases when build options are required (see my previous posting of the mysql gem) we must have something before "install". It doesn't seem too usefull to get this information on the homepage as the specification with the homepage URL is only visible after installation. Also i think people can save some time when they can look at the gem before they install it. And for the later it would be useful to provide a way to define 3 (maybe more) special files in a gem specification: "license", "readme", "changelog". Then a user select this before installation. -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From scholz at scriptolutions.com Fri Jun 3 15:23:07 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Fri Jun 3 15:16:03 2005 Subject: [Rubygems-developers] How does the platform work together with version numbers Message-ID: <3352612187.20050604022307@scriptolutions.com> Hello, I'm confused about the "platform" specification for a gem. I think the whole idea came much later then the original implementation and is therefore not well integrated. While platform is part of the gems directory name, there is no way to specify this in other commands (update, install) and it is also not shown in the "list" command. Any thoughts how this can be better integrated. I would really like to see binary precompiled extension provided as gems. In my eyes platform should be just an orthogonal third descriminator for a gem. But extending the version number with a platform tag is also okay, this way we could reuse the -v --version option on existing commands. Okay this was the last problem i found. My Frontend is now working well and it very convenient when i compare it with pythons (manual) library management. So hope that we can turn RubyGems into one of the killer features of ruby, but it still needs a lot of work. -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From jim at weirichhouse.org Fri Jun 3 16:15:58 2005 From: jim at weirichhouse.org (Jim Weirich) Date: Fri Jun 3 16:08:52 2005 Subject: [Rubygems-developers] How does the platform work together withversion numbers In-Reply-To: <3352612187.20050604022307@scriptolutions.com> References: <3352612187.20050604022307@scriptolutions.com> Message-ID: <7598.192.223.163.5.1117829758.squirrel@weirichhouse.org> Lothar Scholz said: > While platform is part of the gems directory name, there is no way to > specify this in other commands (update, install) and it is > also not shown in the "list" command. Yes, I ran into this issue when making a compiled version of my X10 library for windows. Gems also needs to be able to automatically select a compatible platform specific version if it is available. Right now it is tough to put out a C source version and a compiled version of the same gem. > In my eyes platform should be just an orthogonal third descriminator for > a gem. But extending the version number with a platform tag is also > okay, this way we could reuse the -v --version option on existing > commands. Hmmm ... hadn't thought of extending the version option ... I kinda like that idea. > Okay this was the last problem i found. My Frontend is now working > well and it very convenient when i compare it with pythons (manual) > library > management. So hope that we can turn RubyGems into one of the killer > features of ruby, but it still needs a lot of work. Excellent! I'm looking forward to seeing this run. One question ... Is the way we handle console input and output any help in building the front end? We designed the UI interface with the possiblity of GUIs in mind, but until you actually use it for one, it is tough to know if you got it right. I'd love feedback in that area. Thanks for the feedback, Lothar. We really appreciate it. -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas) From rubygems at freeze.org Fri Jun 3 16:21:16 2005 From: rubygems at freeze.org (Jim Freeze) Date: Fri Jun 3 16:10:08 2005 Subject: [Rubygems-developers] Why does an install command an update In-Reply-To: References: <7523.192.223.163.5.1117811790.squirrel@weirichhouse.org> <20050603171001.GA16778@freeze.org> Message-ID: <20050603202116.GA17732@freeze.org> Nice optimization Hugh. More than double the savings. Here is a shorter version (don't know if it is windows compatible though): --- ftest.rb Fri Jun 3 15:12:01 2005 +++ ftest2.rb Fri Jun 3 15:10:58 2005 @@ -18,13 +18,20 @@ puts files.to_yaml.size def optimize_file_list(files) - hash = Hash.new { |h,k| h[k] = [] } + hash = {} files.each { |file| - dir = File.dirname(file) - filename = File.basename(file) - hash[dir] << filename + next if File.directory?(file) + a = file.split(/\//) + rtn = a.inject(hash) { |h,k| h[k] ||= {} } } - hash + recurs = lambda { |h,k| + if h[k].empty? + h[k] = nil + else + h[k].each { |kk,vv| recurs.call(h[k], kk) } + end + } + hash.each { |k,v| recurs.call(hash,k) } end files["files"] = optimize_file_list(files["files"]) --- The output is: files: - lib/cgikit - lib/cgikit.rb - lib/cgikit/components - lib/cgikit/components/CKErrorPage - lib/cgikit/components/CKErrorPage/CKErrorPage.ckd - lib/cgikit/components/CKErrorPage/CKErrorPage.html - lib/cgikit/components/CKErrorPage/CKErrorPage.rb 271 --- files: lib: cgikit.rb: cgikit: components: CKErrorPage: CKErrorPage.ckd: CKErrorPage.html: CKErrorPage.rb: 174 I get the same 36% savings as you did, so it looks to be the same. * Hugh Sasse [2005-06-03 19:22:30 +0100]: > >A slight savings of 15%. > diff -u files_in_rubygems.rb.orig files_in_rubygems.rb > --- files_in_rubygems.rb.orig Fri Jun 3 18:37:50 2005 > +++ files_in_rubygems.rb Fri Jun 3 19:17:02 2005 > @@ -12,6 +12,7 @@ > } > > require 'yaml' > + require 'pathname' > > puts files.to_yaml > puts files.to_yaml.size > @@ -18,10 +19,26 @@ > > def optimize_file_list(files) > hash = Hash.new { |h,k| h[k] = [] } > + newhash = nil > files.each { |file| > - dir = File.dirname(file) > - filename = File.basename(file) > - hash[dir] << filename > + path = Pathname.new(file) > + key = nil > + # move down the pathname.... > + path.each_filename do |name| > + if key.nil? > + key = name > + hash[key] = nil unless hash.has_key?(key) > + newhash = hash > + else > + if newhash[key] > + newhash[key][name] ||= nil > + else > + newhash[key] = {name => nil} > + end > + newhash = newhash[key] > + key = name > + end > + end > } > hash > end > @@ -29,3 +46,5 @@ > files["files"] = optimize_file_list(files["files"]) > puts files.to_yaml > puts files.to_yaml.size > + > +# vim:set sw=2 et: > 271 > 174 -- Jim Freeze Theory and practice are the same, in theory. -- Ryan Davis From jim at weirichhouse.org Fri Jun 3 16:19:14 2005 From: jim at weirichhouse.org (Jim Weirich) Date: Fri Jun 3 16:12:08 2005 Subject: [Rubygems-developers] How to specifiy c level build options insidea gem In-Reply-To: <10051342296.20050604020157@scriptolutions.com> References: <10051342296.20050604020157@scriptolutions.com> Message-ID: <24129.192.223.163.5.1117829954.squirrel@weirichhouse.org> Lothar Scholz said: > Hello, > > When i tried to install mysql on windows i thought that it would > ask me for the library directory of the mysql driver. But it did not. > > Is this an error from the person who build the mysql gem or does RubyGems > not offer such a functionality. > > On windows there is simply no way to detect a c library, so a user must > specify it. you can pass parameters to the C building process in a gem by putting the options after a -- (double dash) on the gem command line. For example: gem install somegem -- --prefix=/some/directory/somewhere Was this your question, or did I misunderstand? -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas) From scholz at scriptolutions.com Fri Jun 3 16:40:26 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Fri Jun 3 16:33:34 2005 Subject: [Rubygems-developers] How does the platform work together withversion numbers In-Reply-To: <7598.192.223.163.5.1117829758.squirrel@weirichhouse.org> References: <3352612187.20050604022307@scriptolutions.com> <7598.192.223.163.5.1117829758.squirrel@weirichhouse.org> Message-ID: <15157251000.20050604034026@scriptolutions.com> Hello Jim, Saturday, June 4, 2005, 3:15:58 AM, you wrote: >> Okay this was the last problem i found. My Frontend is now working >> well and it very convenient when i compare it with pythons (manual) >> library >> management. So hope that we can turn RubyGems into one of the killer >> features of ruby, but it still needs a lot of work. JW> Excellent! I'm looking forward to seeing this run. JW> One question ... Is the way we handle console input and output any help in JW> building the front end? We designed the UI interface with the possiblity JW> of GUIs in mind, but until you actually use it for one, it is tough to JW> know if you got it right. I'd love feedback in that area. Yes it's working well. I start a ruby script communication is done via a socket between the IDE process and the script. I only run into two smaller problems. First the text layout is sometimes not very good for example wrong indentation, or long lines and presenting uninstall messages (ask_yes_no) will not work with many toolkits as this messages can have a lot of lines. And a message box on Win32 can only display a few lines. No problem for Fox, but on WxWigets it would became truncated. Second is that i can't customize some messages where i really would like to show more information. For example installing dependencies: I get a name that almost always isn't self explaining. So i would like to include an "info" button that makes it possible to see the specification of the required gem before i answer yes/no. To do this a function with a little semantic is required that in it's default implementation can fallback to the ask_yes_no method. -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From scholz at scriptolutions.com Fri Jun 3 16:57:27 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Fri Jun 3 16:50:24 2005 Subject: [Rubygems-developers] How to specifiy c level build options insidea gem In-Reply-To: <24129.192.223.163.5.1117829954.squirrel@weirichhouse.org> References: <10051342296.20050604020157@scriptolutions.com> <24129.192.223.163.5.1117829954.squirrel@weirichhouse.org> Message-ID: <5158271875.20050604035727@scriptolutions.com> Hello Jim, Saturday, June 4, 2005, 3:19:14 AM, you wrote: JW> you can pass parameters to the C building process in a gem by putting the JW> options after a -- (double dash) on the gem command line. For example: JW> gem install somegem -- --prefix=/some/directory/somewhere JW> Was this your question, or did I misunderstand? Okay thats the one half, the other is the question where can i get the information about what options i must parse ? At the moment i would like to see a way that a gem can ask me for such during the install operation. So the normal cycle would be. 1) "gem install foo" and find out that the gem can't compile 2) "gem specification foo --remote" (once this is implement) 3) Look at the dumped specification and find the homepage URL 4) Look at the homepage and hope that there is a build description 5) Run "gem install foo -- -my parameter" Not very convenient. And isn't it a package managers job is to make it convenient. So wouldn't it be nice read documentation about install operation before i invoke the install (an icon in a GUI or a '*' character in a TUI could remind me that there is additional install documentation available). -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From scholz at scriptolutions.com Fri Jun 3 17:36:23 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Fri Jun 3 17:29:22 2005 Subject: [Rubygems-developers] How does the platform work together withversion numbers In-Reply-To: <15157251000.20050604034026@scriptolutions.com> References: <3352612187.20050604022307@scriptolutions.com> <7598.192.223.163.5.1117829758.squirrel@weirichhouse.org> <15157251000.20050604034026@scriptolutions.com> Message-ID: <8460608515.20050604043623@scriptolutions.com> Hello Lothar, Saturday, June 4, 2005, 3:40:26 AM, you wrote: LS> I only run into two smaller problems. Forgot this one: My first attempt was to only catch the "say" output but this turned out to be not good enough as for example when there is some c code compilation the output is printed to stdout. So i do capture stdout and mix it into the stream together with "say". Otherwise the user would see a "Successfull installation" message and no error from the compilation. Maybe this is a task that should be done on the RubyGems side and not on the frontend. -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From scholz at scriptolutions.com Sat Jun 4 04:26:28 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Sat Jun 4 04:19:36 2005 Subject: [Rubygems-developers] How can i get a command results status ? Message-ID: <1324596265.20050604152628@scriptolutions.com> Hello, when i run something like Gem::GemRunner.new.run(['uninstall', name, '--all']) is there any way how i can find out if the command was successfull ? -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From hgs at dmu.ac.uk Sat Jun 4 09:47:51 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Sat Jun 4 09:40:49 2005 Subject: [Rubygems-developers] Why does an install command an update In-Reply-To: <20050603202116.GA17732@freeze.org> References: <7523.192.223.163.5.1117811790.squirrel@weirichhouse.org> <20050603171001.GA16778@freeze.org> <20050603202116.GA17732@freeze.org> Message-ID: On Fri, 3 Jun 2005, Jim Freeze wrote: > Nice optimization Hugh. More than double the savings. Thanks. I don't know if it will be useful though, because it isn't backwards compatible. [But then, neither is removing file lists completely.] > > Here is a shorter version (don't know if it > is windows compatible though): > > --- ftest.rb Fri Jun 3 15:12:01 2005 > +++ ftest2.rb Fri Jun 3 15:10:58 2005 > @@ -18,13 +18,20 @@ > puts files.to_yaml.size > > def optimize_file_list(files) > - hash = Hash.new { |h,k| h[k] = [] } > + hash = {} > files.each { |file| > - dir = File.dirname(file) > - filename = File.basename(file) > - hash[dir] << filename > + next if File.directory?(file) > + a = file.split(/\//) You mean [compatibility-wise] that line? I think Pathname handles that kind of thing portably. I've heard something about Macs using ':' for directory separators, but maybe that's not true in MacOS X -- I don't know as I've never used a Mac > + rtn = a.inject(hash) { |h,k| h[k] ||= {} } > } > - hash > + recurs = lambda { |h,k| > + if h[k].empty? > + h[k] = nil > + else > + h[k].each { |kk,vv| recurs.call(h[k], kk) } > + end > + } > + hash.each { |k,v| recurs.call(hash,k) } I think that will take more study on my part to figure that out :-) Shorter is good, we may need to do speed trials as well. > end > > files["files"] = optimize_file_list(files["files"]) > --- > The output is: > > files: > - lib/cgikit > - lib/cgikit.rb > - lib/cgikit/components > - lib/cgikit/components/CKErrorPage > - lib/cgikit/components/CKErrorPage/CKErrorPage.ckd > - lib/cgikit/components/CKErrorPage/CKErrorPage.html > - lib/cgikit/components/CKErrorPage/CKErrorPage.rb > 271 > --- > files: > lib: > cgikit.rb: > cgikit: > components: > CKErrorPage: > CKErrorPage.ckd: > CKErrorPage.html: > CKErrorPage.rb: > 174 > > I get the same 36% savings as you did, so it looks to be the same. Looks the same to me. I think Jim Weirich needs to step in and tell us how this may (not) fit in with how he plans tp proceed, before we get to somewhere really esoteric. Hugh From drbrain at segment7.net Sat Jun 4 20:10:27 2005 From: drbrain at segment7.net (Eric Hodel) Date: Sat Jun 4 20:03:19 2005 Subject: [Rubygems-developers] Name collisions (Help me avoid hate mail while using descriptive names) Message-ID: <38AEC6EC-539E-40CC-8DBA-8AF18121C3E7@segment7.net> Last night I uploaded rails_analyzer_tools (and rails-analyzer-tools, which gave inconsistent names to the other packages...) and now "rails-analyzer-tools" gets installed instead of "rails" when I "gem install rails": $ gem --version 0.8.10 $ sudo gem install rails Attempting local installation of 'rails' Local gem file not found: rails*.gem Attempting remote installation of 'rails' Successfully installed rails-analyzer-tools-1.0.0 Installing RDoc documentation for rails-analyzer-tools-1.0.0... I'd like to keep the name 'rails_analyzer_tools', but at the same time I don't want to get any hate-mail from Rails fanboys because they now have to specify a version to get rails. I thought something had been done about this exact vs relative matching thing, but I'm too lazy to crawl through the archives in search of it. (Fortunately I have not announced the project, so I've asked chad and jim to remove the offending gems from the server.) -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 From drbrain at segment7.net Sat Jun 4 20:30:53 2005 From: drbrain at segment7.net (Eric Hodel) Date: Sat Jun 4 20:23:46 2005 Subject: [Rubygems-developers] Name collisions (Help me avoid hate mail while using descriptive names) In-Reply-To: <38AEC6EC-539E-40CC-8DBA-8AF18121C3E7@segment7.net> References: <38AEC6EC-539E-40CC-8DBA-8AF18121C3E7@segment7.net> Message-ID: On 04 Jun 2005, at 17:10, Eric Hodel wrote: > Last night I uploaded rails_analyzer_tools (and rails-analyzer- > tools, which gave inconsistent names to the other packages...) and > now "rails-analyzer-tools" gets installed instead of "rails" when I > "gem install rails": > > I'd like to keep the name 'rails_analyzer_tools', but at the same > time I don't want to get any hate-mail from Rails fanboys because > they now have to specify a version to get rails. > > I thought something had been done about this exact vs relative > matching thing, but I'm too lazy to crawl through the archives in > search of it. Ok, looking at the sources, I see what the problem is that exact name search is never done. I will try to whip up some test cases and a patch. -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 From drbrain at segment7.net Sat Jun 4 21:53:20 2005 From: drbrain at segment7.net (Eric Hodel) Date: Sat Jun 4 21:46:13 2005 Subject: [Rubygems-developers] Name collisions (Help me avoid hate mail while using descriptive names) In-Reply-To: References: <38AEC6EC-539E-40CC-8DBA-8AF18121C3E7@segment7.net> Message-ID: <4DF26220-3468-4FB2-8888-DD79394DF5A2@segment7.net> On 04 Jun 2005, at 17:30, Eric Hodel wrote: > On 04 Jun 2005, at 17:10, Eric Hodel wrote: > >> Last night I uploaded rails_analyzer_tools (and rails-analyzer- >> tools, which gave inconsistent names to the other packages...) and >> now "rails-analyzer-tools" gets installed instead of "rails" when >> I "gem install rails": >> >> I'd like to keep the name 'rails_analyzer_tools', but at the same >> time I don't want to get any hate-mail from Rails fanboys because >> they now have to specify a version to get rails. >> >> I thought something had been done about this exact vs relative >> matching thing, but I'm too lazy to crawl through the archives in >> search of it. > > Ok, looking at the sources, I see what the problem is that exact > name search is never done. I will try to whip up some test cases > and a patch. I now have a proposed patch, the heart of which is this: Index: lib/rubygems/remote_installer.rb =================================================================== RCS file: /var/cvs/rubygems/rubygems/lib/rubygems/remote_installer.rb,v retrieving revision 1.80 diff -u -r1.80 remote_installer.rb --- lib/rubygems/remote_installer.rb 24 Mar 2005 05:37:36 -0000 1.80 +++ lib/rubygems/remote_installer.rb 5 Jun 2005 01:30:11 -0000 @@ -425,36 +425,44 @@ # Find a gem to be installed by interacting with the user. def find_gem_to_install(gem_name, version_requirement, caches) - max_version = Version.new("0.0.0") specs_n_sources = [] + caches.each do |source, cache| cache.each do |name, spec| - if (/^#{gem_name}-/i === name && - version_requirement.satisfied_by?(spec.version)) + if /^#{gem_name}$/i === spec.name && + version_requirement.satisfied_by?(spec.version) then specs_n_sources << [spec, source] end end end (The full patch does much more cleanup, because the method was completely unreadable.) So... $ gem install foo Will install "foo-1.2.3" In the presence of: foo-1.2.3 foo-tools-2.0.0 foo-2-2.0.0 # if the regex is /#{gem_name}-\d/ this gets installed instead of foo. But I have a funny feeling about this: - if specs_n_sources.reject { |item| - item[0].platform.nil? || item[0].platform==Platform::RUBY - }.size == 0 - # only non-binary gems...return latest - return specs_n_sources.first + + non_binary_gems = specs_n_sources.reject { |item| + item[0].platform.nil? || item[0].platform==Platform::RUBY + } + + # only non-binary gems...return latest + return specs_n_sources.first if non_binary_gems.empty? + Why are non-binary gems special? -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 From drbrain at segment7.net Sat Jun 4 22:10:10 2005 From: drbrain at segment7.net (Eric Hodel) Date: Sat Jun 4 22:03:04 2005 Subject: [Rubygems-developers] Name collisions (Help me avoid hate mail while using descriptive names) In-Reply-To: <4DF26220-3468-4FB2-8888-DD79394DF5A2@segment7.net> References: <38AEC6EC-539E-40CC-8DBA-8AF18121C3E7@segment7.net> <4DF26220-3468-4FB2-8888-DD79394DF5A2@segment7.net> Message-ID: <95FE0C71-C567-48B9-B0E8-0E9317A220EF@segment7.net> On 04 Jun 2005, at 18:53, Eric Hodel wrote: > (The full patch does much more cleanup, because the method was > completely unreadable.) And here's the whole of it: -------------- next part -------------- A non-text attachment was scrubbed... Name: remote_install.rb.collision.patch Type: application/octet-stream Size: 4355 bytes Desc: not available Url : http://rubyforge.org/pipermail/rubygems-developers/attachments/20050604/83239fda/remote_install.rb.collision.obj -------------- next part -------------- -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 From scholz at scriptolutions.com Sun Jun 5 15:09:08 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Sun Jun 5 15:02:12 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect Message-ID: <532260796.20050606020908@scriptolutions.com> Hello, I can't see any effect of the --rdoc option. It seems to be use it with gem install xml-simple --version 1.0.7 --rdoc gem install BlueCloth --version 0.0.4 --rdoc the first has no "s.has_rdoc" defined in the specifiction the latter has "s.has_rdoc = nil". No matter what arguments, xml-simple is always installed without RDoc, BlueCloth always with RDoc. This does not make sense to me. --rdoc seems not to work but --no-rdoc does works as expected. -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From jim at weirichhouse.org Sun Jun 5 15:28:41 2005 From: jim at weirichhouse.org (Jim Weirich) Date: Sun Jun 5 15:20:44 2005 Subject: [Rubygems-developers] Why does an install command an update In-Reply-To: References: <20050603202116.GA17732@freeze.org> Message-ID: <200506051528.41498.jim@weirichhouse.org> On Saturday 04 June 2005 09:47 am, Hugh Sasse wrote: > On Fri, 3 Jun 2005, Jim Freeze wrote: > > Nice optimization Hugh. More than double the savings. > > Thanks. I don't know if it will be useful though, because it > isn't backwards compatible. [But then, neither is removing file > lists completely.] Actually, the list of files is never used from the cache, only from the complete gem. We throw the file list away complete on the client (originally done to get around YAML bugs). Throwing them away at the server would give huge bandwidth savings and would not effect the client one iota. -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas) From drbrain at segment7.net Sun Jun 5 20:21:08 2005 From: drbrain at segment7.net (Eric Hodel) Date: Sun Jun 5 23:24:35 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: <532260796.20050606020908@scriptolutions.com> References: <532260796.20050606020908@scriptolutions.com> Message-ID: <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> On 05 Jun 2005, at 12:09, Lothar Scholz wrote: > Hello, > > I can't see any effect of the --rdoc option. It seems to be use it > with > > gem install xml-simple --version 1.0.7 --rdoc > gem install BlueCloth --version 0.0.4 --rdoc --rdoc is the default. Specifying it is redundant. > the first has no "s.has_rdoc" defined in the specifiction the > latter has > "s.has_rdoc = nil". No matter what arguments, xml-simple is always > installed without RDoc, BlueCloth always with RDoc. This does not make > sense to me. If a gem has no rdoc (xml-simple), rubygems can't suddenly make it appear. I would look at the bluecloth gem, but rubyforge is currently down. > --rdoc seems not to work but --no-rdoc does works as > expected. This is just the way OptionParser works: $ cat x.rb #!/usr/local/bin/ruby require 'optparse' OptionParser.new do |opts| opts.on("-r", "--[no-]rdoc", "Install rdoc") { |val| puts "val is: #{val}" } end.parse! $ ./x.rb --rdoc val is: true $ ./x.rb --no-rdoc val is: false -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 From drbrain at segment7.net Mon Jun 6 00:16:10 2005 From: drbrain at segment7.net (Eric Hodel) Date: Mon Jun 6 00:12:11 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> Message-ID: <82F441A7-667C-493C-A3DA-3CC7E00C7A5C@segment7.net> On 05 Jun 2005, at 17:21, Eric Hodel wrote: > On 05 Jun 2005, at 12:09, Lothar Scholz wrote: > >> Hello, >> >> I can't see any effect of the --rdoc option. It seems to be use it >> with >> >> gem install xml-simple --version 1.0.7 --rdoc >> gem install BlueCloth --version 0.0.4 --rdoc >> >> the first has no "s.has_rdoc" defined in the specifiction the >> latter has >> "s.has_rdoc = nil". No matter what arguments, xml-simple is always >> installed without RDoc, BlueCloth always with RDoc. This does not >> make >> sense to me. > > If a gem has no rdoc (xml-simple), rubygems can't suddenly make it > appear. > > I would look at the bluecloth gem, but rubyforge is currently down. http://gems.rubyforge.org/gems/BlueCloth-0.0.4.gem BlueCloth 0.0.4 does not have has_rdoc set to anything, so the spec stored in /specifications is lying. -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 From scholz at scriptolutions.com Mon Jun 6 00:38:59 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Mon Jun 6 00:34:58 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> Message-ID: <47664031.20050606113859@scriptolutions.com> Hello Eric, Monday, June 6, 2005, 7:21:08 AM, you wrote: >> the first has no "s.has_rdoc" defined in the specifiction the >> latter has >> "s.has_rdoc = nil". No matter what arguments, xml-simple is always >> installed without RDoc, BlueCloth always with RDoc. This does not make >> sense to me. EH> If a gem has no rdoc (xml-simple), rubygems can't suddenly make it EH> appear. Sorry of course it can. It will just list the things dectected by analysing the source code. It is only a problem when the is code is a compiled binary library but this is not the case in my examples. Thats why there is an option like the force rdoc generation. And it does not work (also tried the "gem rdoc xml-simple" command). I must do this manually by calling "rdoc ". So it is very clear that this is an Error in RubyGems. -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From drbrain at segment7.net Mon Jun 6 02:06:58 2005 From: drbrain at segment7.net (Eric Hodel) Date: Mon Jun 6 02:02:52 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: <47664031.20050606113859@scriptolutions.com> References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> <47664031.20050606113859@scriptolutions.com> Message-ID: <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> On 05 Jun 2005, at 21:38, Lothar Scholz wrote: > Monday, June 6, 2005, 7:21:08 AM, you wrote: > >>> the first has no "s.has_rdoc" defined in the specifiction the >>> latter has >>> "s.has_rdoc = nil". No matter what arguments, xml-simple is always >>> installed without RDoc, BlueCloth always with RDoc. This does not >>> make >>> sense to me. >>> > > EH> If a gem has no rdoc (xml-simple), rubygems can't suddenly make it > EH> appear. > > Sorry of course it can. It will just list the things dectected by > analysing the source code. It is only a problem when the is code is a > compiled binary library but this is not the case in my examples. > > Thats why there is an option like the force rdoc generation. > And it does not work (also tried the "gem rdoc xml-simple" command). > I must do this manually by calling "rdoc ". > > So it is very clear that this is an Error in RubyGems. lib/rubygems/doc_manager.rb disagrees: def generate_rdoc return if @spec.has_rdoc == false and I disagree that rubygems should ever second-guess the gem author. -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 From scholz at scriptolutions.com Mon Jun 6 02:31:23 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Mon Jun 6 02:27:16 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> <47664031.20050606113859@scriptolutions.com> <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> Message-ID: <1057408453.20050606133123@scriptolutions.com> Hello Eric, Monday, June 6, 2005, 1:06:58 PM, you wrote: EH> On 05 Jun 2005, at 21:38, Lothar Scholz wrote: >> Monday, June 6, 2005, 7:21:08 AM, you wrote: >> >>>> the first has no "s.has_rdoc" defined in the specifiction the >>>> latter has >>>> "s.has_rdoc = nil". No matter what arguments, xml-simple is always >>>> installed without RDoc, BlueCloth always with RDoc. This does not >>>> make >>>> sense to me. >>>> >> >> EH> If a gem has no rdoc (xml-simple), rubygems can't suddenly make it >> EH> appear. >> >> Sorry of course it can. It will just list the things dectected by >> analysing the source code. It is only a problem when the is code is a >> compiled binary library but this is not the case in my examples. >> >> Thats why there is an option like the force rdoc generation. >> And it does not work (also tried the "gem rdoc xml-simple" command). >> I must do this manually by calling "rdoc ". >> >> So it is very clear that this is an Error in RubyGems. EH> lib/rubygems/doc_manager.rb disagrees: EH> def generate_rdoc EH> return if @spec.has_rdoc == false EH> and I disagree that rubygems should ever second-guess the gem author. Okay but then you must change the documentation and the "gem help". I don't insist on generating rubydoc if the gem author denies it - even if i think it might be a good idea to force rdoc generation - but the rubygems system must be consistent without documentation bugs. -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From ryand-ruby at zenspider.com Mon Jun 6 04:34:06 2005 From: ryand-ruby at zenspider.com (Ryan Davis) Date: Mon Jun 6 04:30:23 2005 Subject: [Rubygems-developers] Name collisions (Help me avoid hate mail while using descriptive names) In-Reply-To: <95FE0C71-C567-48B9-B0E8-0E9317A220EF@segment7.net> References: <38AEC6EC-539E-40CC-8DBA-8AF18121C3E7@segment7.net> <4DF26220-3468-4FB2-8888-DD79394DF5A2@segment7.net> <95FE0C71-C567-48B9-B0E8-0E9317A220EF@segment7.net> Message-ID: <131D723C-90DB-4380-B488-7979CACD1C08@zenspider.com> On Jun 4, 2005, at 7:10 PM, Eric Hodel wrote: > On 04 Jun 2005, at 18:53, Eric Hodel wrote: > > >> (The full patch does much more cleanup, because the method was >> completely unreadable.) >> > > And here's the whole of it: > > > I've committed this, but can't do anything wrt the gems server, obviously, so either we need to start doing some selective patches on the gem server, or we need to get tom or someone to help clean up the bad gem and re-index on the server side. From rubygems at freeze.org Mon Jun 6 07:53:37 2005 From: rubygems at freeze.org (Jim Freeze) Date: Mon Jun 6 07:45:14 2005 Subject: [Rubygems-developers] Re: Rubygems on shared drive with multiple OS's Message-ID: <20050606115337.GA32092@freeze.org> At work we use a shared NFS file system where I can run any one of four OS's all with the same $HOME directory. If I install a gem (that has an extension) using a Linux machine, can I also install the same gem with a SunOS box and have rubygems just add the appropriate extension? I would prefer this to having a separate gem directory for each OS, since most of the gems (those without extensions) can be shared. BTW, does rubgems log what OS installed a gem? -- Jim Freeze Theory and practice are the same, in theory. -- Ryan Davis From jim at weirichhouse.org Mon Jun 6 10:59:49 2005 From: jim at weirichhouse.org (Jim Weirich) Date: Mon Jun 6 10:55:41 2005 Subject: [Rubygems-developers] Re: Rubygems on shared drive with multipleOS's In-Reply-To: <20050606115337.GA32092@freeze.org> References: <20050606115337.GA32092@freeze.org> Message-ID: <33823.12.27.2.2.1118069989.squirrel@weirichhouse.org> Jim Freeze said: > At work we use a shared NFS file system where I can run any > one of four OS's all with the same $HOME directory. > > If I install a gem (that has an extension) using a Linux machine, > can I also install the same gem with a SunOS box and have rubygems just > add the appropriate extension? > > I would prefer this to having a separate gem directory for each OS, > since most of the gems (those without extensions) can be shared. Thanks Jim. This is a good use case. There's no theoretical reason why this couldn't be done, but I think there are some practical issues to sort out (e.g. installing separate platform dependent gems or a single non-platform gem with multiple architectural directories, how to respond to a gem activate when the only matching gem is the wrong architecture). I'm not even sure what rubygems does in this case. > BTW, does rubgems log what OS installed a gem? No. -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas) From jim at weirichhouse.org Mon Jun 6 11:17:00 2005 From: jim at weirichhouse.org (Jim Weirich) Date: Mon Jun 6 11:12:52 2005 Subject: [Rubygems-developers] Name collisions (Help me avoid hate mailwhile using descriptive names) In-Reply-To: <131D723C-90DB-4380-B488-7979CACD1C08@zenspider.com> References: <38AEC6EC-539E-40CC-8DBA-8AF18121C3E7@segment7.net><4DF26220-3468-4FB2-8888-DD79394DF5A2@segment7.net><95FE0C71-C567-48B9-B0E8-0E9317A220EF@segment7.net> <131D723C-90DB-4380-B488-7979CACD1C08@zenspider.com> Message-ID: <33871.12.27.2.2.1118071020.squirrel@weirichhouse.org> Ryan Davis said: > > On Jun 4, 2005, at 7:10 PM, Eric Hodel wrote: > >> On 04 Jun 2005, at 18:53, Eric Hodel wrote: >> >> >>> (The full patch does much more cleanup, because the method was >>> completely unreadable.) >>> >> >> And here's the whole of it: >> >> >> > > I've committed this, but can't do anything wrt the gems server, > obviously, so either we need to start doing some selective patches on > the gem server, or we need to get tom or someone to help clean up the > bad gem and re-index on the server side. Eric (as project developer) needs to remove the offending files from project download area. Once that is done, we can get someone to remove the gem files. If the project files are not removed, the RubyForge gem indexer will add them back into the gem server. -- -- Jim Weirich jim@weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas) From drbrain at segment7.net Mon Jun 6 12:35:55 2005 From: drbrain at segment7.net (Eric Hodel) Date: Mon Jun 6 12:31:48 2005 Subject: [Rubygems-developers] Name collisions (Help me avoid hate mailwhile using descriptive names) In-Reply-To: <33871.12.27.2.2.1118071020.squirrel@weirichhouse.org> References: <38AEC6EC-539E-40CC-8DBA-8AF18121C3E7@segment7.net><4DF26220-3468-4FB2-8888-DD79394DF5A2@segment7.net><95FE0C71-C567-48B9-B0E8-0E9317A220EF@segment7.net> <131D723C-90DB-4380-B488-7979CACD1C08@zenspider.com> <33871.12.27.2.2.1118071020.squirrel@weirichhouse.org> Message-ID: <010377FF-72C4-4EBE-917B-0F1D3595D2DA@segment7.net> On 06 Jun 2005, at 08:17, Jim Weirich wrote: > Eric (as project developer) needs to remove the offending files from > project download area. Once that is done, we can get someone to > remove > the gem files. If the project files are not removed, the RubyForge > gem > indexer will add them back into the gem server. The offending gems are no longer on rubyforge. http://rubyforge.org/frs/?group_id=586&release_id=2272 rails_ will no longer match the existing regex. -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 From chad at chadfowler.com Mon Jun 6 13:52:22 2005 From: chad at chadfowler.com (chad@chadfowler.com) Date: Mon Jun 6 12:41:27 2005 Subject: [Rubygems-developers] Name collisions (Help me avoid hate mailwhile using descriptive names) In-Reply-To: <010377FF-72C4-4EBE-917B-0F1D3595D2DA@segment7.net> References: <38AEC6EC-539E-40CC-8DBA-8AF18121C3E7@segment7.net><4DF26220-3468-4FB2-8888-DD79394DF5A2@segment7.net><95FE0C71-C567-48B9-B0E8-0E9317A220EF@segment7.net> <131D723C-90DB-4380-B488-7979CACD1C08@zenspider.com> <33871.12.27.2.2.1118071020.squirrel@weirichhouse.org> <010377FF-72C4-4EBE-917B-0F1D3595D2DA@segment7.net> Message-ID: <36964.216.77.69.67.1118080342.squirrel@216.77.69.67> > On 06 Jun 2005, at 08:17, Jim Weirich wrote: > >> Eric (as project developer) needs to remove the offending files from >> project download area. Once that is done, we can get someone to >> remove >> the gem files. If the project files are not removed, the RubyForge >> gem >> indexer will add them back into the gem server. > > The offending gems are no longer on rubyforge. > > http://rubyforge.org/frs/?group_id=586&release_id=2272 To clarify, should I remove the rails_analyzer_tools-1.0.0.gem and rails-analyzer-tools-1.0.0.gem gems from the deployed gems area? Thanks, Chad From drbrain at segment7.net Mon Jun 6 13:38:20 2005 From: drbrain at segment7.net (Eric Hodel) Date: Mon Jun 6 13:34:14 2005 Subject: [Rubygems-developers] Name collisions (Help me avoid hate mailwhile using descriptive names) In-Reply-To: <36964.216.77.69.67.1118080342.squirrel@216.77.69.67> References: <38AEC6EC-539E-40CC-8DBA-8AF18121C3E7@segment7.net><4DF26220-3468-4FB2-8888-DD79394DF5A2@segment7.net><95FE0C71-C567-48B9-B0E8-0E9317A220EF@segment7.net> <131D723C-90DB-4380-B488-7979CACD1C08@zenspider.com> <33871.12.27.2.2.1118071020.squirrel@weirichhouse.org> <010377FF-72C4-4EBE-917B-0F1D3595D2DA@segment7.net> <36964.216.77.69.67.1118080342.squirrel@216.77.69.67> Message-ID: <45CCFC81-6A1B-4338-8249-793E246497C6@segment7.net> On 06 Jun 2005, at 10:52, chad@chadfowler.com wrote: >> On 06 Jun 2005, at 08:17, Jim Weirich wrote: >> >>> Eric (as project developer) needs to remove the offending files from >>> project download area. Once that is done, we can get someone to >>> remove >>> the gem files. If the project files are not removed, the RubyForge >>> gem >>> indexer will add them back into the gem server. >> >> The offending gems are no longer on rubyforge. >> >> http://rubyforge.org/frs/?group_id=586&release_id=2272 >> > > To clarify, should I remove the rails_analyzer_tools-1.0.0.gem and > rails-analyzer-tools-1.0.0.gem gems from the deployed gems area? rails-analyzer-tools-1.0.0.gem Just that one, as the other won't collide with rails due to the way the regex currently behaves. -- Eric Hodel - drbrain@segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04 From glasser at mit.edu Tue Jun 7 11:54:32 2005 From: glasser at mit.edu (David Glasser) Date: Tue Jun 7 11:50:27 2005 Subject: [Rubygems-developers] Patch and scripts for offline rubygems usage Message-ID: <9F5CB5C2-5ED1-479E-ADCB-F096D15D6728@mit.edu> [ Just sent this to ruby-talk, but perhaps this is a better place to send it. ] See http://web.mit.edu/glasser/www/ruby/ for the patch and scripts. I suspect I should be contributing at least the patch to the rubygems project, but I'm not sure the best way to do this -- hopefully somebody from the project will read this and tell me. --dave (Below is just a w3m of the above web page.) Patch and scripts for offline rubygems usage I would like to be able to use rubygems to install new gems when not connected to the internet. I don't want to just automatically install every gem, though. Specifically, I'd like to be able to locally mirror any gem server. In general, I'd also like to make it easier for people to run mirrors of gem servers. To accomplish this, I've written three things: a patch to rubygems/remote_installer.rb to allow the use of file:// URLs as sources; a script called gem_mirror to mirror from an arbitrary gem server to local disk; and a script called gem_server_dumb to run a brainless gem server serving a gem_mirrored directory. As a reminder, installed gems live in a gem directory with subdirectories such as cache and specifications; I will refer to this as installed-layout. The gem remote installer, on the other hand, looks for a file called yaml (optionally first compressed as yaml.Z) and a subdirectory called gems; I will refer to this as server-layout. The standard gem_server script creates a web server which serves sites in server-layout (plus some other files which are not used by the remote installer) based on the contents of an installed-layout gem directory. rubygems/remote_installer.rb file:// support patch rubygems_remote_installer_file_uri.patch adds support for rubygems sources to be file:// URIs, either by an explicit --sources argument to gem or by inclusion in .gemrc. While it would seem more clean to make this a patch to open-uri, the fact that RemoteSourceFetcher#read_size doesn't go through the open-uri abstraction would have meant that that method would have still needed to be special-cased; so instead I simply put the file:// handling inside RemoteSourceFetcher. Note that the directory specified by the file:// URL should be in server-layout form. I hope that the rubygems maintainers integrate this patch into the distribution. gem_mirror The above patch raises the question of where a local server-layout directory would come from! Using gem_mirror, you can easily mirror gem servers (which can be specified as any URL that open-uri accepts or as paths, but ironically not as file:// URLs) to local directories. gem_mirror fetches the yaml file and checks to see which gems specified in it it does not have; it saves them to the specified directory, along with the yaml file itself. You can specify as many mirroring operations as you would like in a YAML file called .gemmirrorrc; mine looks like: --- - from: http://gems.rubyforge.org/ to: /Users/glasser/MyGEMS/gems.rubyforge.org gem_server_dumb Just to complete the loop, gem_server_dumb is a simple WEBrick web server which serves server-layout directories to the world. So if you run gem_mirror periodically and also run gem_server_dumb, you will be an http mirror of whatever server your are mirroring from, at least as far as the remote installer is concerned. (That is, you won't be mirroring RDoc or the top page of the gem server, and so on.) This really doesn't do anything that you couldn't to by just pointing any other web server at your server-layout directory. --dave Code Monkey, Best Practical Solutions -- David Glasser | glasser@bestpractical.com From ntalbott at gmail.com Thu Jun 9 11:13:38 2005 From: ntalbott at gmail.com (Nathaniel Talbott) Date: Thu Jun 9 11:09:26 2005 Subject: [Rubygems-developers] Better handling of corrupt gem downloads Message-ID: On a very clean box, I just tried to install rails, and had the following happen: Attempting local installation of 'rails' Local gem file not found: rails*.gem Attempting remote installation of 'rails' Updating Gem source index for: http://gems.rubyforge.org Install required dependency rake? [Yn] Install required dependency activesupport? [Yn] Install required dependency activerecord? [Yn] Install required dependency actionpack? [Yn] ERROR: While executing gem ... (RuntimeError) No metadata found! Deleting the actionpack gem file from gems/1.8/cache fixed it. Perhaps there could/should be better support for a bad download? Thanks, -- Nathaniel <:((>< From gsinclair at soyabean.com.au Fri Jun 10 00:58:32 2005 From: gsinclair at soyabean.com.au (Gavin Sinclair) Date: Fri Jun 10 00:54:22 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> <47664031.20050606113859@scriptolutions.com> <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> Message-ID: <89192754336.20050610145832@soyabean.com.au> On Monday, June 6, 2005, 4:06:58 PM, Eric wrote: >> EH> If a gem has no rdoc (xml-simple), rubygems can't suddenly make it >> EH> appear. >> >> Sorry of course it can. It will just list the things dectected by >> analysing the source code. It is only a problem when the is code is a >> compiled binary library but this is not the case in my examples. >> >> Thats why there is an option like the force rdoc generation. >> And it does not work (also tried the "gem rdoc xml-simple" command). >> I must do this manually by calling "rdoc ". >> >> So it is very clear that this is an Error in RubyGems. > lib/rubygems/doc_manager.rb disagrees: > def generate_rdoc > return if @spec.has_rdoc == false > and I disagree that rubygems should ever second-guess the gem author. I think --rdoc should force RDoc generation. That's not second-guessing the author; it's just saying "I want to see the RDoc output, please." That's none of the author's business. The "rdoc" spec is pretty useless at the moment. Few people appear to take any care in setting it. I see it as being for information only (which may or may not be accurate, just like homepage, for instance). Accordingly, the "return if..." line above should be removed. Cheers, Gavin From chad at chadfowler.com Fri Jun 10 07:33:54 2005 From: chad at chadfowler.com (Chad Fowler) Date: Fri Jun 10 07:29:39 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: <89192754336.20050610145832@soyabean.com.au> References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> <47664031.20050606113859@scriptolutions.com> <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> <89192754336.20050610145832@soyabean.com.au> Message-ID: On 10-Jun-05, at 12:58 AM, Gavin Sinclair wrote: > On Monday, June 6, 2005, 4:06:58 PM, Eric wrote: > > >>> EH> If a gem has no rdoc (xml-simple), rubygems can't suddenly >>> make it >>> EH> appear. >>> >>> Sorry of course it can. It will just list the things dectected by >>> analysing the source code. It is only a problem when the is code >>> is a >>> compiled binary library but this is not the case in my examples. >>> >>> Thats why there is an option like the force rdoc generation. >>> And it does not work (also tried the "gem rdoc xml-simple" >>> command). >>> I must do this manually by calling "rdoc ". >>> >>> So it is very clear that this is an Error in RubyGems. >>> > > >> lib/rubygems/doc_manager.rb disagrees: >> > > >> def generate_rdoc >> return if @spec.has_rdoc == false >> > > >> and I disagree that rubygems should ever second-guess the gem author. >> > > I think --rdoc should force RDoc generation. That's not > second-guessing the author; it's just saying "I want to see the RDoc > output, please." That's none of the author's business. > > The "rdoc" spec is pretty useless at the moment. Few people appear to > take any care in setting it. I see it as being for information only > (which may or may not be accurate, just like homepage, for instance). > > Actually, the rdoc spec is being used to avoid running rdoc on gems that really have no rdoc (like "rails"). There was a case where rdoc was crashing on one of these gems, and the author used the rdoc spec attribute to explicitly stop rdoc from running. Chad > From hgs at dmu.ac.uk Fri Jun 10 07:49:25 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Fri Jun 10 07:45:14 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> <47664031.20050606113859@scriptolutions.com> <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> <89192754336.20050610145832@soyabean.com.au> Message-ID: On Fri, 10 Jun 2005, Chad Fowler wrote: > > Actually, the rdoc spec is being used to avoid running rdoc on gems that > really have no rdoc (like "rails"). There was a case where rdoc was crashing > on one of these > gems, and the author used the rdoc spec attribute to explicitly stop rdoc > from running. > > Chad > So what about something like this (untested) code (patch made against rubygems-0.8.10): --- ./doc_manager.rb.orig 2005-02-28 23:26:58.000000000 +0000 +++ ./doc_manager.rb 2005-06-10 12:42:58.927496000 +0100 @@ -35,7 +35,8 @@ end def generate_rdoc - return if @spec.has_rdoc == false + # return if @spec.has_rdoc == false + # Now taken care of with rescue clause. require 'fileutils' Gem::FilePermissionError.new(@doc_dir) if File.exist?(@doc_dir) && !File.writable?(@doc_dir) FileUtils.mkdir_p @doc_dir unless File.exist?(@doc_dir) @@ -58,6 +59,8 @@ r.document(['--quiet', '--op', rdoc_dir] + @rdoc_args.flatten + source_dirs) rescue Errno::EACCES => e raise Gem::FilePermissionError.new(File.dirname(e.message.split("-")[1].strip)) + rescue => e + say "Performing RDoc failed with \"#{e.message}\", but it is known to crash occasionally" end #TODO: Why is this throwing an error? #ri = RDoc::RDoc.new By which I mean, "we know it will fail sometimes and we don't know why yet, so let's trap those cases and carry on, because thw world probably hasn't ended if we get no rdocs." Hugh From scholz at scriptolutions.com Fri Jun 10 08:53:36 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Fri Jun 10 08:49:30 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> <47664031.20050606113859@scriptolutions.com> <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> <89192754336.20050610145832@soyabean.com.au> Message-ID: <19733625859.20050610195336@scriptolutions.com> Hello Chad, Friday, June 10, 2005, 6:33:54 PM, you wrote: CF> Actually, the rdoc spec is being used to avoid running rdoc on gems that CF> really have no rdoc (like "rails"). There was a case where rdoc was CF> crashing on one of these CF> gems, and the author used the rdoc spec attribute to explicitly stop CF> rdoc from running. Yes, the template code inside rails causes rdoc to run in an infinite loop. But i think in this case first of all rdoc must be fixed and also the gem writter must use a ".document" file to avoid this. But i now thing that disabling the --rdoc option is no good idea as i want to force the generation and from the logic of rdoc there shouldn't be a problem with it. -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From gsinclair at soyabean.com.au Fri Jun 10 23:29:39 2005 From: gsinclair at soyabean.com.au (Gavin Sinclair) Date: Fri Jun 10 23:25:40 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> <47664031.20050606113859@scriptolutions.com> <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> <89192754336.20050610145832@soyabean.com.au> Message-ID: <197273821143.20050611132939@soyabean.com.au> On Friday, June 10, 2005, 9:49:25 PM, Hugh wrote: >> Actually, the rdoc spec is being used to avoid running rdoc on gems >> that really have no rdoc (like "rails"). There was a case where >> rdoc was crashing on one of these gems, and the author used the >> rdoc spec attribute to explicitly stop rdoc from running. >> >> Chad > So what about something like this (untested) code (patch made > against rubygems-0.8.10): > [code] > By which I mean, "we know it will fail sometimes and we don't know > why yet, so let's trap those cases and carry on, because the world > probably hasn't ended if we get no rdocs." Good idea, Hugh. I wasn't aware of the RDoc problem, but that's just what it is: an RDoc problem. It shouldn't be a Rubygems problem. (We should be able to assume that RDoc runs without error on any valid Ruby code.) My rationale is this: RDoc output is a useful code browser, even if the author has included no comments. So the "rdoc" setting is useful to say "there is/isn't API documentation", and a gems GUI can convey that information, but the RDoc output should be available for viewing anyway. Gavin From hgs at dmu.ac.uk Sat Jun 11 10:12:51 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Sat Jun 11 10:08:41 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: <197273821143.20050611132939@soyabean.com.au> References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> <47664031.20050606113859@scriptolutions.com> <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> <89192754336.20050610145832@soyabean.com.au> <197273821143.20050611132939@soyabean.com.au> Message-ID: On Sat, 11 Jun 2005, Gavin Sinclair wrote: > On Friday, June 10, 2005, 9:49:25 PM, Hugh wrote: > >> So what about something like this (untested) code (patch made >> against rubygems-0.8.10): > >> [code] > >> By which I mean, "we know it will fail sometimes and we don't know >> why yet, so let's trap those cases and carry on, because the world >> probably hasn't ended if we get no rdocs." > > Good idea, Hugh. I wasn't aware of the RDoc problem, but that's just > what it is: an RDoc problem. It shouldn't be a Rubygems problem. (We > should be able to assume that RDoc runs without error on any valid > Ruby code.) Thank you. I don't have write access to your CVS (and don't contribute enough to make it worthwhile), so if you wish to apply that for me I'd be grateful. [...] > > Gavin Hugh From gsinclair at soyabean.com.au Sat Jun 11 11:24:38 2005 From: gsinclair at soyabean.com.au (Gavin Sinclair) Date: Sat Jun 11 11:20:44 2005 Subject: [Rubygems-developers] --rdoc option does not have an effect In-Reply-To: References: <532260796.20050606020908@scriptolutions.com> <75C0558A-14FC-4A95-899F-45918B0CFE1B@segment7.net> <47664031.20050606113859@scriptolutions.com> <0C833155-44BF-4F10-BF58-76CC823B2802@segment7.net> <89192754336.20050610145832@soyabean.com.au> <197273821143.20050611132939@soyabean.com.au> Message-ID: <21316720009.20050612012438@soyabean.com.au> On Sunday, June 12, 2005, 12:12:51 AM, Hugh wrote: >>> By which I mean, "we know it will fail sometimes and we don't know >>> why yet, so let's trap those cases and carry on, because the world >>> probably hasn't ended if we get no rdocs." >> >> Good idea, Hugh. I wasn't aware of the RDoc problem, but that's just >> what it is: an RDoc problem. It shouldn't be a Rubygems problem. (We >> should be able to assume that RDoc runs without error on any valid >> Ruby code.) > Thank you. I don't have write access to your CVS (and don't > contribute enough to make it worthwhile), so if you wish to apply > that for me I'd be grateful. I'll let others comment first. I haven't committed anything for ages, so wouldn't want to rejoin the fray with a potentially controversial patch :) Gavin From chad at chadfowler.com Sun Jun 12 09:47:56 2005 From: chad at chadfowler.com (Chad Fowler) Date: Sun Jun 12 09:43:36 2005 Subject: [Rubygems-developers] Patch and scripts for offline rubygems usage In-Reply-To: <9F5CB5C2-5ED1-479E-ADCB-F096D15D6728@mit.edu> References: <9F5CB5C2-5ED1-479E-ADCB-F096D15D6728@mit.edu> Message-ID: On 07-Jun-05, at 11:54 AM, David Glasser wrote: > [ Just sent this to ruby-talk, but perhaps this is a better place > to send it. ] > > See http://web.mit.edu/glasser/www/ruby/ for the patch and > scripts. I suspect I should be contributing at least the patch to > the rubygems project, but I'm not sure the best way to do this -- > hopefully somebody from the project will read this and tell me. > > --dave > > ( Hi Dave. Thanks for the patch. I applied it and added gem_mirror to the RubyGems source (with a small change to make it work on Windows--- we've been bitten before by not opening files with "wb", so I knew to look for it). Would you consider adding some docs to http://docs.rubygems.org? Thanks! Chad From chad at chadfowler.com Sun Jun 12 10:34:51 2005 From: chad at chadfowler.com (Chad Fowler) Date: Sun Jun 12 10:30:34 2005 Subject: [Rubygems-developers] [PATCH] Updated RubyGems Signing Patch (fixes ENV['HOME'] sillyness) In-Reply-To: <20050530030934.GI1705@vault.home.pablotron.org> References: <20050530030934.GI1705@vault.home.pablotron.org> Message-ID: <6BCFFA19-F38C-4F4A-BB43-C0803F02C12B@chadfowler.com> On 29-May-05, at 11:09 PM, Paul Duncan wrote: > Hi Everyone, > > I finally got around to updating my RubyGems signing patch. This is > just a small change that fixes the ENV['HOME'] nonsense so it calls > Gem.user_home like it should. > > In case your mail client doesn't like the attachment, this patch is > also > available online at the following URL: > > http://pablotron.org/files/rubygems-0.8.10-sign-2.diff.gz > http://pablotron.org/files/rubygems-0.8.10-sign-2.diff.gz.asc > (signature) > This has been applied. Paul, thank you very much and I apologize for it taking so long. Can everyone please give this a try? Paul has thorough instructions in docs/signing_gems.txt, so it's really easy to go through step by step. Thanks! Chad From dglasser at gmail.com Sun Jun 12 11:08:56 2005 From: dglasser at gmail.com (David Glasser) Date: Sun Jun 12 11:04:41 2005 Subject: [Rubygems-developers] Patch and scripts for offline rubygems usage In-Reply-To: References: <9F5CB5C2-5ED1-479E-ADCB-F096D15D6728@mit.edu> Message-ID: <1ea387f605061208082f106a23@mail.gmail.com> On 6/12/05, Chad Fowler wrote: > Hi Dave. > > Thanks for the patch. I applied it and added gem_mirror to the > RubyGems source (with a small change to make it work on Windows--- > we've been bitten before by not opening files with "wb", so I knew to > look for it). Sure. I also wouldn't be surprised if there are issues with Windows/DOS drive names, or in the difference between saying file:, file://, and file:///... but it does seem to work in the use case of file:/// on Unix. > Would you consider adding some docs to http://docs.rubygems.org? Sure, just signed up for an account. One question, though -- I kind of made up the terms "installed-layout" and "server-layout" to describe the gems/ cache/ gems/ specifications/ and yaml gems/ directory layouts. Anybody have anything better? --dave -- David Glasser | glasser@mit.edu | http://www.davidglasser.net/ From chad at chadfowler.com Sun Jun 12 11:25:08 2005 From: chad at chadfowler.com (Chad Fowler) Date: Sun Jun 12 11:20:59 2005 Subject: [Rubygems-developers] Patch and scripts for offline rubygems usage In-Reply-To: <1ea387f605061208082f106a23@mail.gmail.com> References: <9F5CB5C2-5ED1-479E-ADCB-F096D15D6728@mit.edu> <1ea387f605061208082f106a23@mail.gmail.com> Message-ID: <6FAD12D1-48E4-43D1-BF22-5DEF6D8222CE@chadfowler.com> On 12-Jun-05, at 11:08 AM, David Glasser wrote: > On 6/12/05, Chad Fowler wrote: > >> Hi Dave. >> >> Thanks for the patch. I applied it and added gem_mirror to the >> RubyGems source (with a small change to make it work on Windows--- >> we've been bitten before by not opening files with "wb", so I knew to >> look for it). >> > > Sure. I also wouldn't be surprised if there are issues with > Windows/DOS drive names, or in the difference between saying file:, > file://, and file:///... but it does seem to work in the use case of > file:/// on Unix. > > >> Would you consider adding some docs to http://docs.rubygems.org? >> > > Sure, just signed up for an account. One question, though -- I kind > of made up the terms "installed-layout" and "server-layout" to > describe the > > gems/ > cache/ > gems/ > specifications/ > > and > > yaml > gems/ > > directory layouts. Anybody have anything better? > Made sense to me. Chad From scholz at scriptolutions.com Mon Jun 13 06:38:42 2005 From: scholz at scriptolutions.com (Lothar Scholz) Date: Mon Jun 13 06:34:35 2005 Subject: [Rubygems-developers] ArachnoRuby with RubyGems GUI Frontend Message-ID: <3624002015.20050613173842@scriptolutions.com> Hello, i just uploaded a preview of the new Arachno Version. http://www.ruby-ide.com/downloads/ruby/SetupArachnoRuby_0_5_7.exe This contains my frontend for RubyGems. It does not cover all of the possible options but i think it's enough for most ruby users. Also a Gem Builder Wizard is missing. Any comments are welcome. If you tried the IDE in the past and your trial period is already expired you can use the following key until 15. Juli 2005 RubyGems 0191ZU-AJ0CFZ-TU0XWT-RNBFQV-6VP8HN-Z29A4Y-88KEF1-H383HX-0KZAJW-YNUM8E -- Best regards, Lothar Scholz mailto:scholz@scriptolutions.com From chad at chadfowler.com Mon Jun 13 08:55:55 2005 From: chad at chadfowler.com (Chad Fowler) Date: Mon Jun 13 08:51:37 2005 Subject: [Rubygems-developers] ArachnoRuby with RubyGems GUI Frontend In-Reply-To: <3624002015.20050613173842@scriptolutions.com> References: <3624002015.20050613173842@scriptolutions.com> Message-ID: <76DC6458-20E3-47D5-8A24-E64256F221B4@chadfowler.com> On 13-Jun-05, at 6:38 AM, Lothar Scholz wrote: > Hello, > > i just uploaded a preview of the new Arachno Version. > http://www.ruby-ide.com/downloads/ruby/SetupArachnoRuby_0_5_7.exe > > This contains my frontend for RubyGems. > It does not cover all of the possible options but i think it's enough > for most ruby users. Also a Gem Builder Wizard is missing. > > Any comments are welcome. > > If you tried the IDE in the past and your trial period is already > expired > you can use the following key until 15. Juli 2005 > > RubyGems > 0191ZU-AJ0CFZ-TU0XWT-RNBFQV-6VP8HN-Z29A4Y-88KEF1-H383HX-0KZAJW-YNUM8E > > Wow, Lothar! Really nice job! Chad From curt at hibbs.com Mon Jun 13 09:16:23 2005 From: curt at hibbs.com (Curt Hibbs) Date: Mon Jun 13 09:12:15 2005 Subject: [Rubygems-developers] ArachnoRuby with RubyGems GUI Frontend In-Reply-To: <76DC6458-20E3-47D5-8A24-E64256F221B4@chadfowler.com> References: <3624002015.20050613173842@scriptolutions.com> <76DC6458-20E3-47D5-8A24-E64256F221B4@chadfowler.com> Message-ID: <42AD8727.6050002@hibbs.com> Chad Fowler wrote: > > On 13-Jun-05, at 6:38 AM, Lothar Scholz wrote: >> >> i just uploaded a preview of the new Arachno Version. >> http://www.ruby-ide.com/downloads/ruby/SetupArachnoRuby_0_5_7.exe >> >> This contains my frontend for RubyGems. > > Wow, Lothar! Really nice job! > > Chad +1000 This is very, very nice! Curt From agorilla at gmail.com Mon Jun 13 09:31:17 2005 From: agorilla at gmail.com (Bill Guindon) Date: Mon Jun 13 09:26:58 2005 Subject: [Rubygems-developers] ArachnoRuby with RubyGems GUI Frontend In-Reply-To: <42AD8727.6050002@hibbs.com> References: <3624002015.20050613173842@scriptolutions.com> <76DC6458-20E3-47D5-8A24-E64256F221B4@chadfowler.com> <42AD8727.6050002@hibbs.com> Message-ID: <67a22292050613063143d9773@mail.gmail.com> On 6/13/05, Curt Hibbs wrote: > Chad Fowler wrote: > > > > On 13-Jun-05, at 6:38 AM, Lothar Scholz wrote: > >> > >> i just uploaded a preview of the new Arachno Version. > >> http://www.ruby-ide.com/downloads/ruby/SetupArachnoRuby_0_5_7.exe > >> > >> This contains my frontend for RubyGems. > > > > Wow, Lothar! Really nice job! > > > > Chad > > +1000 > > This is very, very nice! Impressive. > Curt > _______________________________________________ > Rubygems-developers mailing list > Rubygems-developers@rubyforge.org > http://rubyforge.org/mailman/listinfo/rubygems-developers > -- Bill Guindon (aka aGorilla) From rubygems at freeze.org Mon Jun 13 18:53:05 2005 From: rubygems at freeze.org (Jim Freeze) Date: Mon Jun 13 18:44:23 2005 Subject: [Rubygems-developers] Problems with --test Message-ID: <20050613225305.GA45555@freeze.org> Hi I have a simple test script that looks like: % cat test/testall.rb #!/usr/bin/env ruby $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") require 'commandline/optionparser' tc = %w( tc_option.rb tc_optionparser.rb tc_optiondata.rb ) tc.each { |lib| puts "== Testing #{lib} ==" fork { require lib } } A partial error list is below: gem install OptionParser --test Attempting local installation of 'OptionParser' Successfully installed OptionParser, version 0.5.0 Installing RDoc documentation for OptionParser-0.5.0... ./test/../lib/commandline/optionparser.rb:32: warning: already initialized constant GENERAL_OPT_EQ_ARG_RE [bunch of similar messages deleted] == Testing tc_option.rb == /Users/jdf/local_ruby/ruby-1.8.2/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require__': No such file to load -- tc_option.rb (LoadError) from /Users/jdf/local_ruby/ruby-1.8.2/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require' from ./test/testall.rb:12 from ./test/testall.rb:12:in `fork' from ./test/testall.rb:12 from ./test/testall.rb:10:in `each' from ./test/testall.rb:10 from /Users/jdf/local_ruby/ruby-1.8.2/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require__' from /Users/jdf/local_ruby/ruby-1.8.2/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require' ... 9 levels... from /Users/jdf/local_ruby/ruby-1.8.2/lib/ruby/site_ruby/1.8/rubygems/cmd_manager.rb:92:in `process_args' from /Users/jdf/local_ruby/ruby-1.8.2/lib/ruby/site_ruby/1.8/rubygems/cmd_manager.rb:65:in `run' from /Users/jdf/local_ruby/ruby-1.8.2/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:9:in `run' from /Users/jdf/local_ruby/ruby-1.8.2/bin/gem:17 == Testing tc_optionparser.rb == /Users/jdf/local_ruby/ruby-1.8.2/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require__': No such file to load -- tc_optionparser.rb (LoadError) One of the puzzling things is that it complains that constants are being redefined. Ruby won't do this and the fork in my test code prevents this type of thing. So it must be rubygems. ;) How are tests to be handled with rubygems? -- Jim Freeze From halostatue at gmail.com Mon Jun 13 21:12:37 2005 From: halostatue at gmail.com (Austin Ziegler) Date: Mon Jun 13 21:08:15 2005 Subject: [Rubygems-developers] Problem with Zlib on Windows again... Message-ID: <9e7db91105061318125a97f8aa@mail.gmail.com> The gem for PDF::Writer seems to have broken Gems on Windows. I seem to do this, don't I? I will be posting a warning to the maililng list. -austin C:\home>gem --debug install pdf-writer C:\home>"C:\Apps\Ruby\bin\ruby.exe" "C:\Apps\Ruby\bin\gem" --debug install pdf-writer Exception `Errno::ENOENT' at C:/Apps/Ruby/lib/ruby/site_ruby/1.8/rubygems/config _file.rb:12 - No such file or directory - C:\Documents and Settings\Austin/.gemrc Attempting local installation of 'pdf-writer' Local gem file not found: pdf-writer*.gem Attempting remote installation of 'pdf-writer' Exception `Zlib::BufError' at C:/Apps/Ruby/lib/ruby/site_ruby/1.8/rubygems/package.rb:347 - buffer error ERROR: While executing gem ... (Zlib::BufError) buffer error removing C:/DOCUME~1/Austin/LOCALS~1/Temp/open-uri2096.0...done -austin -- Austin Ziegler * halostatue@gmail.com * Alternate: austin@halostatue.ca From agorilla at gmail.com Mon Jun 13 21:47:09 2005 From: agorilla at gmail.com (Bill Guindon) Date: Mon Jun 13 21:42:47 2005 Subject: [Rubygems-developers] Problem with Zlib on Windows again... In-Reply-To: <9e7db91105061318125a97f8aa@mail.gmail.com> References: <9e7db91105061318125a97f8aa@mail.gmail.com> Message-ID: <67a222920506131847184c0af8@mail.gmail.com> On 6/13/05, Austin Ziegler wrote: > The gem for PDF::Writer seems to have broken Gems on Windows. I seem > to do this, don't I? > > I will be posting a warning to the maililng list. > > -austin > > C:\home>gem --debug install pdf-writer Oddly enough, I get the same error with the --debug flag, but I get no error without it. > C:\home>"C:\Apps\Ruby\bin\ruby.exe" "C:\Apps\Ruby\bin\gem" --debug > install pdf-writer > Exception `Errno::ENOENT' at C:/Apps/Ruby/lib/ruby/site_ruby/1.8/rubygems/config > _file.rb:12 - No such file or directory - C:\Documents and > Settings\Austin/.gemrc > Attempting local installation of 'pdf-writer' > Local gem file not found: pdf-writer*.gem > Attempting remote installation of 'pdf-writer' > Exception `Zlib::BufError' at > C:/Apps/Ruby/lib/ruby/site_ruby/1.8/rubygems/package.rb:347 - buffer > error > ERROR: While executing gem ... (Zlib::BufError) > buffer error > removing C:/DOCUME~1/Austin/LOCALS~1/Temp/open-uri2096.0...done > > -austin > -- > Austin Ziegler * halostatue@gmail.com > * Alternate: austin@halostatue.ca > > _______________________________________________ > Rubygems-developers mailing list > Rubygems-developers@rubyforge.org > http://rubyforge.org/mailman/listinfo/rubygems-developers > -- Bill Guindon (aka aGorilla) From ntalbott at gmail.com Tue Jun 14 08:58:36 2005 From: ntalbott at gmail.com (Nathaniel Talbott) Date: Tue Jun 14 08:54:13 2005 Subject: [Rubygems-developers] Problem with Zlib on Windows again... In-Reply-To: <9e7db91105061318125a97f8aa@mail.gmail.com> References: <9e7db91105061318125a97f8aa@mail.gmail.com> Message-ID: On 6/13/05, Austin Ziegler wrote: > The gem for PDF::Writer seems to have broken Gems on Windows. I seem > to do this, don't I? I'm guessing this is the bug addressed by [ruby-core:04734]. Nathaniel From halostatue at gmail.com Tue Jun 14 10:53:44 2005 From: halostatue at gmail.com (Austin Ziegler) Date: Tue Jun 14 10:49:21 2005 Subject: [Rubygems-developers] Problem with Zlib on Windows again... In-Reply-To: References: <9e7db91105061318125a97f8aa@mail.gmail.com> Message-ID: <9e7db91105061407531fe543c6@mail.gmail.com> On 6/14/05, Nathaniel Talbott wrote: > On 6/13/05, Austin Ziegler wrote: > > The gem for PDF::Writer seems to have broken Gems on Windows. I seem > > to do this, don't I? > I'm guessing this is the bug addressed by [ruby-core:04734]. That would be nice. In the interim, I still need to figure out what I can do to get a working gem for Windows. :( -austin -- Austin Ziegler * halostatue@gmail.com * Alternate: austin@halostatue.ca From hgs at dmu.ac.uk Wed Jun 22 09:48:49 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Wed Jun 22 09:44:24 2005 Subject: [Rubygems-developers] alt. stylesheet for docs.rubygemns.org Message-ID: I was looking at http://docs.rubygems.org/read/book/1 earlier, and finding the brightness uncomfortable. I wondering if it would be OK to have a dark stylesheet, something like the attached patch against base.css, which I've called dark.css. It probably needs more work, I'd like the reds in the navigation bar to stand out better, but it helps me already. Hugh -------------- next part -------------- --- base.css 2005-06-22 14:41:43.784464000 +0100 +++ dark.css 2005-06-22 14:33:43.278715000 +0100 @@ -23,9 +23,9 @@ } body { - color: #333333; + background-color: #333333; - background-color: #FFFFFF; + color: #FFFFFF; background-image: url(../images/header_backdrop.png); background-repeat: repeat-x; background-position: 0 -25px; @@ -68,16 +68,16 @@ } a:link { - color: #BB2233; + color: #FF4466; } a:visited { - color: #991122; + color: #AA1122; } a:hover { color: #CC2233; - background-color: #EEEEEE; + background-color: #CCCCCC; } a:active { @@ -139,7 +139,7 @@ padding: 0; font-weight: bold; font-size: 14pt; - color: #999; + color: #AAA; } /* div#logo { @@ -264,7 +264,7 @@ ul#navMain li a { padding: 0.2em 1em; - color: #FFFFFF; + color: #CCCCCC; text-decoration: none; } From chad at chadfowler.com Wed Jun 22 10:59:50 2005 From: chad at chadfowler.com (Chad Fowler) Date: Wed Jun 22 10:55:15 2005 Subject: [Rubygems-developers] alt. stylesheet for docs.rubygemns.org In-Reply-To: References: Message-ID: <061B86EE-CF87-41A3-AF7D-B9952DEFA15B@chadfowler.com> Hugh, thanks. I started to make this change but ran out of time (I want to have a style switcher). I'll try to get it finished up later today or tomorrow. Chad On 22-Jun-05, at 6:48 AM, Hugh Sasse wrote: > From hgs at dmu.ac.uk Wed Jun 22 11:04:23 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Wed Jun 22 10:59:57 2005 Subject: [Rubygems-developers] alt. stylesheet for docs.rubygemns.org In-Reply-To: <061B86EE-CF87-41A3-AF7D-B9952DEFA15B@chadfowler.com> References: <061B86EE-CF87-41A3-AF7D-B9952DEFA15B@chadfowler.com> Message-ID: On Wed, 22 Jun 2005, Chad Fowler wrote: > Hugh, thanks. I started to make this change but ran out of time (I want to > have a style switcher). I'll try to get it finished up later today or Firefox supports that switching -- or didn't you mean "at the browser end"? > tomorrow. > > Chad > Thanks, Hugh From chad at chadfowler.com Wed Jun 22 11:07:22 2005 From: chad at chadfowler.com (Chad Fowler) Date: Wed Jun 22 11:02:46 2005 Subject: [Rubygems-developers] alt. stylesheet for docs.rubygemns.org In-Reply-To: References: <061B86EE-CF87-41A3-AF7D-B9952DEFA15B@chadfowler.com> Message-ID: <4172B656-8FDE-43AA-919A-15DFCC40F358@chadfowler.com> On 22-Jun-05, at 8:04 AM, Hugh Sasse wrote: > On Wed, 22 Jun 2005, Chad Fowler wrote: > > >> Hugh, thanks. I started to make this change but ran out of time >> (I want to have a style switcher). I'll try to get it finished up >> later today or >> > > Firefox supports that switching -- or didn't you mean "at the > browser end"? > I was adding a link for switching styles. What do I need to do to allow firefox to find the alternate stylesheet? I put the stylesheet up and linked it as "alternate stylesheet". I see it in the firefox "page style" menu, but selecting it doesn't do anything. Does it work for you? Thanks, Chad From hgs at dmu.ac.uk Wed Jun 22 12:08:34 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Wed Jun 22 12:04:01 2005 Subject: [Rubygems-developers] alt. stylesheet for docs.rubygemns.org In-Reply-To: <4172B656-8FDE-43AA-919A-15DFCC40F358@chadfowler.com> References: <061B86EE-CF87-41A3-AF7D-B9952DEFA15B@chadfowler.com> <4172B656-8FDE-43AA-919A-15DFCC40F358@chadfowler.com> Message-ID: On Wed, 22 Jun 2005, Chad Fowler wrote: > > On 22-Jun-05, at 8:04 AM, Hugh Sasse wrote: > >> On Wed, 22 Jun 2005, Chad Fowler wrote: >> >> >>> Hugh, thanks. I started to make this change but ran out of time (I want >>> to have a style switcher). I'll try to get it finished up later today or >>> >> >> Firefox supports that switching -- or didn't you mean "at the >> browser end"? >> > > I was adding a link for switching styles. What do I need to do to allow > firefox to find the alternate stylesheet? I put the stylesheet up and linked Just put them in as link elements in the head. http://www.eng.dmu.ac.uk/aeg/ is an example I made. Firefox shows them in the View -> Page Style -> [...] menu > it > as "alternate stylesheet". I see it in the firefox "page style" menu, but That's right, but I see you are using XHTML rather than HTML. > selecting it doesn't do anything. Does it work for you? The XHTML does not. The docs on XHTML tell me that link is in a separate module. I don't know how you "include" that or even "require" its definition. I've never got into XHTML in a big way, but then I've found the terminology of XML with its DSSSL, XSLT, etc pretty imprenetrable anyway. So, either it is a fairly subtle xhtml bug, or it is a bug in Firefox 1.04. If your page were HTML it would be right except for the closing /> (which I was surprised the HTML validator barked at, preferring >, but it did when I used it in HTML). So, I don't know what is going on here. If Internet Explorer can do anything with these style sheet defs it isn't letting on! I can see no controls for seeing alternative stylesheets from with I.E. at all. > > Thanks, > Chad Hugh From hgs at dmu.ac.uk Wed Jun 22 12:37:51 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Wed Jun 22 12:33:20 2005 Subject: [Rubygems-developers] alt. stylesheet for docs.rubygemns.org In-Reply-To: References: <061B86EE-CF87-41A3-AF7D-B9952DEFA15B@chadfowler.com> <4172B656-8FDE-43AA-919A-15DFCC40F358@chadfowler.com> Message-ID: This may be silly, but what if you - + which, IIUIC, are equivalent in XML, so firefox may pick up the opener correctly. extern "C" {long long shot;} // :-) Hugh From chad at chadfowler.com Wed Jun 22 15:27:57 2005 From: chad at chadfowler.com (chad@chadfowler.com) Date: Wed Jun 22 14:16:31 2005 Subject: [Rubygems-developers] alt. stylesheet for docs.rubygemns.org In-Reply-To: References: <061B86EE-CF87-41A3-AF7D-B9952DEFA15B@chadfowler.com> <4172B656-8FDE-43AA-919A-15DFCC40F358@chadfowler.com> Message-ID: <64933.64.74.15.135.1119468477.squirrel@64.74.15.135> > This may be silly, but what if you > > - href="/stylesheets/dark.css" type="text/css" /> > + href="/stylesheets/dark.css" type="text/css" > > > which, IIUIC, are equivalent in XML, so firefox may pick up the > opener correctly. > > extern "C" {long long shot;} // :-) I tried it, but it doesn't appear to be working. I'll try some other things when I get off of work. Any more ideas would be appreciated. Chad From hgs at dmu.ac.uk Wed Jun 22 16:47:17 2005 From: hgs at dmu.ac.uk (Hugh Sasse) Date: Wed Jun 22 16:42:48 2005 Subject: [Rubygems-developers] alt. stylesheet for docs.rubygemns.org In-Reply-To: <64933.64.74.15.135.1119468477.squirrel@64.74.15.135> References: <061B86EE-CF87-41A3-AF7D-B9952DEFA15B@chadfowler.com> <4172B656-8FDE-43AA-919A-15DFCC40F358@chadfowler.com> <64933.64.74.15.135.1119468477.squirrel@64.74.15.135> Message-ID: On Wed, 22 Jun 2005, chad@chadfowler.com wrote: >> This may be silly, but what if you >> [] > > > I tried it, but it doesn't appear to be working. I'll try some other > things when I get off of work. Any more ideas would be appreciated. Only think I can think of now is to ask the stylesheet black belts at "A List Apart" http://www.alistapart.com/ > > Chad Hugh From ml at kurt.hindenburg.name Sun Jun 26 19:53:20 2005 From: ml at kurt.hindenburg.name (Kurt V. Hindenburg) Date: Sun Jun 26 19:47:10 2005 Subject: [Rubygems-developers] post-install/man help Message-ID: <200506261853.20618.ml@kurt.hindenburg.name> Hi, I've been trying to create a .gem for my project xmltv2html. I finally got a rubyforge.org account. Anyway, I was using Minero Aoki's setup.rb which allowed me to use post-install.rb. How does one do that in a .gem? Also, I need the full path to the files so the user can then copy them to where ever. Also, I noted that on the gem web pages it mentions a DevelopersGuide and a GemInTenMinutes(sp?) page. I couldn't find either. I was also creating a man page via 'rd2 -rrd/rd2man-lib.rb #{program} > #{man}xmltv2html.1'. Does the rdoc do this automatically? Thanks, Kurt % cat post-install.rb $stdout.print <. Installation complete! EOF From agorilla at gmail.com Mon Jun 27 17:20:45 2005 From: agorilla at gmail.com (Bill Guindon) Date: Mon Jun 27 17:16:09 2005 Subject: [Rubygems-developers] having trouble installing rubygems in non-standard dir. Message-ID: <67a2229205062714204541d124@mail.gmail.com> Running on Redhat Enterprise 4.0 Here's a map to how I'm trying to do this: ------------------------------------------------------------ gunzip ruby-1.8.2.tar.gz gunzip rubygems-0.8.10.tgz export RUBYOPT= tar -xvf ruby-1.8.2.tar cd ruby-1.8.2 ./configure --prefix=/var/www/websites/mvgo.com/ make make test make install export GEM_HOME=/var/www/websites/mvgo.com/gems tar -xvf rubygems-0.8.10.tar bin/ruby rubygems-0.8.10/setup.rb config --prefix=/var/www/websites/mvgo.com/ bin/ruby rubygems-0.8.10/setup.rb setup bin/ruby rubygems-0.8.10/setup.rb install export RUBYOPT=rubygems ------------------------------------------------------------ all is well until I get to the rubygems setup 'install', here's what I end up with: 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. hook /var/www/websites/mvgo.com/rubygems-0.8.10/./post-install.rb failed: No such file or directory - pkgs/sources Try 'ruby rubygems-0.8.10/setup.rb --help' for detailed usage. any suggestions? -- Bill Guindon (aka aGorilla) From agorilla at gmail.com Mon Jun 27 21:03:19 2005 From: agorilla at gmail.com (Bill Guindon) Date: Mon Jun 27 20:58:38 2005 Subject: [Rubygems-developers] Re: having trouble installing rubygems in non-standard dir. In-Reply-To: <67a2229205062714204541d124@mail.gmail.com> References: <67a2229205062714204541d124@mail.gmail.com> Message-ID: <67a22292050627180314c055fb@mail.gmail.com> nm, got some help on irc. I just had to cd into the source dir, and run setup from there. On 6/27/05, Bill Guindon wrote: > Running on Redhat Enterprise 4.0 > > Here's a map to how I'm trying to do this: > > ------------------------------------------------------------ > gunzip ruby-1.8.2.tar.gz > gunzip rubygems-0.8.10.tgz > > export RUBYOPT= > > tar -xvf ruby-1.8.2.tar > cd ruby-1.8.2 > ./configure --prefix=/var/www/websites/mvgo.com/ > make > make test > make install > > export GEM_HOME=/var/www/websites/mvgo.com/gems > > tar -xvf rubygems-0.8.10.tar > bin/ruby rubygems-0.8.10/setup.rb config --prefix=/var/www/websites/mvgo.com/ > bin/ruby rubygems-0.8.10/setup.rb setup > bin/ruby rubygems-0.8.10/setup.rb install > > export RUBYOPT=rubygems > ------------------------------------------------------------ > all is well until I get to the rubygems setup 'install', here's what I > end up with: > > 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. > > hook /var/www/websites/mvgo.com/rubygems-0.8.10/./post-install.rb failed: > No such file or directory - pkgs/sources > Try 'ruby rubygems-0.8.10/setup.rb --help' for detailed usage. > > > any suggestions? > > -- > Bill Guindon (aka aGorilla) > -- Bill Guindon (aka aGorilla) From agorilla at gmail.com Tue Jun 28 14:24:28 2005 From: agorilla at gmail.com (Bill Guindon) Date: Tue Jun 28 14:20:12 2005 Subject: [Rubygems-developers] require failing on winxp Message-ID: <67a22292050628112454501a69@mail.gmail.com> Since I finally got a server setup to try some Rails apps, I figured I'd get my local setup up to date, but I'm having some problems with it. WinXP Ruby 1.8.2 Gems 0.8.10 Rails 0.12.1 RUBYOPT = rubygems no errors on install, and no errors when I generate the rails app, but when I try to kick off the server, here's what I'm seeing: C:\Work\active\web\anarchy\snippets>ruby script/server c:/work/active/shell/ruby/lib/ruby/gems/1.8/gems/actionmailer-0.9.1/lib/action_mailer.rb:42: uninitialized constant ActionView::Base (NameError) from c:/work/active/shell/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require__' from c:/work/active/shell/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require' from c:/work/active/shell/ruby/lib/ruby/gems/1.8/gems/activesupport-1.0.4/lib/active_support/dependencies.rb:197:in `require' from c:/work/active/shell/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:175:in `activate' from c:/work/active/shell/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:23:in `require' from c:/work/active/shell/ruby/lib/ruby/gems/1.8/gems/activesupport-1.0.4/lib/active_support/dependencies.rb:197:in `require' from ./script/../config/environment.rb:41 from c:/work/active/shell/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require__' from c:/work/active/shell/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require' from script/server:42 .... So I took a bit from what I had to do on the webserver, in the hopes that it might fix it: C:\Work\active\web\anarchy\snippets>echo %GEM_HOME% %GEM_HOME% C:\Work\active\web\anarchy\snippets>set GEM_HOME=/work/active/shell/ruby/lib/ruby/gems/ C:\Work\active\web\anarchy\snippets>ruby script/server c:/work/active/shell/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require__': No such file to load -- active_support (LoadError) from c:/work/active/shell/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require' from ./script/../config/environment.rb:38 from c:/work/active/shell/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require__' from c:/work/active/shell/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:18:in `require' from script/server:42 Didn't fix it, but it's a slightly different set of errors. Any suggestions? -- Bill Guindon (aka aGorilla)