3 ms·
> you can trivially install as many versions of the same gem as you want to satisfy the dependency requirements of other gems and apps. You say that like it's
by regularfry 16y ago
> you can trivially install as many versions of the same gem as you want to satisfy the dependency requirements of other gems and apps.
You say that like it's a good thing. The ability to do that is a large part of why it's broken. If you're a developer, yes, it's extremely convenient, and it means you never have to worry about API stability, back-ported security fixes, or even semantic versioning. You just bump the version number and push out a new release. It's a great developer tool that happens to also work for deployment if you're deploying in a language monoculture. If you're a general sysadmin, or targeting a system where rubygems isn't suitable (embedding ruby, for example), it's a bloody nightmare.
> They want to scatter the files all over their precious FHS
The "precious FHS" is part of what keeps sysadmins sane, and splitting packages isn't a problem unless filename conflicts happen. I know that rspec and cucumber used to have a problem here, I don't know if it's been fixed.
> They want to install as few versions of libraries as possible
Yes, and that is the correct approach if everything is supposed to be under control of the OS.
> after which they start mutilating random patches from upstream as 'support' instead of just shipping the new versions.
Again, this is the right thing to do, if upstream won't provide fixes, or keep to any kind of API or dependency stability. In the Ruby community, new versions tends to mean new features, which inevitably means new bugs.
> You're right that there's no way to reconcile this fundamental schism.
I didn't say that. I believe it's firmly reconcilable, with a mechanism not unlike backports. However, it does need gem authors to lay off some particularly inconvenient practices for it to be manageable. Just adhering to the RPG would be a good start.
> You're wrong about which community is breaking everything.
Rubygems is the latecomer here - standards like the FHS have been evolved over a generation before this little head-to-head happened. Besides, I don't think the "community" is breaking things. I think the "community" is behaving in a way promoted by a broken tool.