Re: New packaging guidelines for Ruby | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
|
Toshio, This discussion begins to be tiring. I'll go last time through this topic trying to explain every concern you risen in your answer and I hope not to be very personal :) Yes, I agree with you that #3 would be perfect in ideal world, but since we are not living in ideal world, I prefer #2. Since I am maintaining more than 80 rubygems out of 290 currently available in Rawhide, since I work with Ruby almost exclusively for more than 5 years, since the guidelines draft was gone through review of Ruby-SIG members, I believe you could respect more this opinion. Dne 1.3.2012 17:21, Toshio Kuratomi napsal(a): On Thu, Mar 01, 2012 at 10:05:58AM +0100, Vít Ondruch wrote: There are no problem with approach #3, since nobody uses it. I am not gonna to convert any of my packages just to prove you that you are wrong. Prove me that you are right, that rubygem-idn is the only problematic package and I'll believe you.
You don't have to care about #3 as long as you don't need it. That is the beauty. You are learning gradually. We agreed that from 290 rubygems in Fedora you need #3 for one case, yet everybody should know it. Nobody who comes from Ruby land and want to package his gem for Fedora knows anything about "gem spec" command. Yes, that is nice that you want to learn them this command right from beginning, but may be they will go away, since they would be confused what is going on.
Yes, that is good example. I never used it though and will never used it even if we went with #3. It is not useful for RubyGems, since I would never build/install the gem just to try if binary extension builds. I would go to ext dir and fired "make" (optionally preceded by "ruby extconf.rb"). Never ever "rpmbuild -bc --shortcircuit".
No, it is not. I don't need to know more about RubyGems then necessary (although it might be beneficial). If you go to package first gem for Fedora, you are RubyGems user at best and may be you are not RubyGems user at all. You just want to have something packaged. Upstream build systems are sometimes easily adaptable to the way that software should be packaged in rpms but at other times it is something that we have to work around. Take a look at packaging java code where upstream has bundled multiple versions of jar files just for their package build as an example of something even more invasive than what we're talking about here. Yes, we are unbundling other gems from gems, or even Java packages, but that is different topic. And it has nothing to do with packaging system.
I was forced by you to learn something about packaging of Python libraries and there is really nothing in common with RubyGems. If you want to compare gem, you must compare it with RPM, not with *tarball*, typically used by Python libraries. There is no "--skip-build" flag available for "gem install" command which would allow us simple move to #3.
Beneficial for whom? Upstream will care about their .gemspec file in repository they are using to build the gem. They will care about their rake taks which can build gem, because they are using them. But they will not care about any .gemspec provided by "gem spec" command. You do not understand that during the life of the library, there is several forms of .gemspec. There is probably the upstream .gemspec file (but not necessarily, it could be generated from code), which is actually executable Ruby code. Then there is some metadata in .gem file, however at this point, it was converted to YAML, hence the the "gem spec" command without additional parameters provide YAML output. Even if you used the "--ruby" flag, the .gemspec is already different then the original file used by upstream. After installing the gem by "gem install", You will get in the gems/specifications third form of the .gemspec file. From last versions of packaging guidelines we moved from #1 to #2 which solves practical problems. Move from #2 to #3 solves some artificial problems.That is incorrect. #2 is incomplete by itself. You must include #3 in order to have a workable guideline. OTOH, #3 is complete in and of itself. So leaving off #2 halves the number of specfile variations they need to know if they want to package only rubygems. I never said that #2 is complete. I said that it is practical and satisfactory in majority of cases. #3 is exceptional case and should be handled as all other exceptions. If you want some stats, it is likely 1/290, i.e. 0.35 % chance that you will need #3 for speaking about current Rawhide, hence it is exception. Yes, I agree with you that if differs a bit from other packages. Yes, I agree with you that it could be better. Yes, I proposed that I will work with upstream to allow better way of patching C extensions, without need to move to #3. Neither of this seems to satisfy you.That is correct. A workflow that looks like #3 is the correct way to package software. You are not proposing to work with upstream to make that possible but instead working with upstream to kludge their current broken process to do one more thing (patching C extensions) in a broken manner. Oh my, how you can say that other packaging system has broken process? They had different design goals and I am sure that their design goal was not compatibility with RPM nor mimic RPM. If it was so broken, then nobody would used it, but the reality is opposite. Everybody is wondering why not to stick with rubygems, why use RPM. And I see that sometimes it would be really easier. The proposed #3 is the workflow that the package build should have. If you're unsatisfied with that, you should be talking to upstream about how to adapt their build system to meet that workflow in all cases. The proposed #3 is the workflow RPM has and RubyGems does not have. There is nothing wrong with that. Please note that this [1] was the last proposal coming from me and Ruby-SIG. I am not against formal changes of the guidelines, as was done by Toshio, if FPC believes they will be better aligned with other guidelines. I never said nothing against. I totally support that effort. When I was asked to come up with the way how to patch the C extensions and I did that. However I am strongly against mandatory #3.But you have given no examples that show why it would be wrong. And without that, you're just spreading fear that a mandatory #3 will cause you issues. Come on, you gave no example that it will work for majority of cases, so how you can propose it??? If Ruby-SIG believed it is that important, it would be already mandatory in the proposal. If you're so sure that you can get close to a 100% failure rate out of #3 that is due to problems with the procedure rather than bugs in upstream packaging, you should be able to pick a random rubygem, adapt it to #3 and then expose some new type of bug that we can examine and determine why it's unworkable. Failing to do that, the argument that it won't work is just speculation, not fact. As same as from your side. Please don't try to manipulate us. Vit -Toshio |
-- packaging mailing list packaging@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/packaging
[Home] [Fedora Legacy] [Fedora Desktop] [Red Hat 9 Bible] [Fedora Bible] [Fedora SELinux] [Big List of Linux Books] [Yosemite News] [Yosemite Photos] [KDE Users] [Fedora Tools]