Skip to content

[Ruby] Ruby 3.0 is now the minimum (dropping Ruby 2.7)#29942

Merged
iBotPeaches merged 8 commits into
masterfrom
drop-ruby27
May 14, 2026
Merged

[Ruby] Ruby 3.0 is now the minimum (dropping Ruby 2.7)#29942
iBotPeaches merged 8 commits into
masterfrom
drop-ruby27

Conversation

@iBotPeaches

Copy link
Copy Markdown
Member

Problem

Its difficult to Support Ruby 4 while also supporting Ruby 2.7. We need to move into Faraday 2.x which is Ruby 3 minimum (alongside a bunch of other gems).

fastlane holding the community back to older versions of Ruby isn't the greatest. While other plugins/tools follow EOL guidelines we are still catching up.

Solution

Ruby 3.0 is our minimum.

@iBotPeaches

Copy link
Copy Markdown
Member Author
Offenses:

deliver/lib/deliver/upload_screenshots.rb:204:46: C: [Correctable] Style/HashExcept: Use except('COMPLETE') instead.
        incomplete_screenshot_count = states.reject { |k, v| k == 'COMPLETE' }.reduce(0) { |sum, (k, v)| sum + v }
                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
fastlane/lib/fastlane/actions/ipa.rb:128:38: W: [Correctable] Lint/RedundantDirGlobSort: Remove redundant sort.
        Dir[File.join(dir, '*.ipa')].sort { |a, b| File.mtime(b) <=> File.mtime(a) }.first
                                     ^^^^
fastlane/lib/fastlane/actions/ipa.rb:133:43: W: [Correctable] Lint/RedundantDirGlobSort: Remove redundant sort.
        Dir[File.join(dir, '*.dSYM.zip')].sort { |a, b| File.mtime(b) <=> File.mtime(a) }.first
                                          ^^^^
fastlane/lib/fastlane/actions/testfairy.rb:73:45: C: [Correctable] Style/HashExcept: Use except(:upload_url, :timeout) instead.
        client_options = Hash[params.values.reject do |key, value| ...
                                            ^^^^^^^^^^^^^^^^^^^^^^
screengrab/lib/screengrab/reports_generator.rb:14:41: W: [Correctable] Lint/RedundantDirGlobSort: Remove redundant sort.
      Dir[File.join(screens_path, "*")].sort.each do |language_folder|
                                        ^^^^
screengrab/lib/screengrab/reports_generator.rb:16:65: W: [Correctable] Lint/RedundantDirGlobSort: Remove redundant sort.
        Dir[File.join(language_folder, 'images', '*', '*.png')].sort.each do |screenshot|
                                                                ^^^^
sigh/lib/sigh/resign.rb:113:40: W: [Correctable] Lint/RedundantDirGlobSort: Remove redundant sort.
      Dir[File.join(Dir.pwd, '*.ipa')].sort { |a, b| File.mtime(a) <=> File.mtime(b) }.first
                                       ^^^^
sigh/lib/sigh/resign.rb:117:52: W: [Correctable] Lint/RedundantDirGlobSort: Remove redundant sort.
      Dir[File.join(Dir.pwd, '*.mobileprovision')].sort { |a, b| File.mtime(a) <=> File.mtime(b) }.first
                                                   ^^^^
snapshot/lib/snapshot/reports_generator.rb:24:41: W: [Correctable] Lint/RedundantDirGlobSort: Remove redundant sort.
      Dir[File.join(screens_path, "*")].sort.each do |language_folder|
                                        ^^^^
snapshot/lib/snapshot/reports_generator.rb:26:50: W: [Correctable] Lint/RedundantDirGlobSort: Remove redundant sort.
        Dir[File.join(language_folder, '*.png')].sort.each do |screenshot|
                                                 ^^^^

1310 files inspected, 10 offenses detected, 10 offenses autocorrectable

Rubocop has some different opinions when 3.x is min.

Comment thread fastlane.gemspec Outdated
Comment thread fastlane.gemspec Outdated
Comment thread Gemfile Outdated
@iBotPeaches iBotPeaches merged commit e66cc03 into master May 14, 2026
14 checks passed
@iBotPeaches iBotPeaches deleted the drop-ruby27 branch May 14, 2026 00:39

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey @iBotPeaches 👋

Thank you for your contribution to fastlane and congrats on getting this pull request merged 🎉
The code change now lives in the master branch, however it wasn't released to RubyGems yet.
We usually ship about once a month, and your PR will be included in the next one.

Please let us know if this change requires an immediate release by adding a comment here 👍
We'll notify you once we shipped a new release with your changes 🚀"

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Congratulations! 🎉 This was released as part of fastlane 2.235.0 🚀

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants