-
Notifications
You must be signed in to change notification settings - Fork 899
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
Remove upper bound of Active Record #1213
Conversation
They way it is was didn't allow people to try paper trail with rails master to check if it work or not. Removing the upper bound doesn't assert that the gem works with all versions, it just allow people to try themselves and even open PRs fixing what is broken.
Hi Rafael,
To test compatibility with new versions of rails, I use my fork of PT, I edit the gemspec, and use
Removing the upper bound will cause people to install incompatible PT/rails pairs. Then, instead of a friendly message from bundler like "PT X doesn't work with rails Y", the user will get a confusing error, or worse, may discover the incompatibility in production. This could be a very bad experience for a beginner. I respect your opinion greatly, but removing the upper bound sounds dangerous to me. I'll have to think carefully about this, and I'd welcome other considered opinions. |
Yeah, that works for testing, but the problem is that I don't want to test compatibility, I want to use in my application. My app is always running on Rails master. This upper bound basically means we have to run a fork or wait added official support, what usually takes months after the final release of Rails. That is not only inconvenient but impractical. I also understand your concerns as well. I had the same reservations before until we change the policy on Rails itself to remove upper bounds on everything. In theory the problem you are describing exists but in practice you get more reports of "bundler don't let me install this" than "I tried this gem with rails master and it gave me this weird message or broke my app in production". Rails does follow SemVer, it is just don't use the number in the same way, but it is very hard to Rails to break any behavior without deprecating it before. Some times we need to change the gem to remove deprecation calls but if you don't do the users will only see the deprecations message, not break their application. Looking the last upgrades it seems only tests or gemspec where changed, what shows that Rails releases are stable for your usage at lest. All my gems don't have upper bound and it didn't caused any compatibility report like the ones your are mentioning. |
I've looked at the requirements of some popular gems. Some of the most important gems, like devise, have upper-bound requirements, but many do not. The latter practice is more common than I realized.
|
devise doesn't have anymore https://github.com/plataformatec/devise/blob/master/devise.gemspec#L25 |
Same for active_model-serializers https://github.com/rails-api/active_model_serializers/blob/master/active_model_serializers.gemspec |
Please take a look at #1216 and let me know if it works for you. |
Closed by #1216, will release in 10.3.1 |
The way it is was didn't allow people to try paper trail with rails master to check if it work or not. Removing the upper bound doesn't assert that the gem works with all versions, it just allow people to try themselves and even open PRs fixing what is broken.