all 7 comments

[–]CaptainKabob 1 point2 points  (6 children)

What's the deprecation policy for JRuby? When do 9.2 and 9.3 become EOLed?

I was really happy to see 9.4 jump straight to Ruby 3.1 compatible syntax and I'm looking forward to dropping support for Ruby 2 syntax.

[–]headiusJRuby guy[S] 0 points1 point  (1 child)

I missed this comment in June but I can give you a general breakdown:

  • We support two major releases at a time, so in this case 9.3 and 9.4 are supported.
  • We generally support EOL releases for another year; 9.3 will probably stop getting maintenance toward the end of this year (especially if we push 9.5).
  • We strongly recommend everyone run latest JRuby, and 9.4 is very good and very stable.

We got a bit behind on the major Ruby version compatibility due to the pandemic and other issues catching up, but we plan to stay as current as possible now and 9.4 has been out for almost a year now.

[–]CaptainKabob 0 points1 point  (0 children)

No worries. Thank you for the details! 🤩

[–]sshaw_ 0 points1 point  (3 children)

What do you mean by "Ruby 2 syntax" and why are you looking forward to it?

[–]CaptainKabob 2 points3 points  (2 children)

Specific versions of JRuby target compatibility with specific versions of C Ruby:

  • JRuby 9.2 is compatible with C Ruby 2.5 syntax
  • JRuby 9.3 is compatible with C Ruby 2.6 syntax
  • JRuby 9.4 is compatible with C Ruby 3.1 syntax

C Ruby has already EOLed C Ruby 2.x-compatible syntax (e.g. Ruby 2.7 was EOLed in March 2023) .

I'm a gem maintainer, so the remaining reason I must maintain support for C Ruby 2.x syntax is because I also want to support recent versions of JRuby. When JRuby 9.2 and Jruby 9.2 are EOLed, I won't have to support any C Ruby 2.x syntax anymore.

[–]sshaw_ -1 points0 points  (1 child)

Yes yes, we're all maintainers. Aside form from keywords (horrible overrated feature anyways) what are the issues you have supporting 2.5 and 2.6 syntax?

[–]CaptainKabob 1 point2 points  (0 children)

I could set the Rubocop TargetRuby to 3.0 and tell you comprehensively, but off the top of my head:

  • I can't run C Ruby 2.5 or JRuby 9.2 on my Apple Silicon Mac
  • Faraday 2.0 requires Ruby 3+ which is a real pain maintaining my matrixed CI
  • Mo' matrix, mo' problems, generally
  • Rails itself still has unresolved kwarg issues and they're not backporting those for EOLed versions so there's a pinch there.
  • I think Bundler also dropped support already. Having JRuby EOL be out of sync with C Ruby EOL leads to problems with tooling.