From: Chad Fowler Date: 2004-10-15T02:38:27+09:00 Subject: Re: GEMs and RPAs On Fri, 15 Oct 2004 02:10:54 +0900, Eivind Eklund wrote: > On Fri, 15 Oct 2004 01:47:28 +0900, Justin Rudd > wrote: > > But one thing that I do not understand is what is the > > difference between GEMs and RPAs? Most everything I > > get right now is through GEMs. Does RPA have any > > advantages? Should I be using both? > > I'll answer basically the same as the last time this question came up: > > RubyGems attempts to make it possible for authors to package their > software, giving a standard package environment. You can get more > information on RubyGems from > http://rubygems.rubyforge.org/wiki/wiki.pl > > RPA attempts to provide production quality packages for Ruby, working > towards quality, availability and maintenance guarantees for at least > the "core" package sets we provide. See > http://rpa-base.rubyforge.org/wiki/wiki.cgi?RpaManifesto for our > manifesto. > > The reason that RPA and RubyGems use different technology is that I > see providing a quality library of software with minimal author > interaction as enough of a challenge in itself, and wanted to avoid > the extra risk of having to have a long deployment cycle and > interfering requirements for the packaging software. By controlling > the entire toolchain and package set ourselves, we can optimize their > interaction to make the maintenance task as easy as possible. > > The RubyGems and RPA authors cooperate, there is some code overlap, > and we hope to increase that overlap with time. > Well said, Eivind. The biggest difference is that RubyGems is a package management system and RPA is an (eventually) QA'd archive of Ruby libraries. RPA happens to have a package manager, but RPA is _not_ a package manager in and of itself (nor is that its core focus). Think of RubyGems as being the package management equivalent of RAA. It and its repository are free and open to all developers that want to contribute. There is no rigid QA process in place for this repository in the same way that there is no QA process in place for the RAA. QA and package selection will be done in the typical bazaar-mode evolutionary style. My hope is that not only will the two share code, but that the existence of packages for one will eventually serve to make it _dead simple_ to package for the other. Also, RPA packages are generally made by the RPA team (Mauricio, actually), whereas RubyGems are generally made by the actual developer of a library or application and directly inserted to the repository by them. For a good intro to RubyGems usage and packaging, check out the new Programming Ruby by Dave Thomas. The RubyGems chapter is available on their website, though if you don't already have a copy of the book, you need it :) http://www.pragmaticprogrammer.com/titles/ruby/ Chad