Skip to content

Releases: rubocop/rubocop

RuboCop v1.73.1

27 Feb 10:23
Compare
Choose a tag to compare

Bug fixes

  • #13920: Fix an error for Lint/MixedCaseRange when /[[ ]]/ is used. (@koic)
  • #13912: Fix wrong autocorrect for Lint/EmptyConditionalBody when assigning to a variable with only a single branch. (@earlopain)
  • #13913: Fix false positives for Style/RedundantCondition when using when true is used as the true branch and the condition is not a predicate method. (@koic)
  • #13909: Fix false positive with Layout/ClosingParenthesisIndentation when first parameter is a hash. (@tejasbubane)
  • #13915: Fix writing generics type of rbs-inline annotation for nested class in Style/CommentedKeyword. (@dak2)
  • #13916: Fix Lint/LiteralAsCondition acting on the right hand side of && nodes. (@zopolis4)

RuboCop 1.73

26 Feb 07:49
Compare
Choose a tag to compare

New features

  • #11024: Add require_always option to Style/EndlessMethod. (@koic)
  • #11024: Add require_single_line option to Style/EndlessMethod. (@jtannas)
  • #9935: Introduce EnforcedStyleForMultiline "diff_comma". (@flavorjones)

Bug fixes

  • #13867: Fix an error for plugins when not running RuboCop through Bundler. (@earlopain)
  • #13902: Fix false negative for Style/RedundantSelfAssignment when the method receives a block. (@vlad-pisanov)
  • #13826: Fix false positives for regex cops when Lint/MixedCaseRange is enabled. (@earlopain)
  • #13818: Fix false positives for Lint/Void when using operator method call without argument. (@koic)
  • #13896: Fix a false positive for Style/TrivialAccessors with instance_eval and numblocks. (@earlopain)
  • #13910: Fix false positives for Style/EndlessMethod when using setter method definitions. (@koic)
  • #13889: Fix autocorrection for Layout/LineLength with interpolated strings when not on the first line. (@dvandersluis)
  • #13900: Fix infinite loop between Layout/EmptyLinesAroundAccessModifier and Layout/EmptyLinesAroundBlockBody with EnforcedStyle: no_empty_lines. (@dvandersluis)
  • #12692: Fix Style/AccessorGrouping with constants. (@tejasbubane)
  • #13882: Fix Style/RedundantFormat for annotated template strings with missing hash keys. (@dvandersluis)
  • #13880: Fix Style/RedundantFormat when given double-splatted arguments. (@dvandersluis)
  • #13907: Don't offer autocorrect for Style/StringConcatenation when numblocks are used. (@earlopain)
  • #13876: Don't consider require 'pp' to be redundant for Lint/RedundantRequireStatement. (@earlopain)
  • #13885: Update Style/HashExcept and Style/HashSlice to not register an offense if selecting over the hash value. (@dvandersluis)

Changes

  • #12948: Add ForbiddenNames configuration to Naming/VariableName to specify names that are forbidden. (@dvandersluis)
  • #13117: Add partial autocorrect support to Lint/LiteralAsCondition cop to check for redundant conditions. (@zopolis4)
  • #13892: Allow merging of configured arrays and non-arrays. (@sambostock)
  • #13833: Add Reference to common params. (@sambostock)
  • #13890: Update Lint/RedundantTypeConversion to not register an offense when given a constructor with exception: false. (@dvandersluis)
  • #13729: Update Style/RedundantCondition cop to detect conditional expressions where the true branch is true and suggest replacing them with a logical OR. (@datpmt)

RuboCop 1.72.2

17 Feb 16:29
Compare
Choose a tag to compare

Bug fixes

  • #13853: Fix exclusion of relative paths in plugin's AllCops: Exclude as expected. (@koic)
  • #13844: Fix an error for Style/RedundantFormat when a template argument is used without keyword arguments. (@koic)
  • #13857: Fix an error for Style/RedundantFormat when numeric placeholders is used in the template argument. (@koic)
  • #13861: Fix ArgumentError related to two deprecated AllowedPattern APIs. (@koic)
  • #13849: Fix an error for Lint/UselessConstantScoping when multiple assigning to constants after private access modifier. (@koic)
  • #13856: Fix false positives for Lint/UselessConstantScoping when a constant is used after private access modifier with arguments. (@koic)

Changes

  • #13846: Mark Style/RedundantFormat as unsafe autocorrect. (@koic)

RuboCop 1.72.1

15 Feb 15:52
Compare
Choose a tag to compare

Bug fixes

  • #13836: Fix an error for Style/RedundantParentheses when a different expression appears before a range literal. (@koic)
  • #13839: Fix false positives for Lint/RedundantTypeConversion when passing block arguments when generating a Hash or a Set. (@koic)

Changes

  • #13839: Extension plugin is loaded automatically with require 'rubocop/rspec/support'. (@koic)

RuboCop 1.72

14 Feb 15:16
Compare
Choose a tag to compare

New features

  • #13740: Add new Lint/CopDirectiveSyntax cop. (@kyanagi)
  • #13800: Add new Lint/SuppressedExceptionInNumberConversion cop. (@koic)
  • #13702: Add new Lint/RedundantTypeConversion cop. (@dvandersluis)
  • #13831: Add new Lint/UselessConstantScoping cop. (@koic)
  • #13793: Add new Style/RedundantFormat cop to check for uses of format or sprintf with only a single string argument. (@dvandersluis)
  • #13581: Add new InternalAffairs/LocationExists cop to check for code that can be replaced with Node#loc? or Node#loc_is?. (@dvandersluis)
  • #13661: Make server mode detect local paths in .rubocop.yml under inherit_from and require for automatically restart. (@koic)
  • #13721: Naming/PredicateName: Optionally use Sorbet to detect predicate methods. (@issyl0)
  • #6012: Support RuboCop extension plugin. (@koic)

Bug fixes

  • #13807: Fix false negatives for Style/RedundantParentheses when chaining [] method calls. (@koic)
  • #13788: Fix false negatives for Style/RedundantParentheses when [] method is called with variable or constant receivers. (@koic)
  • #13811: Fix false negatives for Style/RedundantParentheses when handling range literals with redundant parentheses. (@koic)
  • #13796: Fix crash in Layout/EmptyLinesAroundMethodBody for endless methods. (@dvandersluis)
  • #13817: Fix false positive for format specifier with non-numeric precision. (@dvandersluis)
  • #12672: Fix false positives for Lint/FormatParameterMismatch when the width value is interpolated. (@dvandersluis)
  • #12795: Fix Layout/BlockAlignment for blocks that are the body of an endless method. (@dvandersluis)
  • #13822: Fix undefined method Logger when processing watched file notifications. (@vinistock)
  • #13805: Make the language_server-protocol dependency version stricter. (@koic)

RuboCop 1.71.2

04 Feb 07:53
Compare
Choose a tag to compare

Bug fixes

  • #13782: Fix an error Layout/ElseAlignment when else is part of a numblock. (@earlopain)
  • #13395: Fix a false positive for Lint/UselessAssignment when assigning in branch and block. (@pCosta99)
  • #13783: Fix a false positive for Lint/Void when each numblock with conditional expressions that has multiple statements. (@earlopain)
  • #13787: Fix incorrect autocorrect for Style/ExplicitBlockArgument when using arguments of zsuper in method definition. (@koic)
  • #13785: Fix Style/EachWithObject cop error in case of single block argument. (@viralpraxis)
  • #13781: Fix a false positive for Lint/UnmodifiedReduceAccumulator when omitting the accumulator in a nested numblock. (@earlopain)

RuboCop 1.71.1

31 Jan 09:58
Compare
Choose a tag to compare

Bug fixes

  • #10081: Add the missing include RuboCop::RSpec::ExpectOffense in rubocop/rspec/support.rb. (@d4rky-pl)
  • #13765: Fix a false negative for Lint/AmbiguousBlockAssociation with numblocks. (@earlopain)
  • #13759: Fix a false negative for Lint/ConstantDefinitionInBlock with numblocks. (@earlopain)
  • #13741: Register an offense for Naming/BlockForwarding and Style/ArgumentsForwarding with Ruby >= 3.4 when the block argument is referenced inside a block. This was previously disabled because of a bug in Ruby 3.3.0. (@earlopain)
  • #13777: Fix a false negative for Layout/EmptyLineBetweenDefs with DefLikeMacros and numblocks. (@earlopain)
  • #13769: Fix a false negative for Style/RedundantParentheses with numblocks. (@earlopain)
  • #13780: Fix a false positive Style/AccessModifierDeclarations when using access modifier in a numblock. (@earlopain)
  • #13775: Fix a false positive for Lint/AssignmentInCondition when assigning in numblocks. (@earlopain)
  • #13773: Fix false positives for Layout/RedundantLineBreak when using numbered block parameter. (@koic)
  • #13761: Fix a false positive for Style/SuperArguments when calling super in a numblock. (@earlopain)
  • #13768: Fix a false positive for Lint/UnreachableCode with instance_eval numblock. (@earlopain)
  • #13750: Fix false positives for Style/RedundantSelfAssignment when assigning to attribute of self. (@koic)
  • #13739: Fix false positive for Style/HashExcept and Style/HashSlice when checking for inclusion with a range. (@dvandersluis)
  • #13751: Fix false positive in Layout/ExtraSpacing with ForceEqualSignAlignment: true for endless methods. (@dvandersluis)
  • #13767: Fix Style/IdenticalConditionalBranches autocorrect when condition is inside assignment. (@dvandersluis)
  • #13764: Fix a false negative for Layout/SingleLineBlockChain with numblocks. (@earlopain)
  • #13771: Fix wrong autocorrect for Style/SoleNestedConditional when using numblocks. (@earlopain)

RuboCop 1.71

23 Jan 16:20
Compare
Choose a tag to compare

New features

Bug fixes

  • #13684: Fix a false positive for Style/FrozenStringLiteralComment when using the frozen string literal magic comment in Active Admin's arb files. (@koic)
  • #13372: Add rubocop_cache to the path given by --cache-root when pruning cache. (@capncavedan)
  • #13257: Fix department disable/enable comments enabling the cop for the whole file even if that file is excluded by the cop. (@earlopain)
  • #13704: Fix false positives for Lint/OutOfRangeRegexpRef when matching with match using safe navigation. (@koic)
  • #13720: Fix false positives for Style/BlockDelimiters when using brace blocks as conditions under EnforcedStyle: semantic. (@koic)
  • #13688: Fix false negative on Style/RedundantLineContinuation when the continuation is preceded by an interpolated string. (@dvandersluis)
  • #13677: Fix false negative on Style/RedundantLineContinuation when the continuation is followed by a percent array. (@dvandersluis)
  • #13692: Fix false positive in Style/RedundantLineContinuation when the ruby code ends with a commented continuation. (@dvandersluis)
  • #13675: Fix invalid autocorrect for Style/ArrayFirstLast when calling .[] or &.[] with 0 or -1. (@dvandersluis)
  • #13685: Fix syntax error introduced by Lint/SafeNavigationChain when adding safe navigation to an operator call inside a hash. (@dvandersluis)
  • #13725: Fix an incorrect autocorrect for Style/IfUnlessModifier when using omitted hash values in an assignment. (@elliottt)
  • #13667: Maintain precedence in autocorrect for Style/SoleNestedConditional. (@tejasbubane)
  • #13679: Fix false positive for Style/RedundantLineContinuation when calling methods with fully qualified constants. (@earlopain)
  • #13728: Fix a RuboCop error on provided glob pattern which matches directory. (@viralpraxis)
  • #13693: Fix Style/ConditionalAssignment cop error on unless without else and assign_inside_condition enforced style. (@viralpraxis)
  • #13669: Fix Style/FrozenStringLiteralComment cop error on unnormalized magic comment and never enforced style. (@viralpraxis)
  • #13696: Update Metrics/CollectionLiteralLength to only register for [] when called on Set. (@dvandersluis)

Changes

RuboCop 1.70

10 Jan 07:49
Compare
Choose a tag to compare

New features

  • #13474: Add new Style/ItAssignment cop to detect local assignments to it inside blocks. (@dvandersluis)
  • #11013: Add new Lint/SharedMutableDefault cop to alert on mutable Hash defaults. (@corsonknowles)
  • #13612: Create new cop Lint/ConstantReassignment. (@lovro-bikic)
  • #13628: Make LSP server support quick fix code action. (@koic)
  • #13607: Support passing the target ruby version through an environment variable. (@elliottt)
  • #13628: Add support for Ruby LSP as a built-in add-on. (@koic)
  • #13284: Add new target_gem_version API to change behavior of a cop at runtime depending on which gem version is present. (@earlopain)

Bug fixes

  • #13589: Fix Lint/NonAtomicFileOperation to detect offenses with fully qualified constants. (@viralpraxis)
  • #13630: Fix CLI --format option to accept fully qualified formatter class names. (@viralpraxis)
  • #13624: Don't show warnings from Lint/Syntax when a syntax error occurs. (@earlopain)
  • #13605: Fix RuboCop::Cop::Util.to_string_literal to work correctly with frozen strings. (@viralpraxis)
  • #12393: Fix false negatives for Lint/Void inside of non-modifier conditionals. (@GabeIsman)
  • #13623: Fix false negatives for Style/MultipleComparison when setting AllowMethodComparison: false and comparing with simple method calls. (@koic)
  • #13644: Fix a false positive for Layout/EmptyLinesAroundAccessModifier when an access modifier and an expression are on the same line. (@koic)
  • #13645: Fix a false positive for Style/MethodCallWithArgsParentheses when setting EnforcedStyle: omit_parentheses and last argument is an endless range. (@earlopain)
  • #13614: Fix false positives for Style/RaiseArgs with anonymous splat and triple dot forwarding. (@earlopain)
  • #13591: Fix false positives for Lint/NestedMethodDefinition when defining a method on a constant or a method call. (@koic)
  • #13594: Fix false positives for Style/MultipleComparison when using multiple safe navigation method calls. (@koic)
  • #13654: Fix false positives for Style/RedundantInitialize when empty initialize method has arguments. (@marocchino)
  • #13608: Fix crash when running rubocop -d on a config with a remote inherit_from that causes a duplicate setting warning. (@dvandersluis)
  • #12430: Fix false negatives in Style/RedundantLineContinuation with multiple line continuations. (@dvandersluis)
  • #13638: Fix false positive for Naming/BlockForwarding when method just returns the block argument. (@mvz)
  • #13599: Fix incorrect autocorrect for Layout/HashAlignment when there is a multiline positional argument and Layout/ArgumentAlignment is configured with EnforcedStyle: with_fixed_indentation. (@dvandersluis)
  • #13586: Fix regression in Layout/SpaceAroundOperators when different comparison operators were aligned with each other. (@dvandersluis)
  • #13603: Fix Lint/LiteralInInterpolation cop error on invalid string literal. (@viralpraxis)
  • #13582: Fix Lint/NonAtomicFileOperation cop error on non-constant receiver. (@viralpraxis)
  • #13598: Fix Lint/Void cop error on if without body. (@viralpraxis)
  • #13634: Fix Style/ClassAndModuleChildren cop error on compact enforced style and unindented body. (@viralpraxis)
  • #13642: Fix Style/FloatDivision cop error if #to_f has implicit receiver. (@viralpraxis)
  • #13517: Fixes Style/HashExcept to recognize safe navigation when ActiveSupportExtensionsEnabled config is enabled. (@lovro-bikic)
  • #13585: Fix Style/HashSyntax cop error on implicit call method. (@viralpraxis)
  • #13632: Fix Style/MissingElse cop error if Style/EmptyElse's EnforcedStyle is not both and if expression contains elsif. (@viralpraxis)
  • #13659: Fix Style/MissingElse cop error if Style/EmptyElse's EnforcedStyle is not both and if expression contains multiple elsif. (@viralpraxis)
  • #13596: Fix Style/RedundantCondition cop error on parentheses and modifier if in else. (@viralpraxis)
  • #13616: Fix incorrect autocorrect for Style/RedundantRegexpArgument when the regex contains a single quote. (@mrzasa)
  • #13619: Fix Style/YodaExpression cop error in case of suffix form of operator. (@viralpraxis)
  • #13578: Update Layout/LineContinuationSpacing to ignore continuations inside a regexp or xstr. (@dvandersluis)
  • #13601: Update Style/SuperArguments to handle super with a block or with a chained method with a block. (@dvandersluis)
  • #13568: Fix NoMethodError in ConfigValidator when a Cop's config is not a Hash and raise ValidationError instead. (@amomchilov)

Changes

  • #13665: Add support for safe navigation to Style/ObjectThen. (@dvandersluis)
  • #13657: Add support for safe navigation to Layout/HashAlignment. (@dvandersluis)
  • #13656: Add support for safe navigation to Layout/HeredocArgumentClosingParenthesis. (@dvandersluis)
  • #13655: Add support for safe navigation to Layout/LineLength. (@dvandersluis)
  • #13662: Add support for safe navigation to Style/SendWithLiteralMethodName. (@dvandersluis)
  • #13557: Fix false positives for Lint/NumericOperationWithConstantResult. (@earlopain)
  • #13658: Fix invalid autocorrect for Style/SlicingWithRange when calling .[] or &.[] with a correctable range. (@dvandersluis)
  • #13548: Enhance Lint/DuplicateSetElement to detect offences within SortedSet. (@viralpraxis)
  • #13646: Update Layout/TrailingWhitespace to support blank characters other than space and tab. (@krororo)
  • #13652: Update Metrics/MethodLength to make use of AllowedMethods and AllowedPatterns for methods defined dynamically with define_method. (@dvandersluis)
  • #13606: Update Style/AccessModifierDeclarations to add AllowModifiersOnAliasMethod configuration (default true). (@dvandersluis)
  • #13663: Update Style/RedundantSelfAssignment to handle safe navigation on the right-hand side of the assignment. (@dvandersluis)

RuboCop 1.69.2

12 Dec 14:13
Compare
Choose a tag to compare

Bug fixes

  • #13553: Fix an incorrect autocorrect for Style/MultipleComparison when a variable is compared multiple times after a method call. (@koic)
  • #13562: Fix Bundler/DuplicatedGem cop error in case of empty branch. (@viralpraxis)
  • #13573: Fix Lint/UnescapedBracketInRegexp cop failure with invalid multibyte escape. (@earlopain)
  • #13556: Fix false positives for Style/FileNull when using 'nul' string. (@koic)
  • #12995: Fix --disable-uncorrectable to not insert directives inside a string. (@dvandersluis)
  • #13320: Fix incorrect autocorrect when Layout/LineContinuationLeadingSpace and Style/StringLiterals autocorrects in the same pass. (@dvandersluis)
  • #13299: Fix Style/BlockDelimiters to always accept braces when an operator method argument is chained. (@dvandersluis)
  • #13565: Fix Style/RedundantLineContinuation false negatives when a redundant continuation follows a required continuation. (@dvandersluis)
  • #13551: Fix an incorrect autocorrect for Style/IfWithSemicolon when using multi value assignment in if with a semicolon is used. (@koic)
  • #13534: Fix Layout/LineLength cop failure in case of YARD-comment-like string. (@viralpraxis)
  • #13558: Fix Lint/NonAtomicFileOperation cop error in case of implicit receiver. (@viralpraxis)
  • #13564: Fix Metrics/ClassLength cop error in case of chained assignments. (@viralpraxis)
  • #13570: Fix Naming/RescuedExceptionsVariableName cop error when exception is assigned with writer method. (@viralpraxis)
  • #13559: Fix a false positive for Style/RedundantLineContinuation when a method definition is used as an argument for a method call. (@davidrunger)
  • #13574: Fix Style/ExactRegexpMatch cop error on invalid regular expression literal. (@viralpraxis)
  • #13554: Fix Style/FrozenStringLiteralComment false positive in case of non-downcased value literal. (@viralpraxis)
  • #13569: Fix Style/MethodCallWithoutArgsParentheses cop error in case of mass hash assignment. (@viralpraxis)
  • #13542: Fix Style/RedundantCondition cop failure in case of empty arguments. (@viralpraxis)
  • #13509: Update Layout/ExtraSpacing and Layout/SpaceAroundOperators to handle preceding operators inside strings. (@dvandersluis)