[Rubygems-developers] Gem#status?

Daniel Berger djberg96 at gmail.com
Thu Nov 13 09:10:54 EST 2008


On Thu, Nov 13, 2008 at 4:13 AM, Luis Lavena <luislavena at gmail.com> wrote:
> On Thu, Nov 13, 2008 at 2:26 AM, Daniel Berger <djberg96 at gmail.com> wrote:
>> Josh Susser wrote:
>>>
>>> On Nov 12, 2008, at 4:39 AM, Ryan Davis wrote:
>>>
>>>>
>>>> On Nov 11, 2008, at 10:59 , Phil Hagelberg wrote:
>>>>
>>>>> Really? String#<=> is pretty well-understood as far as I can tell.
>>>>
>>>>
>>>> yes... it is very well understood to be very bad for this problem:
>>>>
>>>> >> "a2" <=> "a11"
>>>> => 1
>>>> >> 2 <=> 11
>>>> => -1
>>>
>>>
>>> So use a.1 and a.11 instead of a1 and a11
>>>
>>>  def test_order
>>>    numbers = %w[ 1.0.a 1.0.a.1 1.0.a.2 1.0.a.11 1.0.b.1 1 1.0.1 1.2 ]
>>>    versions = numbers.collect { |n| Gem::Version.new(n) }
>>>    assert_equal numbers, versions.sort.collect { |v| v.parts.join(".") }
>>>  end
>>
>> I can't say I like where this is going.
>>
>> In my opinion this is going to lead to unforeseen issues. I don't know what
>> those issues are exactly, I just have a very bad feeling about it.
>>
>> I recommend holding off on this for now.
>>
>> Regards,
>>
>
> My guts tell me the same, but I guess is too late since several of
> these commits made to the trunk already.

What's done can be undone.

> There is already a big nightmare (not to say gem hell) related to
> preview/rc gems laying in github or rubyforge that complicate the
> environment of many users (I get several reports about that). As
> example I can mention rspec gem depending on a patched version of rcov
> that only exist in github and has no binaries for it.

I feel like there's an element of personal responsibility here that
we're trying to work around with a technical solution.

> Having that dependency buried and hidden from users make it hard to track.
>
> I believe pushing RC or preview versions to rubyforge will make "gem
> update" for several users a nightmare. As example, take gems that
> require compilation.
>
> Noone cares about this situation, but rubygems is dumb in this aspect,
> it will pick the latest version available with "ruby" as platform and
> try to compile it. If you lack the toolchain (either b'cause you're in
> a server or in Windows) you will make your environment bomb out and
> get lot of negavtive experiences from users.

This is one of the reasons I think we need to bring back generic
platform constants. But, that's another story.

> Previously, no RC or preview gem was published to rubyforge. Previews
> and RC where available through private gem servers to avoid this
> situation letting the developers control how and when these gems will
> hit the mirrors and made into the public.

I'm tempted to say that it should be left this way. You really want to
install an RC release? You'll have to go through a little extra effort
to get it.

> I don't see big OS distros like Ubuntu or even debian opening the room
> for RC and preview packages to their official distribution
> repositories.
>
> Anyway, just my PoV, this will also render useless patterns like "~>"
> and even worse dumb developers that do not check or maintain their
> dependency list properly.

Plus, as you mentioned in a later email, we'll need to work out the
rules for gem clean and gem uninstall.

Regards,

Dan


More information about the Rubygems-developers mailing list