[#3228] Core support for Gems, and namespace — "Luke A. Kanies" <luke@...>

Hi all,

21 messages 2004/07/27
[#3230] Re: Core support for Gems, and namespace — Austin Ziegler <halostatue@...> 2004/07/27

On Tue, 27 Jul 2004 11:39:08 +0900, Luke A. Kanies <luke@madstop.com> wrote:

[#3234] Re: Core support for Gems, and namespace — "Luke A. Kanies" <luke@...> 2004/07/27

On Tue, 27 Jul 2004, Austin Ziegler wrote:

[#3238] Re: Core support for Gems, and namespace — Austin Ziegler <halostatue@...> 2004/07/27

On Wed, 28 Jul 2004 00:14:29 +0900, Luke A. Kanies <luke@madstop.com> wrote:

Re: Core support for Gems, and namespace

From: Gavin Sinclair <gsinclair@...>
Date: 2004-07-28 14:13:58 UTC
List: ruby-core #3251
On Wednesday, July 28, 2004, 10:50:22 PM, Mauricio wrote:

> On Wed, Jul 28, 2004 at 11:29:53AM +0900, Gavin Sinclair wrote:
>> I don't want to ram library versioning down anyone's throat, but on
>> the one hand, you say you don't like the fact that RubyGems bothers
>> with versioning (it's overengineering, and you don't see a use for
>> it), and on the other hand, you point out two very good reasons to
>> have it: allowing apps/libraries to cope with changes to APIs in other
>> libraries; and avoiding "CPAN upgrade hell".
>> 
>> Since there are two good reasons to tackle versioning, why not embrace
>> it?

> You are implying that the options are
>  * tackling library versioning as done by RubyGems
>  * not doing anything about it
> However, RubyGems' way to solve that is not the only possible solution.

I certainly didn't mean to imply that.  I was just fishing for
comments.

The rest of your post is very interesting; I'll just make one
comment...

> RPA will be doing "full version sets", which means that all libs within
> a RPA release will work well together. See the 2nd point in 
> http://rpa-base.rubyforge.org/wiki/wiki.cgi?Rpa_FAQ .
> One will be able to have several RPA releases installed simultaneously.

> Regarding Austin's example, diff-lcs-1.0.2 would replace diff-lcs-1.0.1
> in the last RPA release, so nobody would install 1.0.1 anymore (they'd
> get 1.0.2). diff-lcs-1.1.0 would be shipped with a later release.
> End users/developers can choose between:
> (1) committing to the API from a particular RPA release: at that point,
>     you use all the libs *from that release*. No need to perform
>     cherry-picking with a  require "foo/requirements".

... cherry-picking is not necessarily a bad thing.  In fact, I don't
see why it's even to be avoided.  A coder knows what their
dependencies are, and will test their code with certain versions of
those dependencies.  There's no dependency set in a Ruby project
that's so large as to be beyong the capability of one person to
manage.

That's not to dismiss the RPA approach one jot.  Its emphasis on
quality is excellent.

Cheers,
Gavin


In This Thread