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

Upgrade ruby version to 2.4.2 #377

Open
shirshendu opened this issue Mar 5, 2018 · 2 comments
Open

Upgrade ruby version to 2.4.2 #377

shirshendu opened this issue Mar 5, 2018 · 2 comments
Assignees

Comments

@shirshendu
Copy link

shirshendu commented Mar 5, 2018

Ruby 2.0.0 has been EOL since 24th Feb 2016 (https://www.ruby-lang.org/en/news/2015/12/16/ruby-2-0-0-p648-released/). We need to move the project to a later ruby which is maintained, and yet keeping the project possible to install just as easily on a fresh RHEL/CentOS box.

My current thoughts for going about this would be to bump the ruby version in our project to 2.4.2, and add installation guidelines, depending on RHSCL - rh-ruby24. (https://www.softwarecollections.org/en/scls/rhscl/rh-ruby24/)
The main concern here is, would downstream deployments be open to depending on (potentially) an additional channel?
What are the constraints that downstream deployments are working with? Open to alternative suggestions.

Updates would possibly be required to the README, service file, Tendrl/ansible (add SCL repo, ruby2.4.2 installation), and maybe even the copr build process (but need to verify that).

@TimothyAsirJeyasing
Copy link
Contributor

TimothyAsirJeyasing commented Mar 6, 2018

Sure, we can work on this issue for downsteam as well. We may need to verify and update each dependency gems of tendrl.

@mbukatov
Copy link
Contributor

mbukatov commented Mar 16, 2018

The primary factor here is that we are building on top of RHEL 7 operating system (one can deploy on CentOS 7 as well, but this is the same system from developer's point of view). Which means that we should work with packages available in RHEL.

Now you have a good point with the ruby 2.0.0 EOL, but RHEL 7 will be supported for much longer time frame, which means that maintenance of ruby is not our (tendrl devel team) problem.

The approach with software collection is a good one, but it doesn't fit our use case:

  • The support of software collection is short (few years) compared to RHEL (10 years and more if you pay extra money), and has different life cycle compared to RHEL, GlusterFS and Tendrl. This means that we would need to track changes in the collection, retest and make updates if needed.
  • In downstream, using the collection would require a separate subscription.
  • It would make the packaging more complicated for us, as all ruby packages we have in our dependencies repository would need to be packaged as software collection, which is a subcollection of the ruby 2.4 collection. Moreover this could mean maintaining much larger set of ruby packages compared to what we have today, because the ruby collection contains only minimal set of packages compared to what is available in rhel repositories.

I believe that software collection would make sense for rhel/centos users who want to build and maintain their own ruby apps using different ruby version for themselves.

But for us, this seems like a lot of work and additional complexity, especially when we consider that the api is only one component from many we have. I would say that we should focus on a core goal of our project. If we were a ruby only project, it would be worth consideration, but we are not.

So I'm for staying on system ruby 2.0.0, keep the stack and dependencies simple as possible and if we have some doubts about a critical bug or security issue in this ruby version, we can ask security folks about it.

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

3 participants