| Summary: | removal of lib/bundler/vendor in rubygem-bundler produces a broken bundler gem in 1.3+ | ||
|---|---|---|---|
| Product: | [Fedora] Fedora EPEL | Reporter: | Allen Hewes <allen> |
| Component: | rubygem-bundler | Assignee: | Vít Ondruch <vondruch> |
| Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | high | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | el5 | CC: | bkabrda, jstribny, mtasaka, shreyankg, vondruch |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | i386 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2013-10-01 20:26:34 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
|
Description
Allen Hewes
2013-09-20 17:33:19 UTC
Umm? F-18 latest rubygem-bundler is 1.1.4-2.fc18. Is this really against F-18 rubygem-bundler report? (The reason for my question is that your log shows: /usr/share/gems/gems/bundler-1.3.1/lib/bundler/cli.rb:20:in `<class:CLI>': undefined method `stop_on_unknown_option!' for Bundler::CLI:Class (NoMethodError) ) Hi Mamoru, Yeah, no. Technically, it's RHEL 5. I just choose F18 because that's my work machine and I didn't know what else to create it under. But OS, doesn't change the fact that the removal of "lib/bundler/vendor" produces a broken bundler. I use Fedora 18 with mock to "produce" my packages, then I use Koji running on RHEL 5 to cook them and mash them. My production servers are all RHEL 5. Then this bug report must be against RHEL (or EPEL) 5, not for Fedora 18. Your report does not mean that "Fedora's" bundler is broken. I don't know the current status for RHEL 5 / EPEL 5, however anyway switching target. Well, I may be misunderstanding, would you explain your situation clearer? - So is it correct that you are not running Fedora 18 when you use bundler but using RHEL5? - and then what rubygem-bundler rpm you are actually using? And is the rpm really targetted for the OS / version you are using? (The reason I am asking this is that I cannot find rubygem-bundler build for EPEL 5: http://koji.fedoraproject.org/koji/packageinfo?packageID=11569 ) For now one more question: "what" rubygem-thor rpm is installed? Hi Mamoru, I think that debian bug report is it. I went up to 0.16 or some such for thor and it still failed for me. I went back to using rubygem-thor-0.14.6 after I changed my rubygem-bundler-1.3.1 to leave the "lib/bundler/vendor" directory in tact. I have a hard requirement to use bundler 1.3+, so it's been a few months since I looked at this. I suspect that I completely missed the thor update in Feodra two days prior to bundler being bumped to 1.3.1. I will update my stuff and let you guys know. I know for sure that I didn't try thor 0.17+. I think I'm gonna get some egg on my face... Hi Mamoru, Thanks for the pointer. I spent some time reading all of the commits and found what you (Vit on ruby-sig) have been talking about. I actually think I found another problem; net-http-persistent. I've had HTTP connect issues on and off with gem.fury.io and other SSL enabled bundler endpoints. Ugh. Should the bundler packaging and gemspec be modified to require the proper "gemed" versions of thor and net-http-persistent? Maybe even patch the bundler files? Thanks again, I'm sorry for wasting your time. (In reply to Allen Hewes from comment #8) > Should the bundler packaging and gemspec be modified to require the proper > "gemed" versions of thor and net-http-persistent? Maybe even patch the > bundler files? My usual thought for this is that - If the lowest EVR (Epoch-Version-Relase) of the package "foo" shipped on a stable branch satisfies the actual dependency for the package "bar", there is no need for writing explicit version dependency for "foo" on "bar" spec file, otherwise explicit version dependency is needed. So for example - the _highest_ EVR of rubygem-bundler currently being shipped on F-19 is rubygem-bundler-1.3.1-1.fc19. which requires thor >= 0.17.0(?) and net-http-persistent (the least version I don't know). - The _lowest_ EVR of rubygem-thor being shipped on F-19 is rubygem-thor-0.17.0-1.fc19, which satisfies thor >= 0.17.0, so _IN MY OPINION_ explicit version dependency need not be written on rubygem-bundler spec file. Note that there is Fedora packaging guideline https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Explicit_Requires , especially the line ''' For instance in the example above, when no current Fedora release shipped with libfubar < 1.2.3-7, it is no longer necessary to list the explicit, versioned requirement. ''' , which reads that if the lowest EVR of _the lowest stable branch_ (currently F-18) of the package "foo" does not satisfy the requirement for package bar currently shipped on stable branch, explicit version Requires is needed, however in my opinion this is overkill. Users are not expected to use mixed rpms from both F-18 and F-19, for example. Hi Mamoru,
Yep, I know about the guidelines.
I should have asked if there are any plans to update bundler within Fedora releases. Which would make the position I was taking valid; bundler updates within a Fedora release (should) might have to have hard Requires/BuildRequires because of what's going on upstream.
Here's what I found for bundler 1.3.1 onwards:
bundler 1.3.1 onwards
thor 0.16.0 with
efc387cb726f3563244a880401b7b7f0c64fad07
88b9f4bb78625eb1c6bf3bf287c551a4759ef9d2
net-http-persistent 2.8 with
8db9c0a63d2b804509225696be9c102b3d50c825
So it looks like a gemed version of thor that is at least 0.17.0 will satisfy bundler 1.3.1-1.3.5 versions, bundler 1.4 is just around the corner.
The net-http-persistent commit is for "cleanup trailing whitespace".
So this build never made it:
http://koji.fedoraproject.org/koji/buildinfo?buildID=394719
I don't know enough about Fedora's koji tags to know what "f19-rebuild" means, i.e. if this package landed in the normal yum repositories.
Well, koji list tag shows: $ TZ=GMT koji list-tag-history --build=rubygem-thor-0.16.0-3.fc19 Mon Feb 18 06:19:53 2013: rubygem-thor-0.16.0-3.fc19 tagged into f19-rebuild by ausil [still active] Tue Feb 19 13:40:47 2013: rubygem-thor-0.16.0-3.fc19 tagged into f19 by ausil Wed Mar 20 18:25:19 2013: rubygem-thor-0.16.0-3.fc19 untagged from f19 by ausil So I guess rubygem-thor-0.16.0-3.fc19 was in F-19 buildroot from 2013-02-19 to 2013-03-05 (then next thor was built), at this stage F-19 was not released, so for now I say it is okay. Then: (In reply to Allen Hewes from comment #10) > Hi Mamoru, > Yep, I know about the guidelines. > > I should have asked if there are any plans to update bundler within Fedora > releases. Which would make the position I was taking valid; bundler updates > within a Fedora release (should) might have to have hard > Requires/BuildRequires because of what's going on upstream. > > Here's what I found for bundler 1.3.1 onwards: > > bundler 1.3.1 onwards > thor 0.16.0 with > efc387cb726f3563244a880401b7b7f0c64fad07 > 88b9f4bb78625eb1c6bf3bf287c551a4759ef9d2 > net-http-persistent 2.8 with > 8db9c0a63d2b804509225696be9c102b3d50c825 > > So it looks like a gemed version of thor that is at least 0.17.0 will > satisfy bundler 1.3.1-1.3.5 versions, bundler 1.4 is just around the corner. This is up to how Vít thinks, however generally speaking breaking API / ABI on stable branch is forbidden, so (unless it is guaranteed or maintainer verifies that it won't change API or so), a kind of upgrade from 1.3.x to 1.4 is not allowed: http://fedoraproject.org/wiki/Updates_Policy#Philosophy (Note that some upstream care for versioning not so much and just increase version like 1.8 -> 1.9 -> 2.0 -> 2.1 ... , so what "major version upgrade" means must be judged per each package) > The net-http-persistent commit is for "cleanup trailing whitespace". > > So this build never made it: > http://koji.fedoraproject.org/koji/buildinfo?buildID=394719 > > I don't know enough about Fedora's koji tags to know what "f19-rebuild" > means, i.e. if this package landed in the normal yum repositories. f19-rebuild (only) tagged packages never landed into yum repositories. Once mass rebuild was done, a responsible Fedora member tagged all f19-rebuild tagged packages as f19 also, then the packages appeared in F-19 (development) yum repository. Mamoru, Thanks for all the information (and patience)! Closing. |