Releases: rubocop/rubocop
Releases · rubocop/rubocop
RuboCop 1.68
New features
- #13050: Add new
Style/BitwisePredicate
cop. (@koic) - #12140: Add new
Style/CombinableDefined
cop. (@dvandersluis) - #12988: Add new
Style/AmbiguousEndlessMethodDefinition
cop. (@dvandersluis) - #11514: Add new
Lint/UnescapedBracketInRegexp
cop. (@dvandersluis) - #13360: Add
AllowSteepAnnotation
config option toLayout/LeadingCommentSpace
. (@tk0miya) - #13146: Add new
IgnoreDuplicateElseBranch
option toLint/DuplicateBranch
. (@fatkodima) - #13171: Add new
Style/SafeNavigationChainLength
cop. (@fatkodima) - #13252: Add new
Style/KeywordArgumentsMerging
cop. (@fatkodima)
Bug fixes
- #13401: Fix a false negative for
Style/RedundantLineContinuation
when there is a line continuation at the EOF. (@koic) - #13368: Fix an incorrect autocorrect for
Naming/BlockForwarding
withStyle/ExplicitBlockArgument
. (@koic) - #13391: Fix deserialization of unknown encoding offenses. (@earlopain)
- #13348: Ensure
Style/BlockDelimiters
autocorrection does not move other code between the block and comment. (@dvandersluis) - #13382: Fix an error during error handling for custom ruby extractors when the extractor is a class. (@earlopain)
- #13309: Fix a false negative for
Lint/UselessAssignment
cop when there is a useless assignment followed by a block. (@pCosta99) - #13255: Fix false negatives for
Style/MapIntoArray
when using non-splatted arguments. (@vlad-pisanov) - #13356: Fix a false positive for
Layout/SpaceBeforeBrackets
when there is a dot before[]=
. (@earlopain) - #13365: Fix false positives for
Lint/SafeNavigationConsistency
when using safe navigation on the LHS with operator method on the RHS of&&
. (@koic) - #13390: Fix false positives for
Style/GuardClause
when using a local variable assigned in a conditional expression in a branch. (@koic) - #13337: Fix false positives for
Style/RedundantLineContinuation
when required line continuations for&&
is used with an assignment after a line break. (@koic) - #13387: Fix false positives in
Style/RedundantParentheses
when parentheses are used around method chain withdo
...end
block in keyword argument. (@koic) - #13341: Fix false positives for
Lint/SafeNavigationChain
when a safe navigation operator is used with a method call as the RHS operand of&&
for the same receiver. (@koic) - #13324: Fix
--disable-uncorrectable
to not insert a comment inside a string continuation. (@dvandersluis) - #13364: Fix incorrect autocorrect with
Lint/UselessAssignment
a multiple assignment orfor
contains an inner assignment. (@dvandersluis) - #13353: Fix an incorrect autocorrect for
Style/BlockDelimiters
whenEnforcedStyle: semantic
is set and used withLayout/SpaceInsideBlockBraces
. (@koic) - #13361: Fix false positives for
Style/RedundantInterpolationUnfreeze
andStyle/RedundantFreeze
when strings contain interpolated global, instance, and class variables. (@vlad-pisanov) - #13343: Prevent
Layout/LineLength
from breaking up a method with arguments chained onto a heredoc delimiter. (@dvandersluis) - #13374: Return exit code 0 with
--display-only-correctable
and--display-only-safe-correctable
when no offenses are displayed. (@dvandersluis) - #13193: Fix false positive in
Style/MultipleComparison
whenComparisonsThreshold
exceeds 2. (@fatkodima, @vlad-pisanov) - #13325: Fix an incorrect autocorrect for
Lint/NonAtomicFileOperation
when using a postfixunless
for file existence checks before creating a file, in cases withDir.mkdir
. (@kotaro0522) - #13397: Update
PercentLiteralCorrector
to be able to write pairs of delimiters without excessive escaping. (@dvandersluis) - #13336: Update
Style/SafeNavigation
to not autocorrect if the RHS of anand
node is anor
node. (@dvandersluis) - #13378: When removing parens in
Style/TernaryParentheses
with asend
node condition, ensure its arguments are parenthesized. (@dvandersluis)
Changes
- #13347: When running
rubocop -V
, show the analysis Ruby version of the current directory. (@earlopain)
RuboCop 1.67
New features
- #13259: Add new
Lint/DuplicateSetElement
cop. (@koic) - #13223: Add
AllowRBSInlineAnnotation
config option toLayout/LeadingCommentSpace
to support RBS::Inline style annotation comments. (@tk0miya) - #13310: Display analysis Ruby version in
rubocop -V
. (@koic)
Bug fixes
- #13314: Fix a false negative for
Style/Semicolon
when using a semicolon between a closing parenthesis after a line break and a consequent expression. (@koic) - #13217: Fix a false positive in
Lint/ParenthesesAsGroupedExpression
with compound ranges. (@gsamokovarov) - #13268: Fix a false positive for
Style/BlockDelimiters
when a single line do-end block with an inlinerescue
with a semicolon beforerescue
. (@koic) - #13298: Fix an error for
Layout/AccessModifierIndentation
when the access modifier is on the same line as the class definition. (@koic) - #13198: Fix an error for
Style/OneLineConditional
when using nested if/then/else/end. (@koic) - #13316: Fix an incorrect autocorrect for
Lint/ImplicitStringConcatenation
withLint/TripleQuotes
when string literals with triple quotes are used. (@koic) - #13220: Fix an incorrect autocorrect for
Style/ArgumentsForwarding
when using only forwarded arguments in brackets. (@koic) - #13202: Fix an incorrect autocorrect for
Style/CombinableLoops
when looping over the same data with different block variable names. (@koic) - #13291: Fix an incorrect autocorrect for
Style/RescueModifier
when using modifier rescue for method call with heredoc argument. (@koic) - #13226: Fix
--auto-gen-config
when passing an absolute config path. (@earlopain) - #13225: Avoid syntax error when correcting
Style/OperatorMethodCall
with/
operations followed by a parenthesized argument. (@dvandersluis) - #13235: Fix an error for
Style/IfUnlessModifier
when multilineif
that fits on one line and using implicit method call with hash value omission syntax. (@koic) - #13219: Fix a false positive for
Style/ArgumentsForwarding
with Ruby 3.0 and optional position arguments. (@earlopain) - #13271: Fix a false positive for
Lint/AmbiguousRange
when using rational literals. (@koic) - #13260: Fix a false positive for
Lint/RedundantSafeNavigation
with namespaced constants. (@earlopain) - #13224: Fix false positives for
Style/OperatorMethodCall
with named forwarding. (@earlopain) - #13213: Fix false positives for
Style/AccessModifierDeclarations
whenAllowModifiersOnAttrs: true
and using splat with a percent symbol array, or with a constant. (@koic) - #13145: Fix false positives for
Style/RedundantLineContinuation
when line continuations with comparison operator and the LHS is wrapped in parentheses. (@koic) - #12875: Fix false positive for
Style/ArgumentsForwarding
when argument is used inside a block. (@dvandersluis) - #13239: Fix false positive for
Style/CollectionCompact
when usingdelete_if
. (@masato-bkn) - #13210: Fix omit_parentheses style for pattern match with value omission in single-line branch. (@gsamokovarov)
- #13149: Handle crashes in custom Ruby extractors more gracefully. (@earlopain)
- #13319: Handle literal forward slashes inside a
regexp
inLint/LiteralInInterpolation
. (@dvandersluis) - #13208: Fix an incorrect autocorrect for
Style/IfWithSemicolon
when single-lineif/;/end
when the then body contains a method call with[]
or[]=
. (@koic) - #13318: Prevent modifying blocks with
Style/HashEachMethods
if the hash is modified within the block. (@dvandersluis) - #13293: Fix
TargetRubyVersion
from a gemspec when the gemspec is not named like the folder it is located in. (@earlopain) - #13211: Fix wrong autocorrect for
Style/GuardClause
when using heredoc withoutelse
branch. (@earlopain) - #13215: Fix wrong autocorrect for
Lint/BigDecimalNew
when using::BigDecimal.new
. (@earlopain) - #13215: Fix wrong autocorrect for
Style/MethodCallWithArgsParentheses
withEnforcedStyle: omit_parentheses
and whitespace. (@earlopain) - #13302: Fix incompatible autocorrect between
Style/RedundantBegin
andStyle/BlockDelimiters
withEnforcedStyle: braces_for_chaining
. (@earlopain)
Changes
- #13221: Do not group accessors having RBS::Inline annotation comments in
Style/AccessorGrouping
. (@tk0miya) - #13286: Add
AllowedMethods
configuration toLayout/FirstMethodArgumentLineBreak
. (@dvandersluis) - #13110: Add support in
Style/ArgumentsForwarding
for detecting forwarding of all anonymous arguments. (@dvandersluis) - #13222: Allow to write RBS::Inline annotation comments after method definition in
Style/CommentedKeyword
. (@tk0miya) - #13253: Emit a deprecation when custom cops inherit from
RuboCop::Cop::Cop
. (@earlopain) - #13300: Set
EnforcedShorthandSyntax: either
by default forStyle/HashSyntax
. (@koic) - #13254: Enhance the autocorrect for
Naming/InclusiveLanguage
when a sole suggestion is set. (@koic) - #13232: Make server mode aware of auto-restart for local config update. (@koic)
- #13270: Make
Style/SelectByRegexp
aware offilter
in Ruby version 2.6 or above. (@masato-bkn) - #9816: Refine
Lint/SafeNavigationConsistency
cop to check that the safe navigation operator is applied consistently and without excess or deficiency. (@koic) - #13256: Report and correct more
Style/SafeNavigation
offenses. (@dvandersluis) - #13245: Support
filter/filter!
inStyle/CollectionCompact
. (@masato-bkn) - #13281: Support Ruby 3.4 for
Lint/UriRegexp
to avoid obsolete API. (@koic) - #13229: Update
Style/MapIntoArray
to be able to handle arrays created using[].tap
. (@dvandersluis) - #13305: Update
Style/ReturnNilInPredicateMethodDefinition
to detect implicitnil
returns insideif
. (@dvandersluis) - #13327: Make server mode aware of auto-restart for .rubocop_todo.yml update. (@koic)
RuboCop 1.66.1
Bug fixes
- #13191: Fix an error for
Style/IfWithSemicolon
when using nested single-line if/;/end in block of if/else branches. (@koic) - #13178: Fix false positive for
Style/EmptyLiteral
withHash.new([])
. (@earlopain) - #13176: Fix crash in
Style/EmptyElse
whenAllowComments: true
and the else clause is missing. (@vlad-pisanov) - #13185: Fix false negatives in
Style/MapIntoArray
autocorrection when usingensure
,def
,defs
andfor
. (@vlad-pisanov)
RuboCop 1.66
New features
- #13077: Add new global
StringLiteralsFrozenByDefault
option for correct analysis withRUBYOPT=--enable=frozen-string-literal
. (@earlopain) - #13080: Add new
DocumentationExtension
global option to serve documentation with extensions different than.html
. (@earlopain) - #13074: Add new
Lint/UselessNumericOperation
cop to check for inconsequential numeric operations. (@zopolis4) - #13061: Add new
Style/RedundantInterpolationUnfreeze
cop to check fordup
and@+
on interpolated strings in Ruby >= 3.0. (@earlopain)
Bug fixes
- #13093: Fix an error for
Lint/ImplicitStringConcatenation
when implicitly concatenating a string literal with a line break and string interpolation. (@koic) - #13098: Fix an error for
Style/IdenticalConditionalBranches
when handling empty case branches. (@koic) - #13113: Fix an error for
Style/IfWithSemicolon
when a nestedif
with a semicolon is used. (@koic) - #13097: Fix an error for
Style/InPatternThen
when using alternative pattern matching deeply. (@koic) - #13159: Fix an error for
Style/OneLineConditional
when using if/then/else/end with multiple expressions in thethen
body. (@koic) - #13092: Fix an incorrect autocorrect for
Layout/EmptyLineBetweenDefs
when two method definitions are on the same line separated by a semicolon. (@koic) - #13116: Fix an incorrect autocorrect for
Style/IfWithSemicolon
when a single-lineif/;/end
has an argument in the then body expression. (@koic) - #13161: Fix incorrect autocorrect for
Style/IfWithSemicolon
when using multiple expressions in theelse
body. (@koic) - #13132: Fix incorrect autocorrect for
Style/TrailingBodyOnMethodDefinition
when an expression precedes a method definition on the same line with a semicolon. (@koic) - #13164: Fix incorrect autocorrect behavior for
Layout/BlockAlignment
whenEnforcedStyleAlignWith: either (default)
. (@koic) - #13087: Fix an incorrect autocorrect for
Style/MultipleComparison
when expression with more comparisons precedes an expression with less comparisons. (@fatkodima) - #13172: Fix an error for
Layout/EmptyLinesAroundExceptionHandlingKeywords
whenensure
orelse
andend
are on the same line. (@koic) - #13107: Fix an error for
Lint/ImplicitStringConcatenation
when there are multiple adjacent string interpolation literals on the same line. (@koic) - #13111: Fix an error for
Style/GuardClause
when if clause is empty and correction would not fit on single line because ofLayout/LineLength
. (@earlopain) - #13137: Fix an error for
Style/ParallelAssignment
when using__FILE__
. (@earlopain) - #13143: Fix an error during
TargetRubyVersion
detection if the gemspec is not valid syntax. (@earlopain) - #13131: Fix false negatives for
Lint/Void
when usingensure
,defs
andnumblock
. (@vlad-pisanov) - #13174: Fix false negatives for
Style/MapIntoArray
when initializing the destination usingArray[]
,Array([])
, orArray.new([])
. (@vlad-pisanov) - #13173: Fix false negatives for
Style/EmptyLiteral
when usingArray[]
,Hash[]
,Array.new([])
andHash.new([])
. (@vlad-pisanov) - #13126: Fix a false positive for
Style/Alias
when using multiplealias
indef
. (@koic) - #13085: Fix a false positive for
Style/EmptyElse
when a comment-onlyelse
is used afterelsif
andAllowComments: true
is set. (@koic) - #13118: Fix a false positive for
Style/MapIntoArray
when splatting. (@earlopain) - #13105: Fix false positives for
Style/ArgumentsForwarding
when forwarding kwargs/block arg with non-matching additional args. (@koic) - #13139: Fix false positives for
Style/RedundantCondition
when using modifierif
orunless
. (@koic) - #13134: Fix false negative for
Lint/Void
when using using frozen literals. (@vlad-pisanov) - #13148: Fix incorrect autocorrect for
Lint/EmptyConditionalBody
when missingelsif
body withend
on the same line. (@koic) - #13109: Fix an error for the
Lockfile
parser when it contains incompatibleBUNDLED WITH
versions. (@earlopain) - #13112: Fix detection of
TargetRubyVersion
through the gemfile if the gemfile ruby version is below 2.7. (@earlopain) - #13155: Fixes an error when the server cache directory has too long path, causing rubocop to fail even with caching disabled. (@protocol7)
Changes
- #13150: Allow
get_!
,set_!
,get_?
,set_?
,get_=
, andset_=
inNaming/AccessorMethodName
. (@koic) - #13103: Make
Lint/UselessAssignment
autocorrection safe. (@koic) - #13099: Make
Style/RedundantRegexpArgument
respect theEnforcedStyle
ofStyle/StringLiterals
. (@koic) - #13165: Remove dependency on the
rexml
gem. (@bquorning) - #13090: Require RuboCop AST 1.32.0+ to use
RuboCop::AST::RationalNode
. (@koic)
RuboCop 1.65.1
New features
- #13068: Add config validation to
Naming/PredicateName
to check that allForbiddenPrefixes
are being checked. (@maxjacobson)
Bug fixes
- #13051: Fix an error for
Lint/FloatComparison
when comparing with rational literal. (@koic) - #13065: Fix an error for
Lint/UselessAssignment
when same name variables are assigned using chained assignment. (@koic) - #13062: Fix an error for
Style/InvertibleUnlessCondition
when using empty parenthesis as condition. (@earlopain) - #11438: Explicitly load
fileutils
before calculatingbefore_us
. (@r7kamura) - #13044: Fix false negatives for
Lint/ImplicitStringConcatenation
when using adjacent string interpolation literals on the same line. (@koic) - #13083: Fix a false positive for
Style/GlobalStdStream
when using namespaced constants likeFoo::STDOUT
. (@earlopain) - #13081: Fix a false positive for
Style/ZeroLengthPredicate
when using safe navigation and non-zero comparison. (@fatkodima) - #13041: Fix false positives for
Lint/UselessAssignment
when pattern match variable is assigned and used in a block. (@koic) - #13076: Fix an incorrect autocorrect for
Naming/RescuedExceptionsVariableName
when using hash value omission. (@koic)
RuboCop 1.65
New features
Bug fixes
- #12954: Fix a false negative for
Style/ArgumentsForwarding
when arguments forwarding inyield
. (@koic) - #13033: Fix a false positive for
Layout/SpaceAroundOperators
when using multiple spaces between an operator and a tailing comment. (@koic) - #12885: Fix a false positive for
Lint/ToEnumArguments
when enumerator is created for another method. (@koic) - #13018: Fix a false positive for
Style/MethodCallWithArgsParentheses
whenEnforcedStyle: omit_parentheses
is set and parenthesized method call is used before constant resolution. (@koic) - #12986: Fix a false positive for
Style/RedundantBegin
when endless method definition withrescue
. (@koic) - #12985: Fix an error for
Style/RedundantRegexpCharacterClass
when using regexp_parser gem 2.3.1 or older. (@koic) - #13010: Fix an error for
Style/SuperArguments
when the hash argument is or-assigned. (@koic) - #13023: Fix an error for
Style/SymbolProc
when using lambda->
with one argument and multilinedo
...end
block. (@koic) - #12989: Fix an error for the
inherit_gem
config when the Gemfile contains an uninstalled git gem. (@earlopain) - #12975: Fix an error for the
inherit_gem
config when running RuboCop without bundler and no Gemfile exists. (@earlopain) - #12997: Fix an error for
Lint/UnmodifiedReduceAccumulator
when the block is empty. (@earlopain) - #12979: Fix false negatives for
Lint/Void
when void expression with guard clause is not on last line. (@koic) - #12716: Fix false negatives for
Lint/Void
when using parenthesized void operators. (@koic) - #12471: Fix false negatives for
Style/ZeroLengthPredicate
when using safe navigation operator. (@koic) - #12960: Fix false positives for
Lint/NestedMethodDefinition
when definition of method on variable. (@koic) - #13012: Fix false positives for
Style/HashExcept
when usingreject
and callinginclude?
method with bang. (@koic) - #12983: Fix false positives for
Style/SendWithLiteralMethodName
usingsend
with writer method name. (@koic) - #12957: Fix false positives for
Style/SuperArguments
when calling super in a block. (@koic)
Changes
- #12970: Add
CountModifierForms
option toMetrics/BlockNesting
and set it tofalse
by default. (@koic) - #13032: Display warning messages for deprecated APIs. (@koic)
- #13031: Enable YJIT by default in server mode. (@koic)
- #12557: Make server mode aware of auto-restart for
bundle update
. (@koic) - #12616: Make
Style/MapCompactWithConditionalBlock
aware offilter_map
. (@koic) - #13035: Support autocorrect for
Lint/ImplicitStringConcatenation
. (@koic)
RuboCop 1.64.1
Bug fixes
- #12951: Fix an error for
Style/Copyright
whenAutocorrectNotice
is missing. (@koic) - #12932: Fix end position of diagnostic for LSP. (@ksss)
- #12926: Fix a false positive for
Style/SuperArguments
when the methods block argument is reassigned beforesuper
. (@earlopain) - #12931: Fix false positives for
Style/RedundantLineContinuation
when line continuations involvebreak
,next
, oryield
with a return value. (@koic) - #12924: Fix false positives for
Style/SendWithLiteralMethodName
whenpublic_send
argument is a method name that cannot be autocorrected. (@koic)
RuboCop 1.64
New features
- #12904: Add new
either_consistent
SupportedShorthandSyntax
toStyle/HashSyntax
. (@pawelma) - #12842: Add new
Style/SendWithLiteralMethodName
cop. (@koic) - #12309: Add new
Style/SuperArguments
cop. (@earlopain) - #12917: Suggest correct formatter name for
--format
command line option. (@koic) - #12242: Support
AllowModifiersOnAttrs
option forStyle/AccessModifierDeclarations
. (@krororo) - #11585: Support
AllowedMethods
forStyle/DocumentationMethod
. (@koic)
Bug fixes
- #7189: Fix a false positive for
Style/Copyright
when using multiline copyright notice. (@koic) - #12914: Fix a false negative for
Layout/EmptyComment
when using an empty comment next to code after comment line. (@koic) - #12919: Fix false negatives for
Style/ArgumentsForwarding
when forward target issuper
. (@koic) - #12923: Fix false negatives for
Style/ArgumentsForwarding
when forward target is safe navigation method. (@koic) - #12894: Fix false positives for
Style/MapIntoArray
when usingeach
without receiver with<<
to build an array. (@koic) - #12876: Fix an error for the lockfile parser if a gemfile exists but a lockfile doesn't. (@earlopain)
- #12888: Fix
--no-exclude-limit
generating a todo withMax
config instead of listing everything out withExclude
. (@earlopain) - #12898: Fix an error for
TargetRailsVersion
when parsing from the lockfile with prerelease rails. (@earlopain)
Changes
- #12908: Add rubocop-rspec back to suggested extensions when rspec-rails is in use. (@pirj)
- #12884: Align output from
cop.documentation_url
with--show-docs-url
when passing a config as argument. (@earlopain) - #12905: Support
ActiveSupportExtensionsEnabled
forStyle/SymbolProc
. (@koic) - #12897: Respect user's intentions with
workspace/executeCommand
LSP method. (@koic)
RuboCop 1.63.5
Bug fixes
- #12877: Fix an infinite loop error for
Layout/FirstArgumentIndentation
when specifyingEnforcedStyle: with_fixed_indentation
ofLayout/ArrayAlignment
. (@koic) - #12873: Fix an error for
Metrics/BlockLength
when theCountAsOne
config is invalid. (@koic) - #12881: Fix incorrect autocorrect when
Style/NumericPredicate
is used with negations. (@fatkodima) - #12882: Fix
Layout/CommentIndentation
for comment-only pattern matching. (@nekketsuuu)
RuboCop 1.63.4
Bug fixes
- #12871: Fix an error for
rubocop -V
when.rubocop.yml
contains ERB. (@earlopain) - #12862: Fix a false positive for
Style/RedundantLineContinuation
when line continuations involvereturn
with a return value. (@koic) - #12664: Fix handling of
textDocument/diagnostic
. (@muxcmux) - #12865: Fix Rails Cops, which weren't reporting any violations unless running with
bundle exec
. (@amomchilov)