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
Recover Ruby 2.2 code analysis using TargetRubyVersion: 2.2
#10644
Conversation
Follow up rubocop#10632 (comment). Reverts part of rubocop#6766, rubocop#7026, and rubocop#7030. Only the Ruby version (2.2) to runtime should have been dropped, not code analysis. This PR makes Ruby 2.2 code analysis with `TargetRubyVersion: 2.2`. It aims to solve essentially the same problem as rubocop#10626, rubocop#10632, and rubocop#10640. Previously, there was the following default enforced style `when_needed` for `Style/FrozenStringLiteralComment` cop. ```ruby # @example EnforcedStyle: when_needed (default) # # The `when_needed` style will add the frozen string literal # # to files only when the `TargetRubyVersion` is set to 2.3+. # # bad # module Foo # # ... # end # # # good # # frozen_string_literal: true # # module Foo # # ... # end ``` This PR does not restore that option, but sets the `minimum_target_ruby_version 2.3` to make `always (default)` apply by default. It is a simple solution that does not handle frozen literal magic comment added in Ruby 2.3 when `TargetRubyVersion` is Ruby 2.2 or lower.
Not sure if we need to go back so far, as I doubt there are many projects that still target such an old Ruby release. I'll leave this up to you to decide. Personally I was happy when we got back to 2.5. :D |
I found the following backlink in PR #10632 that recovered Ruby 2.4 code analysis. So, there seems to be use case with gems that support older Ruby versions. Perhaps RuboCop's analysis can recover up to Ruby 1.9 code. I'm trying it, but I'm not sure if it's the best 😅 |
Follow up rubocop#10632 (comment). Reverts part of rubocop#5990 and rubocop#6101. Only the Ruby version (2.1) to runtime should have been dropped, not code analysis. This PR makes Ruby 2.1 code analysis with `TargetRubyVersion: 2.1`. It aims to solve essentially the same problem as rubocop#10626, rubocop#10632, rubocop#10640, and rubocop#10644.
Follow up rubocop#10632 (comment). Reverts part of rubocop#4787. Only the Ruby version (2.0) to runtime should have been dropped, not code analysis. This PR makes Ruby 2.0 code analysis with `TargetRubyVersion: 2.0`. It aims to solve essentially the same problem as rubocop#10626, rubocop#10632, rubocop#10640, rubocop#10644, and rubocop#10662.
Follow up rubocop/rubocop#10644. Reverts part of rubocop/rubocop#7026. This PR requires rubocop/rubocop#10644 to pass the build.
Follow up #10632 (comment).
Reverts part of #6766, #7026, and #7030.
Only the Ruby version (2.2) to runtime should have been dropped, not code analysis.
This PR makes Ruby 2.2 code analysis with
TargetRubyVersion: 2.2
.It aims to solve essentially the same problem as #10626, #10632, and #10640.
Previously, there was the following default enforced style
when_needed
forStyle/FrozenStringLiteralComment
cop.This PR does not restore that option, but sets the
minimum_target_ruby_version 2.3
to makealways (default)
apply by default. It is a simple solution that does not handle frozen literal magic comment added in Ruby 2.3 whenTargetRubyVersion
is Ruby 2.2 or lower.Before submitting the PR make sure the following are checked:
[Fix #issue-number]
(if the related issue exists).master
(if not - rebase it).bundle exec rake default
. It executes all tests and runs RuboCop on its own code.{change_type}_{change_description}.md
if the new code introduces user-observable changes. See changelog entry format for details.