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

Move to Ruby 2.0.0 #48

Closed
JacksonGariety opened this issue Aug 22, 2013 · 2 comments
Closed

Move to Ruby 2.0.0 #48

JacksonGariety opened this issue Aug 22, 2013 · 2 comments

Comments

@JacksonGariety
Copy link

Moving to Ruby 2.0 would encourage open source contribution and improve code interpretation.

@dhedlund
Copy link
Contributor

Thanks for the suggestion!

Moving to Ruby 2.0 would improve performance, especially relating to memory management and app startup time. However, there is not much in the way of language syntax or library changes that suddenly add a lot of awesome sauce, at least nothing that I'm aware of. I'm also a little hesitant to use any 2.0-specific additions or syntax sugar, which would require ruby-2.0 for all developers wanting to work on the project; I'm guessing that a sizable proportion of developers probably don't have 2.0 installed yet as it was only released 6 months ago. Can you elaborate more on what you mean?

If you'd like to test the app out and look for incompatibilities with Ruby 2.0, you can set the IGNORE_RUBY_VER=1 environment variable which will turn off explicit version checking in the Bundler Gemfile. It's possible that some of the gems we use, some of which are not actively maintained anymore, will not be 100% compatible, at least not with the versions we have defined in our Gemfile. For example, there were some changes in how Object#dup works that broke rails 3.x in subtle ways until the 3.2.13 release a few months ago, see: rails/rails#9417. We're using that newer compatible release but it's possible that other libraries or our own code base might also be affected by the Object#dup change or similar subtle incompatibilities.

Doing things like upgrading to Rails 4 (russian doll caching which makes issue #32 easier, live streaming), switching to use strong_params instead of model-level mass-assignment protection and otherwise cleaning up the code base would be more noticeable to a new developer coming into the project.

TL;DR: Unless a strong argument can be made, I am hesitant to support introducing any changes that break compatibility with people who still want to use ruby/MRI-1.9.3, as it is still well supported in the community and no end-of-life date has been hinted at yet. I'm in strong support of someone testing out the project on Ruby 2.0 and seeing if everything is compatible so we can say "yes, if you have ruby2.0, you can deploy or develop under it but it must retain compatibility with 1.9.3"; our test coverage isn't perfect and running our tests doesn't verify the gems we depend on are actually compatible. Can we revisit the 2.0-only idea in another 6-8 months and see how much the landscape has changed?

(an additional part of this hesitation is that I'd love to see the remaining kinks worked out to enable running the project on both Rubinius/RBX and JRuby, which also don't have support for the 2.0-specific features yet)

@dhedlund
Copy link
Contributor

The underlying concern for this issue was that ruby 2.0 didn't work out of the box with absolutely no modifications. I have opened issue #65 to address this.

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

2 participants