-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Relax dependency versions to support more targets? #108
Comments
Did this in b4deb42. Closing as fixed. |
Well,
|
One option could be to do something like:
|
Yeah, that sounds about like what I want. Didn't know whether you could do major-version-only restrictions on |
Well, that looks like what I want to do, conceptually. But it doesn't seem to work.I tried doing that, without the brackets, here at 7c774d6. Didn't like that:
Weird thing: after I did that, there was a new file in that dir, named "1" and with 0 contents.
I also tried it without the spaces between the So I tried going wiht your "brackets around the version predicates" approach.
No love.
|
Thank you for the precise steps. I think the problem is elsewhere, let me highlight the offending line:
Can you spot the issue? The line should look like this:
IOW the difference is backtick vs single quote. The backticks are trying to execute something like |
loooool. That is totally what it was. How in the heck did I manage to do that? Clearly I've been at it too long today. I'm going to bed to get a good night's sleep; I'll talk to you again tomorrow. :) |
Should I relax the version dependencies in gemspec, and use a narrower set for testing and certain publishings? That would allow more users to install it as a gem and make use of it,
Considerations
As of 0.9.1 and especially 0.10.1, Ronn-NG's gem dependency versions are defined rather tightly, to versions that I have actually tested on and know work. That seems good for when you're shipping Ronn-NG as an "application" that expects dedicated bundled/vendored dependencies. But not all targets may be able to supply those, especially in combination with dependencies from other Ruby-based programs that define their own gem version range dependencies, in distro environments that supply the dependency gems like nokogiri or mustache as their own distro packages, so they may have a fixed single "current" version.
Relaxation would look like this: set the minimum version for ruby and gem deps as low as I think I can go and have it still work (even with a couple issues), and don't cap the maximum versions or put exclusions unless I have actually seen issues with a that version. Then have a canonical set of dependencies for test runs and "tested well/known good" deployments, the way I use Gemfile.lock now. Would prob want a few different sets of them, for targeting different Ruby versions and/or downstream distros (which may ship only specific versions of dependencies). I don't know if there's a conventional Ruby/gems way of doing that. Maybe maintain a few different Gemfile.lock files in the repo, and switch between them with some symlinking?
Analysis
Downstream Linux packagers are patching gemspec to allow newer mustache versions, because they only ship >=1.0. (Fedora, Arch Linux.) And Debian patches gemspec to relax both mustache and kramdown & nokogiri in both directions.
References
The text was updated successfully, but these errors were encountered: