Skip to content

Remove Ruby 3.2 version guards#1258

Merged
eregon merged 6 commits into
masterfrom
ak/remove-ruby-3-2-version-guards
May 5, 2025
Merged

Remove Ruby 3.2 version guards#1258
eregon merged 6 commits into
masterfrom
ak/remove-ruby-3-2-version-guards

Conversation

@andrykonchin
Copy link
Copy Markdown
Member

@andrykonchin andrykonchin commented May 2, 2025

Ruby 3.1 EOF is 2025-03-26 so we don't need ruby_version_is "3.2" guards anymore.

https://www.ruby-lang.org/en/downloads/branches/

@andrykonchin andrykonchin force-pushed the ak/remove-ruby-3-2-version-guards branch from 5e8f408 to 9aac6f7 Compare May 2, 2025 17:06
@headius
Copy link
Copy Markdown
Contributor

headius commented May 2, 2025

Perhaps this is a bit premature? I think we should wait some amount of time after the eof to remove support for running the specs on 3.1. The impact to maintenance seems minimal.

@eregon
Copy link
Copy Markdown
Member

eregon commented May 2, 2025

Since the work is (almost) done I don't see much point in delaying it.
I suppose you're thinking about JRuby 9.4, that can just use a pinned ruby/spec and mspec commit (which will be documented in the README).
We don't import specs from non-master branches anyway, so specs on ruby implementations non-master branches are basically already frozen AFAIK.

@headius
Copy link
Copy Markdown
Contributor

headius commented May 2, 2025

Whether 3.1 is EOF or not does not mean people are not still using it (and JRuby 9.4). Dropping support for running new specs on 3.1 means any spec behaviors that apply to 3.1 will not get tested and verified on those implementations.

What's the rush to remove it? It's been EOF for just over a month.

@eregon
Copy link
Copy Markdown
Member

eregon commented May 4, 2025

Whether 3.1 is EOF or not does not mean people are not still using it (and JRuby 9.4). Dropping support for running new specs on 3.1 means any spec behaviors that apply to 3.1 will not get tested and verified on those implementations.

As I said, CRuby release branches do not update specs after branching off, so it's not tested (in ruby/ruby) anyway.
AFAIK JRuby doesn't update ruby/spec on release branches either (but even if it did I wouldn't change my mind, the whole Ruby ecosystem won't support everything longer because JRuby 9.4 supports an old Ruby version).

CRuby has regularly removed support for EOF Rubies in specs, I suppose to avoid dead code in their repository, etc.
It also enables testing less Rubies in ruby/spec & ruby/ruby & truffleruby CI (because all these check all supported ruby/spec CRuby version run specs fine), simplifies quite a few specs, and makes it easier to write new specs (by not having to care about old EOL Rubies).

It's part of regular maintenance, we drop specs for Ruby versions soon after they are EOL in ruby/spec, it's been like that for years.

Finally, given the very few contributions from JRuby to ruby/spec since 2013 I'm not willing to spend any extra effort for it or such requests.
In fact it seems you released JRuby 10 without writing a single spec for 3.4 or even creating the issue with the list.
Such requests seems unreasonable in this context, that's not how OSS works (i.e. JRuby needs to contribute more to have a say here).

Comment thread library/set/add_spec.rb
The Set class is available as a built-in one without the need for require "set" in Ruby 3.2.
https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/
@eregon eregon merged commit 4d80b75 into master May 5, 2025
22 checks passed
@eregon eregon deleted the ak/remove-ruby-3-2-version-guards branch May 5, 2025 15:00
@headius
Copy link
Copy Markdown
Contributor

headius commented May 5, 2025

Finally, given the very few contributions from JRuby to ruby/spec since 2013 I'm not willing to spend any extra effort for it or such requests.

We do contribute specs when we find gaps in coverage. Most of our time is spent on addressing issues for production users of JRuby and working to get existing tests and specs passing.

Given that JRuby development is now completely funded by our users, we have to prioritize user support over writing specs for new language features they are not going to be using.

We appreciate your spending development time on specs and will try to contribute more now that JRuby 10 is up to 3.4ish compatibility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants