Skip to content

Releases: rubocop/rubocop

RuboCop 1.66.1

04 Sep 08:30
Compare
Choose a tag to compare

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 with Hash.new([]). (@earlopain)
  • #13176: Fix crash in Style/EmptyElse when AllowComments: true and the else clause is missing. (@vlad-pisanov)
  • #13185: Fix false negatives in Style/MapIntoArray autocorrection when using ensure, def, defs and for. (@vlad-pisanov)

RuboCop 1.66

31 Aug 12:41
Compare
Choose a tag to compare

New features

  • #13077: Add new global StringLiteralsFrozenByDefault option for correct analysis with RUBYOPT=--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 for dup 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 nested if 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 the then 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-line if/;/end has an argument in the then body expression. (@koic)
  • #13161: Fix incorrect autocorrect for Style/IfWithSemicolon when using multiple expressions in the else 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 when EnforcedStyleAlignWith: 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 when ensure or else and end 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 of Layout/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 using ensure, defs and numblock. (@vlad-pisanov)
  • #13174: Fix false negatives for Style/MapIntoArray when initializing the destination using Array[], Array([]), or Array.new([]). (@vlad-pisanov)
  • #13173: Fix false negatives for Style/EmptyLiteral when using Array[], Hash[], Array.new([]) and Hash.new([]). (@vlad-pisanov)
  • #13126: Fix a false positive for Style/Alias when using multiple alias in def. (@koic)
  • #13085: Fix a false positive for Style/EmptyElse when a comment-only else is used after elsif and AllowComments: 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 modifier if or unless. (@koic)
  • #13134: Fix false negative for Lint/Void when using using frozen literals. (@vlad-pisanov)
  • #13148: Fix incorrect autocorrect for Lint/EmptyConditionalBody when missing elsif body with end on the same line. (@koic)
  • #13109: Fix an error for the Lockfile parser when it contains incompatible BUNDLED 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_=, and set_= in Naming/AccessorMethodName. (@koic)
  • #13103: Make Lint/UselessAssignment autocorrection safe. (@koic)
  • #13099: Make Style/RedundantRegexpArgument respect the EnforcedStyle of Style/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

01 Aug 07:12
Compare
Choose a tag to compare

New features

  • #13068: Add config validation to Naming/PredicateName to check that all ForbiddenPrefixes 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 calculating before_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 like Foo::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

10 Jul 12:26
Compare
Choose a tag to compare

New features

  • #13030: Add new Gemspec/AddRuntimeDependency cop. (@koic)

Bug fixes

  • #12954: Fix a false negative for Style/ArgumentsForwarding when arguments forwarding in yield. (@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 when EnforcedStyle: 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 with rescue. (@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 multiline do...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 using reject and calling include? method with bang. (@koic)
  • #12983: Fix false positives for Style/SendWithLiteralMethodName using send with writer method name. (@koic)
  • #12957: Fix false positives for Style/SuperArguments when calling super in a block. (@koic)

Changes

  • #12970: Add CountModifierForms option to Metrics/BlockNesting and set it to false 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 of filter_map. (@koic)
  • #13035: Support autocorrect for Lint/ImplicitStringConcatenation. (@koic)

RuboCop 1.64.1

31 May 04:33
Compare
Choose a tag to compare

Bug fixes

  • #12951: Fix an error for Style/Copyright when AutocorrectNotice 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 before super. (@earlopain)
  • #12931: Fix false positives for Style/RedundantLineContinuation when line continuations involve break, next, or yield with a return value. (@koic)
  • #12924: Fix false positives for Style/SendWithLiteralMethodName when public_send argument is a method name that cannot be autocorrected. (@koic)

RuboCop 1.64

23 May 08:45
Compare
Choose a tag to compare

New features

  • #12904: Add new either_consistent SupportedShorthandSyntax to Style/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 for Style/AccessModifierDeclarations. (@krororo)
  • #11585: Support AllowedMethods for Style/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 is super. (@koic)
  • #12923: Fix false negatives for Style/ArgumentsForwarding when forward target is safe navigation method. (@koic)
  • #12894: Fix false positives for Style/MapIntoArray when using each 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 with Max config instead of listing everything out with Exclude. (@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 for Style/SymbolProc. (@koic)
  • #12897: Respect user's intentions with workspace/executeCommand LSP method. (@koic)

RuboCop 1.63.5

09 May 09:00
Compare
Choose a tag to compare

Bug fixes

  • #12877: Fix an infinite loop error for Layout/FirstArgumentIndentation when specifying EnforcedStyle: with_fixed_indentation of Layout/ArrayAlignment. (@koic)
  • #12873: Fix an error for Metrics/BlockLength when the CountAsOne 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

28 Apr 05:38
Compare
Choose a tag to compare

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 involve return 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)

RuboCop 1.63.3

28 Apr 05:40
Compare
Choose a tag to compare

Bug fixes

  • #12857: Fix false negatives for Lint/UnreachableCode when using pattern matching. (@koic)
  • #12852: Fix an error for Lint/EmptyFile in formatters when using cache. (@earlopain)
  • #12848: Fix an error that occurs in RuboCop::Lockfile when the constant Bundler is uninitialized. (@koic)

Changes

  • #12855: Set custom program name for the built-in LSP server. (@koic)

RuboCop 1.63.2

16 Apr 08:28
Compare
Choose a tag to compare

Bug fixes

  • #12843: Fix an error for Lint/MixedCaseRange when a character between Z and a is used in the regexp range. (@koic)
  • #12846: Fix an error for RuboCop::Lockfile when there is no Bundler environment. (@koic)
  • #12832: Fix an error for Style/ArgumentsForwarding when using block arg in nested method definitions. (@koic)
  • #12841: Fix false negatives for Lint/UnreachableLoop when using pattern matching. (@koic)
  • #12835: Allow global offenses to be disabled by directive comments. (@earlopain)

Changes

  • #12845: Exclude debug/open_nonstop from Lint/Debugger by default. (@koic)