←back to thread

333 points steveklabnik | 4 comments | | HN request time: 0.63s | source
1. dismalaf ◴[] No.45035147[source]
Has anyone ever actually had anything break from a Ruby version update? I know Matz basically never does breaking changes, last I remember is the 1.8.7 -> 1.9.2 update...

I've only ever just straight up downloaded the source and installed it myself, never had any issues with Ruby updates...

replies(2): >>45035260 #>>45035757 #
2. chao- ◴[] No.45035260[source]
Depends what you mean by "break". There have been backwards-incompatible changes, but as you say, very few since the 1.8.7 to 1.9.X jump.

I can think of one meaningful breaking change going from 2.7 to 3.0, where the longtime behavior of creating an implicit "options hash" as the last argument to a method was finally removed. It was gradual though. First we got keyword arguments. Then keyword arguments got faster. Then there were two versions of warnings about the removal of the old, implicit options hash. Thus if you really wanted to kick the can down the road, you had about 5 years where you could be on a "supported" Ruby version without having fixed your code. Plus the change required was relatively simple outside of a few edge cases.

The best part was that most of the community was pretty good about upgrading gems across the years of warnings we had for this. Hats off to the maintainers and contributors for that!

3. oezi ◴[] No.45035757[source]
They moved quite some things out of the standard library so you need require/gems for some things which used to be batteries included.

Also small changes like File.exists? being deprecated and then removed.

replies(1): >>45040909 #
4. dismalaf ◴[] No.45040909[source]
Yeah, and for some of these changes they gave you warnings for like a year straight in preparation.