2.4 released 23 December 2016, latest 2.4.10.
Ruby 2.4 reached end of life on 31 March 2020.
What changed
Ruby 2.4 unified the former Fixnum and Bignum integer classes under Integer, while retaining the old constants as deprecated aliases for compatibility. It added APIs including Enumerable#sum, Comparable#clamp, Hash#compact, Hash#transform_values, Regexp#match?, and String#unpack1. Regexp#match? provides a predicate-style match check without creating match data or changing the special regular-expression match variables. The cycle also changed behavior relevant to native extensions and metaprogramming code that inspects or distinguishes integer implementation classes.
What staying costs
Ruby 2.4 has reached end of life, so upstream no longer provides fixes for newly discovered security defects or correctness problems in the interpreter and its bundled standard libraries. A distribution may independently backport selected fixes, but that does not restore upstream maintenance for the runtime. Dependency risk increases as gems, test tools, operating-system images, and native-extension toolchains stop testing or supporting this Ruby version. Code that remains on 2.4 also cannot use syntax and runtime APIs introduced by later Ruby lines, which can force dependency pins and make upgrades more expensive. Native gems may be particularly exposed because they must remain compatible with both Ruby's C API and the platform compiler and library stack.
What to do
Select a currently supported Ruby target based on application, framework, and deployment-platform compatibility. Establish a reproducible baseline with the newest available Ruby 2.4 patch release, a locked dependency set, and a passing test suite before changing the runtime. Run the application, test suite, static checks, and production-like jobs on the target Ruby; update dependencies that declare incompatible Ruby requirements or use unsupported syntax. Review application code and C extensions for assumptions about Fixnum and Bignum, then rebuild and test all native gems on the target platform. Update CI images, container bases, deployment runtimes, and version constraints together so that the old interpreter is not reintroduced by a build or operational path. Use a staged deployment with monitoring for exception-rate, encoding, TLS, and native-extension failures before retiring Ruby 2.4.
We can tell you what moving off Ruby 2.4 involves.
What it takes to move off Ruby 2.4 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.
Not sure yet? Get my plan
