algolia/algoliasearch-client-ruby

Consider dropping Ruby 1.9.3 for our v1 branch

aseure opened this issue · 3 comments

  • Algolia Client Version: 1.Y.Z
  • Language Version: Ruby 1.9.3

Description

Our current v1 is built and tested in Travis against the following Ruby versions:

  • 1.9.3
  • 2.0
  • 2.1
  • 2.2
  • 2.3
  • 2.4
  • 2.5

As of today (Sep. 9th 2020), here is the current maintenance status of those versions:

  • 1.9.3 EOL since Feb. 2015
  • 2.0 EOL since Feb. 2016
  • 2.1 EOL since Mar. 2017
  • 2.2 EOL since Mar. 2018
  • 2.3 EOL since Mar. 2019
  • 2.4 EOL since Mar. 2020
  • 2.5 security maintenance

While I would not recommend to drop our support for all EOL versions, I'd like to discuss the possibility to drop the support for Ruby 1.9.3, effectively moving our minimum requirement to Ruby 2.0.

The main reason for this change is that I've tried today to document our setup and tooling installation for the Ruby client v1 and both rvm and bundler do not support anymore Ruby versions <2.0 (or at least, do not make any effort to support them, like it's the case for rvm). This means that among our current maintainers, no one clearly knows how to build a reproducible setup to test Ruby 1.9.3 locally, and all rely on Travis build, which often fails and gets harder and harder to debug.

To help with this decision, here are some numbers taken from Ruby surveys:

My take is that no one ran 1.9 locally in years, only CI is able to install is today 😄
I'd not try to make it work locally by keep compatibility as long as CI keep passing, as a best effort. I'd recommend dropping it when there is a bug or a failure we can't fix.

As far as I understand, v2 is around the corner so v1 will stop receiving updates soon.

I'm aware i'm being very conservative here and I'm sure dropping 1.9 support today won't be an issue at all.

I'd not try to make it work locally by keep compatibility as long as CI keep passing, as a best effort. I'd recommend dropping it when there is a bug or a failure we can't fix.

Agree with you but I think we crossed this point already.

Our recent PRs on Ruby v1 are blocking because dependency issues due to Ruby 1.9.3 compatibility. At first, we've tried with @chloelbn to find older versions of our direct/transitive dependencies that used to build on master... only to discover that the bundler version we are using is having bugs in its dependency resolution algorithm, and we cannot upgrade bundler since the newer versions which include the fix all required Ruby 2.0 or higher. 😅

I agree with @aseure, and we can't keep our PRs from being merged into v1 because of a dependency problem on Ruby v1.9. I would propose to drop the support and remove it from the CI as well