-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Upgrade Ruby to version 3.0.6 #5074
Conversation
b30c725
to
a76b82a
Compare
4250148
to
306e735
Compare
19abc1d
to
83d4d8c
Compare
Hi @javierm, Capistrano seems to work fine with Ruby 3. I tested it by doing the following:
Everything worked fine 👌🏼. I marked the following gems as revised:
|
@Senen Great! Regarding the installer, I think the only thing left would be installing the |
Everything worked fine! Here is a piece of the compiled CSS that demonstrates autoprefixer works:
Regarding Below are the post-install messages the server throws after bundling:
|
@Senen Awesome! These messages appear when installing these gems with Ruby 2.7.x as well, so there shouldn't be an issue with this upgrade 🤞. |
More gem checks:
Deprecation warnings:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Senen Great! 😄 That's all for now, but let's leave it as a draft until we decide whether we include it in version 2.0.0. You can approve it, though. |
These tests were failing with Ruby 3.0 because we were getting an error when loading the `translations` association of the dummy class: ``` NameError: uninitialized constant DummyBanner::#<Class:0x000055630e4dccd8>::Translation ``` Specifying the `class_name` of the `translations` association solves the issue.
Note the structure of the Gemfile changes slightly because Ruby 3.0 includes a new version of the Bundler gem.
In Ruby 3.0, Regexp and Range literals are frozen objects, and so we don't need to freeze them.
We were already using it because Rails adds the `Hash#except` method for Ruby 2.7 and earlier, but since the method wasn't part of Ruby itself, the Rubocop rule only works with Ruby 3.0 and later.
References
Objectives
Notes
These were the gems we're currently using whose compatibility with Ruby 3 we hadn't confirmed yet. They're all confirmed now.
autoprefixer-railsbyebugcapistrano-bundlercapistrano-railscapistrano3-delayed-job(no updates since January 2019)capistrano3-pumackeditorcocoonemail_spec(no release since April 2018)erb_lint(pull request Bump erb_lint from 0.0.37 to 0.3.1 #5093)foundation-rails(has almost no Ruby code, so it might work)graphiql-rails(has almost no Ruby code)initialjs-railsjquery-ui-rails(has almost no Ruby code, so it might work even if there haven been no updates since January 2017)mdl(support in version 0.12 for sure)omniauth-twitter(no updates since February 2017)pronto-erb_lint(pull request Bump erb_lint from 0.0.37 to 0.3.1 #5093)pumarinku(no updates since April 2019)rvm1-capistrano(no updates since October 2015)sassc-rails(no updates since December 2019)scss-lintselenium-webdriverspringspring-commands-rspec(no updates since March 2015)turbolinks(unmaintained, but it's mostly written in CoffeeScript and might work)turnout(no updates since December 2018)