New Ruby Guidelines Draft

Vít Ondruch vondruch at redhat.com
Fri Dec 23 09:31:01 UTC 2011


Dne 22.12.2011 17:19, Scott Seago napsal(a):
> On 12/22/2011 09:09 AM, Vít Ondruch wrote:
>>> - In the Rubygems section:
>>>
>>> "For every dependency on a Gem named|gemdep|, the package must contain a|Requires|  on|rubygem(%{gemdep})|  with the same version constraints as the Gem"
>>>
>>> Can this be a "should" or can we append a "where possible" onto the end of this. I've run into situations in the past where the constraints on the upstream gem are too restrictive, and infact the gem will work with a more lax gem set which we ship in Fedora
>>
>> You are right. We should not be as strict. Actually, I believe that 
>> we should not use version unless necessary. We will try to polish 
>> this formulation according to your suggestion.
> Actually, we need to be very careful here. We've been bitten in the 
> past by creating RPMs with deps that don't strictly follow the gem 
> deps, since you then have a gem installed that, strictly speaking, 
> doesn't meet its gem dep requirements. If you end up using bundler for 
> something, it's going to complain. We had a big problem with this when 
> we had an RPM for which the underlying gem required rspec (2.0+), but 
> we required the rspec sub-packages instead.
>
> Scott
>
>
> _______________________________________________
> ruby-sig mailing list
> ruby-sig at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/ruby-sig

Scott,

I understand your point, unfortunately there is not good solution. In 
Fedora, if you are *not* developer, then you have always one set of 
packages which should work together and this should be ensured by its 
packagers, i.e. the packagers in Fedora should replace the Bundler in 
Ruby world. I know, its probably to much should but that is how it 
works. Let me give you one example I remember:

If you are using Rails 3, their dependency says that they needs Rack ~> 
1.3. However, we had in Fedora just Rack 1.1 and unresponsive 
maintainer. So how would you solve it? We chosen to relax the Rails 
dependency to ~> Rack 1.1 and everything worked just fine. However, if 
you used your Gemfile.lock, it obviously either did not work on other 
platforms or did not worked for Fedora. So in this case you can either:

1) Do not use Bundler.
2) Provide more Gemfile.lock, for each Fedora version etc.

Generally I am fan of 1) and I would say we are using it quite often 
already. There is plenty of gems which are trying to use Bundler to 
execute their test suite and the best solution IMO is just to remove 
"require 'bundler/setup'" and you don't rely on the Bundler anymore.

Btw the problem with RSpec might be of two natures. Either you tried to 
use Gemfile.lock which was not specific for the Fedora you used or it 
was bug in packaging, i.e. the packager specified some RPM requirements, 
but forgot to update the .gemspec to proper versions. Speaking about 
that, we should note how to do that.


Vit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/ruby-sig/attachments/20111223/671c8c1c/attachment.html>


More information about the ruby-sig mailing list