DEV Community

Cover image for RRRRb Matrix (Ruby, RubyGems, RuboCop, Rails, Bundler)
Peter H. Boling
Peter H. Boling

Posted on Edited on

RRRRb Matrix (Ruby, RubyGems, RuboCop, Rails, Bundler)

Other posts in my Compatibility Matrix Series

NOTE: This blog post is now an encoded matrix in a regularly updated gem: kettle-rb

The world needs a modern matrix showing the maximum working versions of things in Ruby-land. So I made this.

ruby MRI ARM64&
MacOS 12
gem bundler rubocop
(install)
rubocop-lts
(eval)
rails
1.8.7-p374 🙅 👋 0.1 4.0.x
1.9.3-p551 🙅 2.7.11 1.17.3 0.41.2 2.0 4.2.11.3
jruby-1.7.27 1.9 🌱 👆️ 👆️ 👆️ 👆️ 👆️
2.0.0-p648 🙅 👆️ 👆️ 0.50.0 4.0 👆️
2.1.10 🙅 👆️ 👆️ 0.57.2 6.0 👆️
2.2.10 🙅 👆️ 👆️ 0.68.1 8.0 5.2.8.1
2.3.8 🙅 3.3.27 2.3.27 0.81.0 10.0 👆️
jruby-9.1.17.0 2.3 🌱 👆️ 👆️ 👆️ 👆️ 👆️
2.4.10 🙅 👆️ 👆️ 1.12.1 12.0 👆️
2.5.9 🙅 👆 👆️ 1.28.2 14.0 6.0.6.1
jruby-9.2.21.0 2.5 🌱 👆️ 👆️ 👆️ 👆️ 👆️
2.6.10 🌱 3.4.22 2.4.22 1.50.2 16.0 6.1.7.10
jruby-9.3.15.0 2.6 🌱 👆️ 👆️ 👆️ 👆️ 👆️
2.7.8 🌱 👆️ 👆️ 1.80.x 18.0 7.2.2.2
3.0.7 🌱 3.5.23 2.5.23 👆️ 20.0 👆️
truffleruby-22.3.1 3.0 🌱 🙅️* 🙅️* 👆️ 👆️ 👆️
3.1.7 🌱 3.6.9 2.6.9 👆️ 22.0 👆️
truffleruby-23.0.0 3.1 🌱 🙅️* 🙅️* 👆️ 👆️ 👆️
jruby-9.4.12.x 3.1 🌱 👆️ 👆️ 👆️ 👆️ 👆️
3.2.9 🌱 3.7.x 2.7.x 👆️ 24.0 8.0.x
truffleruby-23.1.2 3.2 🌱 🙅* 🙅️* 👆️ 👆️ 👆️
3.3.9 🌱 👆️ 👆️ 👆️ 👆️ 👆️
truffleruby-24.1.x 3.3.5 🌱 🙅️* 🙅️* 👆️ 👆️ 👆️
3.4.7 🌱 👆️ 👆️ 👆️ 👆️ 👆️

* truffleruby intentionally does not support upgrading rubygems / bundler at all.

Rubocop-LTS Even Versions:

"0.1.1"
"2.x.x"
"4.x.x"
"6.x.x"
# ... etc
Enter fullscreen mode Exit fullscreen mode

rubocop-lts has even versions (odds are deprecated or non-extant).

Latest even releases can be installed on Ruby 2.7+, but are able to evaluate Ruby code down to the minimum they target.
For example, rubocop-lts version 0.1.1 targets Ruby 1.8, and will work on libraries that support Ruby 1.8 - 3.x.
This is intended for applications and libraries that lint against a range of Ruby versions,
starting at some minimum version.

Magic install commands

On old Rubies you can't run gem update --system, nor bundle update --bundler, because they have fallen out of support. So in order to upgrade to the latest version that will work with an older ruby you can do this instead:

RUBYGEMS_VERSION=3.4.22
# Adds > /dev/null 2>&1 to make it quiet
gem install rubygems-update -v ${RUBYGEMS_VERSION} > /dev/null 2>&1
# Updates both RubyGems and Bundler!
update_rubygems > /dev/null 2>&1
Enter fullscreen mode Exit fullscreen mode

Support & Funding Info

I am a full-time FLOSS maintainer. If you find my work valuable I ask that you become a sponsor. Every dollar helps!

🥰 Support FLOSS work 🥰 Get access "Sponsors" channel on Galtzo FLOSS Discord 👇️ Live Chat on Discord
OpenCollective Backers OpenCollective Sponsors Buy me a coffee Donate at ko-fi.com Donate on PayPal Donate on Polar Sponsor Me on Github Liberapay Goal Progress

Cover Photo by Sufyan

Top comments (1)

Collapse
 
alia_noza_2ca70e5b73f0382 profile image
Alia Noza

Very useful!