Skip to content

Releases: rubocop/rubocop

RuboCop v1.82.1

24 Dec 08:47

Choose a tag to compare

Bug fixes

  • #14736: Fix an error for Style/TrailingCommaInArguments when EnforcedStyleForMultiline is consistent_comma and keyword arguments use a trailing comma. (@koic)
  • #14737: Fix crash in Layout/RedundantLineBreak when Layout/LineLength is disabled. (@ydakuka)
  • #14719: Fix crash on long lines when Layout/LineLength is disabled. (@floriandejonckheere)
  • #14743: Fix false positives for Layout/MultilineMethodCallIndentation when multiline method chain with block has expected indent width and the method is preceded by splat or double splat. (@koic)
  • #12297: Fix false negative in Layout/IndentationWidth for multiline method chain blocks. (@rscq)
  • #14730: Fix the cache implementation to use consistent cache keys across workers. (@byroot)
  • #14559: Fix false positives for Lint/UselessAssignment when a variable is assigned in loop body and used in loop condition. (@ydakuka)

RuboCop v1.82.0

17 Dec 10:25

Choose a tag to compare

New features

  • #14655: Add AllowRBSInlineAnnotation option to Layout/LineLength. (@koic)
  • #14569: Add IncludedMacroPatterns configuration option to Style/MethodCallWithArgsParentheses for pattern-based macro method enforcement. (@mmenanno)
  • #14670: Add new cop Style/ModuleMemberExistenceCheck. (@lovro-bikic)
  • #14644: Support TargetRubyVersion 4.0 (experimental). (@koic)

Bug fixes

  • #14649: Fix an error for Lint/LiteralAsCondition when there are literals in multiple branches. (@viralpraxis)
  • #14678: Fix an error when running deprecated rake rubocop:auto_correct task. (@koic)
  • #14650: Fix wrong autocorrect for Lint/RedundantSplatExpansion when splatting a single literal. (@earlopain)
  • #14703: Fix false negatives for Layout/RescueEnsureAlignment when using self class definition. (@koic)
  • #14706: Fix false negatives for Lint/NoReturnInBeginEndBlocks when assigning instance variable, class variable, global variable, or constant. (@koic)
  • #14715: Fix false positives for Layout/EmptyLineAfterGuardClause when a guard clause follows a multiline heredoc in a parenthesized method call. (@koic)
  • #14667: Fix false positives for Layout/EndAlignment when a conditional assignment is used on the same line and the end with a safe navigation method call is aligned. (@koic)
  • #14688: Fix false positives for Layout/EndAlignment when a conditional assignment is used on the same line and the end with a numbered block or it block method call is aligned. (@koic)
  • #14699: Fix false positives for Lint/RedundantSafeNavigation when the receiver is used outside the singleton method definition scope. (@koic)
  • #14663: Fix false positives for Style/EndlessMethod when multiline or xstring heredoc is used in method body. (@koic)
  • #10173: Fix false positives for Style/TrailingCommaInArguments when EnforcedStyleForMultiline is set to consistent_comma and a multiline braced hash argument appears after another argument. (@koic)
  • #14680: Handle all OptionParser errors when running rubocop with input that causes an error. (@dvandersluis)
  • #14658: Fix incorrect behavior when Layout/LineLength is disabled. (@koic)
  • #14704: Fix incorrect Position character value in LSP. (@tmtm)
  • #14619: Store remote configuration caches in cache root. (@Jack12816)
  • #14476: Fix Style/ClassAndModuleChildren to skip compact style definitions inside another class or module when EnforcedStyle: nested. (@rscq)
  • #14281: Update Layout/EndAlignment with EnforcedStyleAlignWith: variable to handle conditionals inside begin nodes properly. (@dvandersluis)

Changes

  • #14662: Add autocorrection for Lint/UselessOr. (@r7kamura)
  • #14668: Exclude Severity from configuration parameters. (@r7kamura)
  • #14684: Make Style/CaseEquality allow regexp case equality where the receiver is a regexp literal. (@koic)
  • #14645: Change Lint/CircularArgumentReference to detect offenses within long assignment chains. (@viralpraxis)
  • #14642: Make Gemspec/RubyVersionGlobalsUsage aware of Ruby::VERSION. (@koic)
  • #14695: Make Layout/EmptyLineAfterMagicComment aware of # rbs_inline magic comment. (@koic)
  • #10147: Make Lint/ElseLayout allow a single-line else body in then single-line conditional. (@koic)
  • #14661: Make Lint/RedundantRequireStatement aware of pathname when analyzing Ruby 4.0. (@koic)
  • #14698: Make Lint/UnreachableCode aware of singleton method redefinition. (@koic)
  • #14677: Make Style/RedundantArgument aware of to_i. (@koic)
  • #14660: Rename IgnoreCopDirectives to AllowCopDirectives in Layout/LineLength. (@koic)
  • #14492: Revert #14492, which added support for LSP positionEncoding 'utf-8' and 'utf-32' due to critical performance regression reports. (@koic)

RuboCop v1.81.7

31 Oct 09:01

Choose a tag to compare

Bug fixes

  • #14597: Fix an infinite loop error for Layout/HashAlignment when EnforcedStyle: with_fixed_indentation is specified for Layout/ArgumentAlignment. (@koic)
  • #14621: Fix an error for Naming/PredicateMethod when using an in pattern with empty parentheses body. (@koic)
  • #14631: Fix an error for Style/SoleNestedConditional when using nested single line if. (@koic)
  • #14626: Fix false positives in Style/ConstantVisibility when visibility is declared with multiple constants. (@koic)
  • #14628: Fix false positives for Style/FloatDivision when using Regexp.last_match or nth reference (e.g., $1). (@koic)
  • #14617: Handle non-specific issues with the Gemfile to allow fallback. (@Fryguy)
  • #14622: Fix an error for Naming/MethodName when the first argument to alias contains interpolation. (@earlopain)

RuboCop v1.81.6

21 Oct 07:34

Choose a tag to compare

Bug fixes

  • #14587: Fix an error for Lint/SelfAssignment when using []= assignment with no arguments. (@koic)
  • #14572: Fix an error for Style/ArrayIntersect when intersection(other).any? is called without a receiver. (@koic)
  • #14599: Fix a crash when Style/ConditionalAssignment is configured with assign_inside_conditional and the conditional contains a multi-line regex. (@martinemde)
  • #14574: Fix false positives for Style/RedundantInterpolation when using a one-line => pattern matching. (@koic)
  • #14602: Fix false positives for Style/EndlessMethod when heredoc is used in method body. (@koic)
  • #14594: Fix false positives for Style/EndlessMethod when the endless method would exceed the maximum line length. (@koic)
  • #14605: Fix false positive for Lint/EmptyInterpolation when interpolation is inside a %W literal. (@dvandersluis)
  • #14604: Fix Style/RedundantFormat false positive when a interpolated value is given to a specifier with a width or precision. (@dvandersluis)
  • #14607: Fix Style/RedundantFormat handling control characters like \n. (@dvandersluis)
  • #14577: Fix an incorrect autocorrect for Style/Semicolon when a method call using hash value omission without parentheses is terminated with a semicolon. (@koic)
  • #14552: Fix a false positive for Security/JSONLoad when create_additions is explicitly specified. (@earlopain)

Changes

  • #14566: Enhance Lint::ConstantOverwrittenInRescue cop to detect offenses within fully qualified constants. (@viralpraxis)
  • #14575: Enhance Lint/ConstantOverwrittenInRescue cop to detect offenses within nested constants. (@viralpraxis)
  • #14596: Change Lint/ConstantOverwrittenInRescue to detect any constant assignment. (@viralpraxis)
  • #14568: Make Style/LambdaCall autocorrection contextual. (@koic)

RuboCop v1.81.1

26 Sep 13:35

Choose a tag to compare

Bug fixes

  • #14563: Fix incorrect autocorrection for Lint/DeprecatedOpenSSLConstant when Cipher appears twice. (@koic)

Changes

  • #14565: Allow multiline method chain for Style/NumberedParameters and Style/ItBlockParameter with EnforcedStyle: allow_single_line when the block itself is on a single line. (@earlopain)

RuboCop v1.81.0

25 Sep 12:50

Choose a tag to compare

New features

  • #14512: Add Style/ArrayIntersectWithSingleElement cop. (@r7kamura)
  • #10971: Support EnforcedStyleForMultiline: diff_comma in Style/TrailingCommaInArguments. (@akouryy)

Bug fixes

  • #14560: Fix an error for Style/NilComparison cop when using the var.==(nil) and var.===(nil) syntax. (@viralpraxis)
  • #14535: Fix autocorrect for Style/ExplicitBlockArgument when there are two methods that share the same implementation. (@earlopain)
  • #14527: Fix false negatives for Style/NumberedParameters and Style/ItBlockParameter when using multiline method chain with EnforcedStyle: allow_single_line. (@koic)
  • #14522: Fix false negatives for Layout/MultilineOperationIndentation when using indented code on LHS of equality operator in modifier method definition. (@koic)
  • #14496: Fix false negatives for Layout/EmptyLineBetweenDefs for AllowAdjacentOneLineDefs: false and DefLikeMacros that take no block. (@earlopain)
  • #14553: Fix false positives when EnforcedStyle: allowed_in_returns and !! appears across multiple lines in return position. (@koic)
  • #14557: Fix false positives for Style/RedundantParentheses when parentheses are used around a one-line rescue expression as a condition. (@koic)
  • #14525: Fix false positives for Style/RedundantRegexpEscape when an escaped variable sigil follows # (e.g., /#\@foo/, /#\@@bar/, /#\$baz/). (@koic)
  • #14529: Fix false negative in Layout/RescueEnsureAlignment with a block whose send node is split over multiple lines. (@dvandersluis)
  • #14528: Fix Style/RedundantFormat when the format string has a variable width that isn't given as a literal value. (@dvandersluis)
  • #14541: Fix gemspec parsing error when ParserEngine: parser_prism is configured in a base config file. (@sudoremo)
  • #14544: Fix an incorrect autocorrect for Lint/Void when using a return value in assignment method definition. (@koic)
  • #14543: Fix an incorrect autocorrect for Style/RedundantRegexpArgument when using escaped single quote character. (@koic)
  • #14540: Fix an incorrect autocorrect for Style/UnlessElse when using unless with then. (@koic)
  • #14507: Fix the built-in Ruby LSP add-on not restarting when config files (.rubocop.yml, .rubocop_todo.yml) change. (@earlopain)
  • #14514: Fix the built-in Ruby LSP add-on not respecting .rubocop config file. (@earlopain)
  • #14508: Fix the built-in Ruby LSP add-on getting in an irrecoverable state when the config is invalid on startup. (@earlopain)
  • #14534: Prevent Layout/LineLength autocorrection from splitting a block if its receiver contains a heredoc. (@dvandersluis)
  • #14497: Fix a false positive for Lint/ShadowedArgument when assigning inside a rescue block. (@earlopain)

Changes

  • #14492: Add support for LSP positionEncoding utf-8 and utf-32. (@tmtm)

RuboCop v1.80.2

03 Sep 15:15

Choose a tag to compare

Bug fixes

  • #14477: Fix a false positive for Style/SafeNavigation when using ternary expression with index access call with method chain. (@koic)
  • #14486: Fix false positives for Style/RedundantParentheses with unary operators and yield, super, or defined?. (@earlopain)
  • #14489: Fix false negatives for Style/RedundantParentheses with method calls taking argument without parentheses like return (x y) if z. (@earlopain)
  • #14499: Fix wrong autocorrect for Style/StringConcatenation when a double-quoted string contains escaped quotes and interpolation. (@earlopain)
  • #14502: Fix wrong autocorrect for Style/StringConcatenation when a single-quoted string contains interpolation like '#{foo}'. (@earlopain)

Changes

  • #14493: Make Naming/PredicateMethod allow the initialize method. (@koic)

RuboCop v1.80.1

27 Aug 07:32

Choose a tag to compare

Bug fixes

  • #14479: Don't invalidate cache when --display-time option is used on the CLI. (@lovro-bikic)
  • #14473: Fix a false negative for Style/RedundantBegin using begin with multiple statements without rescue or ensure. (@koic)
  • #14475: Fix cop errors during autocorrect for the build in LSP when analyzing as Ruby 3.4. (@earlopain)

Changes

  • #14474: Fix false negative for Layout/EndAlignment when end is not on a separate line. (@lovro-bikic)

RuboCop v1.80.0

22 Aug 08:33

Choose a tag to compare

Bug fixes

  • #14469: Fix an incorrect autocorrect for Style/BitwisePredicate when using & with LHS flags in conjunction with == for comparisons. (@koic)
  • #14459: Fix wrong autocorrect for Style/For with save navigation in the collection. (@earlopain)
  • #14435: Fix false negatives for regexp cops when Lint/DuplicateRegexpCharacterClassElement is enabled. (@earlopain)
  • #14419: Fix false positives for Lint/UselessAssignment when duplicate assignments appear in nested if branches inside a loop and the variable is used outside while loop. (@koic)
  • #14468: Fix false positives for Naming/MethodName when an operator method is defined using a string. (@koic)
  • #14427: Fix false positives for Style/RedundantParentheses when do...end block is wrapped in parentheses as a method argument. (@koic)
  • #14441: Better hash access handling in Style/SafeNavigation. (@issyl0)
  • #14443: Fix false positive in Layout/EmptyLinesAfterModuleInclusion when include does not have exactly one argument. (@issyl0)
  • #14424: Fix Style/SafeNavigation cop to preserve existing safe navigation in fixed code. (@martinemde)
  • #14455: Follow module inclusion with nonzero args with an empty line. (@issyl0)
  • #14445: Fix false positives for Lint/UselessAssignment with for loops when the variable is referenced in the collection. (@earlopain)
  • #14447: Fix wrong autocorrect for Style/RedundantCondition with a parenthesised method call in the condition. (@earlopain)

Changes

  • #14428: Enhance Lint/SelfAssignment to handle indexed assignment with multiple arguments. (@viralpraxis)
  • #14464: Exclude AutoCorrect and Include from configuration parameters. (@r7kamura)
  • #14472: Make Style/RedundantBegin aware of case pattern matching. (@koic)
  • #14448: Register array intersection size checks as offenses under Style/ArrayIntersect. (@lovro-bikic)
  • #14431: Support LSP TextDocumentSyncKind.Incremental. (@tmtm)
  • #14453: Update Style/RedundantBegin to register begin blocks inside if, unless, case, while and until as redundant. (@dvandersluis)

RuboCop v1.79.2

05 Aug 12:16

Choose a tag to compare

Bug fixes

  • #11664: Cache wasn't getting used when using parallelization. (@jvlara)
  • #14411: Fix false negatives for Layout/EmptyLinesAroundClassBody when a class body starts with a blank line and defines a multiline superclass. (@koic)
  • #14413: Fix a false positive for Layout/EmptyLinesAroundArguments with multiline strings that contain only whitespace. (@earlopain)
  • #14408: Fix false-positive for Layout/EmptyLinesAfterModuleInclusion when inclusion is called with modifier. (@r7kamura)
  • #14402: Fix false positives for Lint/UselessAssignment when duplicate assignments appear in if branch inside a loop and the variable is used outside while loop. (@koic)
  • #14416: Fix false positives for Style/MapToHash when using to_h with block argument. (@koic)
  • #14418: Fix false positives for Style/MapToSet when using to_set with block argument. (@koic)
  • #14420: Fix false positives for Style/SafeNavigation when ternary expression with operator method call with method chain. (@koic)

Changes

  • #14407: Register offense for parentheses around method calls with blocks in Style/RedundantParentheses. (@lovro-bikic)