Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ruby 3.4 support #275

Merged
merged 2 commits into from
Jan 13, 2025
Merged

Conversation

murajun1978
Copy link
Contributor

Support Ruby 3.4

Fixed #273

@Laykou
Copy link

Laykou commented Jan 1, 2025

@abrom Could this be merged and released in rubygems please? Thank you!

@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
SUMMARY
spec.homepage = 'https://github.com/Studiosity/grover'
spec.license = 'MIT'
spec.required_ruby_version = ['>= 3.0.0', '< 3.4.0']
spec.required_ruby_version = ['>= 3.0.0', '< 3.5.0']
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@abrom Any particular reason to lock Ruby version so tightly in this gem?

It'll be the same problem a few months later when 3.5 is released.
The gem prevents apps using it from upgrading Ruby.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, it is not a reasonable restriction, except in the school of enterprisey business decisions. Please relegate it to the foibles of the Ruby ecosystem's past!
This is blocking upgrades for me, so I may switch to sourcing from a git fork.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@abrom Any particular reason to lock Ruby version so tightly in this gem?

It'll be the same problem a few months later when 3.5 is released. The gem prevents apps using it from upgrading Ruby.

Because it hasn't been tested

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, it is not a reasonable restriction, except in the school of enterprisey business decisions. Please relegate it to the foibles of the Ruby ecosystem's past! This is blocking upgrades for me, so I may switch to sourcing from a git fork.

Not reasonable to you, but expected by anyone who needs gems to work with the versions they're indicated as being supported by.

I agree that it is a blocker, no doubt about it. The Ruby versions releasing over what is traditionally a holiday for many, including myself, shouldn't dictate the entire community drop everything to support a pretty extreme minority who need instant version bumps 😉 . If you absolutely need to be using the latest Ruby as soon as it's released is going to result in the need, as you've suggested, for using forks.. that's a given.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@abrom I get where you're coming from, but most gems don't seem to include a maximum supported Ruby version in their gemfiles from what I can tell, and for the most part this doesn't seem to lead to any problems. Is there a particular concern that grover is likely to break on new versions?

(Grover isn't the only one — I think I noticed nokogiri did too. But they released a new version the same day. I'm absolutely not going to suggest that you should be expected to release new versions on Christmas Day; but I do wonder if removing the upper bound would lead to any actual problems.)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

😉

@erichstark
Copy link

Any updates on this?

Copy link

@pboling pboling left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not restrict to less than ruby 3.5 unless you want this gem to once again be a major upgrade blocker in 11 months.

@abrom
Copy link
Contributor

abrom commented Jan 13, 2025

Do not restrict to less than ruby 3.5 unless you want this gem to once again be a major upgrade blocker in 11 months.

You want the gem to support a yet to be released version of the language ? In all likelihood it would work.. yes.. probably. But sorry, I'm not going to open the release versions up for a probably. Each release runs through a CI suite to ensure the gem is going to behave exactly how it is supposed to. How would that work for a yet to be released language? I can assure you that the vitriol I would receive because the gem SAID it supports Ruby X.Y and then for some reason it didn't.. sigh

@abrom abrom merged commit f15b95d into Studiosity:main Jan 13, 2025
12 checks passed
@abrom
Copy link
Contributor

abrom commented Jan 13, 2025

Thanks @murajun1978 👍 Released in v1.2.2

@pboling
Copy link

pboling commented Jan 13, 2025

Each release runs through a CI suite to ensure the gem is going to behave exactly how it is supposed to. How would that work for a yet to be released language?

I can only tell you how I do it for the dozens of gems I maintain, and that is: I run the CI against ruby-head, which is the next Ruby release.

Half a billion downloads later and I haven't recieved any vitriol when a new Ruby release has broken something. I instead often get help fixing the gem, in the form of pull requests. YMMV though. Thanks for releasing, and I'll add a note to my Gemfile to switch to a fork each December.

@abrom
Copy link
Contributor

abrom commented Jan 13, 2025

I'm sure it works fine for you, but I see two big issues.

  1. it makes assumptions around you running builds often enough with RC releases such that it might pick up potential issues. Probably not an issue for an actively maintained gem.. but how many gems are there out there that have fallen into oblivion. That's not the case here, but I wouldn't want to put anyone in a position where assumptions are made about how the gem is expected to operate.
  2. it still leaves your libraries broken if there are incompatibilities for anyone who dares to update the Ruby version (which would silently skip over the breakage), and for what ever reason, is unable to update the gem version. I realise that if they're unable to update the gem they'd be unable to update the Ruby version with my preference to gem management, but it would be very clearly the developers choice to enter the unknown.

You just need to look at the number of (deprecated) breakages caused by the 3.4 release whereby a large number of baked in gems were removed. I'm not suggesting that this was the wrong move by the Ruby devs, or that these deprecations couldn't be addressed prior to the next release.. but these were breaking changes none the less.. and ones in a point release.

@murajun1978 murajun1978 deleted the add_ruby_3.4_support branch January 14, 2025 05:03
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.

Ruby 3.4 error
8 participants