On 12/23/2011 04:31 AM, Vít Ondruch wrote:
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@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.


Yes, the issue with rspec was the second one. The RPM deps were modified from the gemspec, but the gem itself was left untouched.

Scott