From: Ben Giddings Date: 2005-03-04T07:03:40+09:00 Subject: Unifying RPA and RubyGems Jim Weirich wrote: > If you wish to lock down particular version of a library, then you are > free to use the require_gem command and supply an explicit version > constraint. I know that some folks using rails have done this to support > multiple versions of rails on a single server. This is handy because > different web apps were written against different versions of rails over > time. IMHO that's a shortcoming of Ruby's "require" statement to begin with. It would be handy to be able to "require" a particular version of a library, if you know that more recent ones don't work for you. Maybe in Ruby 2.0 Matz can spruce up "require" a bit. Anyhow, I never fully understood what RPA was all about, and how it was suppose to interact with my system's package manager. It seems like RPA was partially about solving the fundamental problem of scattered libraries with differing install methods, bad docs, etc. But it was also about trying to provide a package management/installation system. I didn't really understand how it was supposed to work together with my system's package manager. RubyGems was about distributing and updating libraries and apps, but seemed more orthogonal to the system package manager because it installed things in a special 'gems' area. Maybe the two can be combined, so that RubyGems adopts the quality assurance aspect of RPA while keeping it's package management abilities. Maybe it would be possible to sort RubyGems into 'stable' and 'unstable'. A requirement to get to stable would not just be a lack of crashing, but to have good docs, a stable API, and be generally well-behaved. To be effective though, someone would have to judge what qualifies as 'stable'. There would also need to be a way to demote packages from 'stable' to 'unstable' if serious bugs come up, or the packages become unmaintained, etc. This sounds like it would do what the RPA project was trying to do. I *really* appreciate the effort that went into RPA, but it really seems like there's a needless duplication of effort going on. I love open source software, and I love the choice it offers me. On the other hand, sometimes it's annoying that there's BSD and Linux, Emacs and XEmacs, KDE and Gnome, RAA and rubyforge, RubyGems and RPA. If the RPA and RubyGems folks could get together and come up with the One True Ruby Package Management System... that would be a momentous day. I'm sure the streets would be filled with cheering people, the skies would open and rainbows would fill the sky, and Ruby would be that much closer to taking over the world (benevolently of course). On the other hand, maybe I'm wrong and RPA and RubyGems should stay separate projects. *shrug* (I do like rainbows though) Ben