Skip to content
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

rack-test 0.7.0 breaks Ruby 1.8.7 compatibility #193

Closed
segiddins opened this issue Jul 10, 2017 · 11 comments
Closed

rack-test 0.7.0 breaks Ruby 1.8.7 compatibility #193

segiddins opened this issue Jul 10, 2017 · 11 comments

Comments

@segiddins
Copy link
Contributor

rack-test-0.7.0/lib/rack/test/cookie_jar.rb:99: syntax error, unexpected ')' (SyntaxError)

Would you accept either a PR to restore 1.8.7 compatibility or to update the gemspec with a required_ruby_version?

@junaruga
Copy link
Contributor

junaruga commented Jul 10, 2017

@segiddins
Thank you for contacting.
We dropped Ruby 1.8.7 from rack-test 0.7.0 intentionally.

Ruby 1.8 has not been supported officially.
Rack 2.0 does not support Ruby 1.8 anymore.
https://github.com/rack/rack/blob/2.0.0/.travis.yml

So, I am sorry we do not support Ruby 1.8 right now.

If you are not using Bundler, I recommend you to use it.
You can control use rack-test < 0.7.0 with Gemfile.

@segiddins
Copy link
Contributor Author

What versions of Ruby does 0.7.0 support? I'll send a PR to update the gemspec so others get a clearer error message than a syntax error

@junaruga
Copy link
Contributor

We support >= 2.2.2.
https://github.com/rack-test/rack-test/blob/master/.travis.yml

It is same with rack 2.
https://rubygems.org/gems/rack/versions/2.0.1
https://github.com/rack/rack/blob/master/rack.gemspec#L29

Updating the gemspec file is better than current situation.

I would accept the PR.
Thanks.

@perlun
Copy link
Contributor

perlun commented Jul 11, 2017

@junaruga - we should probably also add a note in the README.md saying that people who are stuck on ruby 1.9 or 1.8 (like older versions of JRuby) should stay on 0.6.3. @segiddins - please include that in the PR if possible.

(We also intend to release a version 1.0.0 shortly, but we wanted to push out the 0.7.0 first to kick the wheels a bit, before marking it as 1.0.0 where the API is effectively frozen (well, until 2.x that is.))

@perlun
Copy link
Contributor

perlun commented Nov 3, 2017

@junaruga We should make a 0.7.1 or 0.8.0 release by now. Would you have time to do it?

@junaruga
Copy link
Contributor

junaruga commented Nov 4, 2017

@perlun Yes, I have a time for that. Let me check the latest update at first. Also I agree with your above comment.

@junaruga
Copy link
Contributor

junaruga commented Nov 6, 2017

@perlun @scepticulous
I prefer bumping version 0.7.1 from 0.7.0.
Because when I checked new updates, all the issue is minor enhancement or bug fix.


@junaruga
Copy link
Contributor

junaruga commented Nov 6, 2017

Sorry I changed my opinion.
And we added s.required_ruby_version = ">= 2.2.2" because rack-2.0.1, first version of rack-2.x supports it.
In my opinion, we should bump version 0.8.0.

@madwort
Copy link

madwort commented May 17, 2018

Hey guys,
Just having a slight issue here with this versioning decision, wanted to share some feedback. rack-test is a dependency of something else in one part of our company's sprawling chef setup, running on a chef installed version of ruby, which is 2.1 - so had been working up to 0.6.3 but is now broken because there wasn't a major bump at 0.7.0. I understand the logic behind 0.8.0 being a minor bump because on its own terms it is, but for me 0.7.0 should have been 1.0.0, and because it wasn't 0.8.0 should have been 1.0.0 to fix this error.
Otherwise thanks for your work!

@perlun
Copy link
Contributor

perlun commented May 17, 2018

@madwort I understand your frustration; I personally tend to get rather angry myself when things like this happens.

However, please remember what the (Semantic Versioning spec](https://semver.org/#spec-item-4) explicitly says (my emphasis):

Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.

Unfortunately, Ruby gems sometimes tend to stay at a 0.x version for far too long (in my opinion) - too long since it causes churn to the community when breaking changes do occur.

Rubocop is a good example. It was started in 2012, but still hasn't reached version 1.0. There are sometimes breaking changes between version 0.x and 0.y in Rubocop also. It's annoying, but it's technically not wrong even for gems aiming for SemVer compliance. (I don't know if this is the case with Rubocop or not.)

Now, most Ruby gems in the top 30 list (https://rubygems.org/stats) have reached version 1.0 already, which is good for the community. I skimmed through the list quickly, and the only exception to that list was rack-test (until we released 1.0 some month ago.)


Again, sorry that this caused issues for you. We will do our very best to never break SemVer compliance; the fact that we are now on version 1.0 ties us very hard to deliver on that promise.

@madwort
Copy link

madwort commented May 17, 2018

Thanks for your reply @perlun - I must confess that I'd forgotten about that caveat in the SemVer spec. Obviously all these things are a question of judgement, but as you say it seems a bit unhelpful if it gives widely used projects a way to stay in perpetual beta with no meaningful versioning policy and still be able to say they're technically compliant with SemVer... Anyway, good to see rack-test pass v1.0 so it's no longer an issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants