From: Charles Comstock Date: 2004-07-10T19:57:30+09:00 Subject: Re: [ANN]: RubyGems 0.7.0 Released Jim Weirich wrote: > > RubyGems works by manipulating the list of directories searched for > required files. By managing this list, rubygems allows multiple > versions of a library stored on a system (although only one version at a > time can be used in a single ruby program). > > In order for gems to be loaded, the software to manage the directory > list and resolve version conflicts must be available and in the standard > non-gem location. This bootstrap code can't be a gem, because it is > used to locate a gem. > > It is conceivable that the non-bootstrap code could be made into a gem. > This would be mainly the "gem" command itself. But currently, there is > a fair degree of coupling between the bootstrap and non-bootstrap > portions of the code. Being able to update the "gem" command, but not > its supporting library would be of marginal value at the moment. If > this changes in the future, then anything is possible. > That's really unfortunate. I guess I don't follow why you can't have 2 or 3 basic pointer files that load in either gem, or the library and still point into your gem repository. I really think the format framework must be limited if it's not easy to boostrap itself. I consider it a very important feature for rubygems to take off well. Maybe it's dreaming but it would be awesome if you could get it so good that it could update the source version of ruby as well, assuming of course a reasonably useful version was already installed. I like the concept of the gem, but it definitely seems like it would prove it's worth as a package manager if it was capable of installing itself. That gives the impression it could install anything if necessary, and that to me means the framework is a success. When you could bridge off and use it as a package manager for the associated binaries a library links against, or you could trampoline ontop of it to act as the library updating agent for a distributed processing system. If a framework powerful enough then it makes itself a potential dependency for other projects, then that is what makes it part of the standard install and a proven useful product. Besides of course, how much it simplifies administration if it boostraps itself. Charles Comstock