Skip to content
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

Update rubocop 1.66.1 → 1.68.0 (minor) #1558

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

depfu[bot]
Copy link
Contributor

@depfu depfu bot commented Nov 12, 2024

Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ rubocop (1.66.1 → 1.68.0) · Repo · Changelog

Release Notes

1.68.0

New features

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 with Style/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 with do...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 or for contains an inner assignment. (@dvandersluis)
  • #13353: Fix an incorrect autocorrect for Style/BlockDelimiters when EnforcedStyle: semantic is set and used with Layout/SpaceInsideBlockBraces. (@koic)
  • #13361: Fix false positives for Style/RedundantInterpolationUnfreeze and Style/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 when ComparisonsThreshold exceeds 2. (@fatkodima,@vlad-pisanov)
  • #13325: Fix an incorrect autocorrect for Lint/NonAtomicFileOperation when using a postfix unless for file existence checks before creating a file, in cases with Dir.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 an and node is an or node. (@dvandersluis)
  • #13378: When removing parens in Style/TernaryParentheses with a send node condition, ensure its arguments are parenthesized. (@dvandersluis)

Changes

  • #13347: When running rubocop -V, show the analysis Ruby version of the current directory. (@earlopain)

1.67.0

New features

  • #13259: Add new Lint/DuplicateSetElement cop. (@koic)
  • #13223: Add AllowRBSInlineAnnotation config option to Layout/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 inline rescue with a semicolon before rescue. (@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 with Lint/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 multiline if 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 when AllowModifiersOnAttrs: 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 using delete_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 in Lint/LiteralInInterpolation. (@dvandersluis)
  • #13208: Fix an incorrect autocorrect for Style/IfWithSemicolon when single-line if/;/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 without else branch. (@earlopain)
  • #13215: Fix wrong autocorrect for Lint/BigDecimalNew when using ::BigDecimal.new. (@earlopain)
  • #13215: Fix wrong autocorrect for Style/MethodCallWithArgsParentheses with EnforcedStyle: omit_parentheses and whitespace. (@earlopain)
  • #13302: Fix incompatible autocorrect between Style/RedundantBegin and Style/BlockDelimiters with EnforcedStyle: braces_for_chaining. (@earlopain)

Changes

  • #13221: Do not group accessors having RBS::Inline annotation comments in Style/AccessorGrouping. (@tk0miya)
  • #13286: Add AllowedMethods configuration to Layout/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 for Style/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 of filter 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! in Style/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 implicit nil returns inside if. (@dvandersluis)
  • #13327: Make server mode aware of auto-restart for .rubocop_todo.yml update. (@koic)

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by more commits than we can show here.

↗️ json (indirect, 2.7.2 → 2.8.1) · Repo · Changelog

Release Notes

2.8.1

  • Fix the java version of the package to include the extension implementation. Only concerns JRuby.

Full Changelog: v2.8.0...v2.8.1

2.8.0

What's Changed

  • Emit a deprecation warning when JSON.load create custom types without the create_additions option being explictly enabled.
    • Prefer to use JSON.unsafe_load(string) or JSON.load(string, create_additions: true).
  • Emit a deprecation warning when serializing valid UTF-8 strings encoded in ASCII_8BIT aka BINARY.
  • Bump required Ruby version to 2.7.
  • Add support for optionally parsing trailing commas, via allow_trailing_comma: true, which in cunjunction with the
    pre-existing support for comments, make it suitable to parse jsonc documents.
  • Many performance improvements to JSON.parse and JSON.load, up to 1.7x faster on real world documents.
  • Some minor performance improvements to JSON.dump and JSON.generate.

Parsing performance

Parsing performance is improved by 50-70% on realistic benchmarks, and even more on micro-benchmarks: https://gist.github.com/casperisfine/cf4b3a0594fae24b7d0eb93daaf3841a

== Parsing activitypub.json (58160 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. 7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
          json 2.7.2   638.000 i/100ms
                  oj   798.000 i/100ms
          Oj::Parser   948.000 i/100ms
           rapidjson   631.000 i/100ms
Calculating -------------------------------------
          json 2.7.2      6.423k (± 1.3%) i/s  (155.70 μs/i) -     32.538k in   5.067149s
                  oj      7.989k (± 1.0%) i/s  (125.17 μs/i) -     40.698k in   5.094544s
          Oj::Parser      9.472k (± 1.3%) i/s  (105.58 μs/i) -     47.400k in   5.005119s
           rapidjson      6.354k (± 1.1%) i/s  (157.37 μs/i) -     32.181k in   5.064962s

Comparison:
json 2.8.0: 9510.0 i/s
Oj::Parser: 9471.9 i/s - same-ish: difference falls within error
oj: 7989.4 i/s - 1.19x slower
json 2.7.2: 6422.5 i/s - 1.48x slower
rapidjson: 6354.5 i/s - 1.50x slower

== Parsing twitter.json (567916 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. 7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
json 2.7.2 52.000 i/100ms
oj 64.000 i/100ms
Oj::Parser 76.000 i/100ms
rapidjson 57.000 i/100ms
Calculating -------------------------------------
json 2.7.2 526.860 (± 3.8%) i/s (1.90 ms/i) - 2.652k in 5.042680s
oj 631.234 (± 1.7%) i/s (1.58 ms/i) - 3.200k in 5.070973s
Oj::Parser 764.354 (± 3.5%) i/s (1.31 ms/i) - 3.876k in 5.077736s
rapidjson 579.085 (± 2.8%) i/s (1.73 ms/i) - 2.907k in 5.024620s

Comparison:
json 2.8.0: 884.0 i/s
Oj::Parser: 764.4 i/s - 1.16x slower
oj: 631.2 i/s - 1.40x slower
rapidjson: 579.1 i/s - 1.53x slower
json 2.7.2: 526.9 i/s - 1.68x slower

== Parsing citm_catalog.json (1727030 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. 7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
json 2.7.2 30.000 i/100ms
oj 35.000 i/100ms
Oj::Parser 45.000 i/100ms
rapidjson 40.000 i/100ms
Calculating -------------------------------------
json 2.7.2 304.584 (± 3.3%) i/s (3.28 ms/i) - 1.530k in 5.029021s
oj 358.572 (± 0.8%) i/s (2.79 ms/i) - 1.820k in 5.076123s
Oj::Parser 450.643 (± 3.1%) i/s (2.22 ms/i) - 2.295k in 5.098150s
rapidjson 395.304 (± 1.5%) i/s (2.53 ms/i) - 2.000k in 5.060537s

Comparison:
json 2.8.0: 449.8 i/s
Oj::Parser: 450.6 i/s - same-ish: difference falls within error
rapidjson: 395.3 i/s - 1.14x slower
oj: 358.6 i/s - 1.25x slower
json 2.7.2: 304.6 i/s - 1.48x slower

Full Changelog: v2.7.3...v2.8.0

2.7.6

  • Fix a regression in JSON.generate when dealing with Hash keys that are string subclasses, call to_json on them.

Full Changelog: v2.7.5...v2.7.6

2.7.5

What's Changed

  • Fix a memory leak when #to_json methods raise an exception.
  • Gracefully handle formatting configs being set to nil instead of "".
  • Workaround another issue caused by conflicting versions of both json_pure and json being loaded.

Full Changelog: v2.7.4...v2.7.5

2.7.4

What's Changed

  • Workaround a bug in 3.4.8 and older rubygems/rubygems#6490.
    This bug would cause some gems with native extension to fail during compilation.
  • Workaround different versions of json and json_pure being loaded (not officially supported).
  • Make json_pure Ractor compatible.

Full Changelog: v2.7.3...v2.7.4

2.7.3

What's Changed

  • Numerous performance optimizations in JSON.generate and JSON.dump (up to 2 times faster).
  • Limit the size of ParserError exception messages, only include up to 32 bytes of the unparseable source.
  • Fix json-pure's Object#to_json to accept non state arguments
  • Fix multiline comment support in json-pure.
  • Fix JSON.parse to no longer mutate the argument encoding when passed an ASCII-8BIT string.
  • Fix String#to_json to raise on invalid encoding in json-pure.
  • Delete code that was based on CVTUTF.
  • Use the pure-Ruby generator on TruffleRuby.
  • Fix strict mode in json-pure to not break on Integer.

JSON.dump Performance

JSON.dump is now much faster, and on par or faster than alternative implementations:

== Encoding citm_catalog.json (500298 bytes)
ruby 3.4.0preview2 (2024-10-07 master 32c733f57b) +YJIT +PRISM [arm64-darwin23]
Warming up --------------------------------------
        json (2.7.3)   123.000 i/100ms
                  oj   124.000 i/100ms
Calculating -------------------------------------
        json (2.7.3)      1.312k (± 1.8%) i/s  (761.91 μs/i) -      6.642k in   5.062192s
                  oj      1.278k (± 2.0%) i/s  (782.35 μs/i) -      6.448k in   5.046587s

Comparison:
json (2.7.2): 884.0 i/s
json (2.7.3): 1312.5 i/s - 1.48x faster
oj: 1278.2 i/s - 1.45x faster

== Encoding twitter.json (466906 bytes)
ruby 3.4.0preview2 (2024-10-07 master 32c733f57b) +YJIT +PRISM [arm64-darwin23]
Warming up --------------------------------------
        json (2.7.3)   213.000 i/100ms
                  oj   222.000 i/100ms
Calculating -------------------------------------
        json (2.7.3)      2.140k (± 2.8%) i/s  (467.19 μs/i) -     10.863k in   5.079099s
                  oj      2.303k (± 3.2%) i/s  (434.27 μs/i) -     11.544k in   5.018239s

Comparison:
        json (2.7.2):     1250.5 i/s
                  oj:     2302.7 i/s - 1.84x  faster
        json (2.7.3):     2140.5 i/s - 1.71x  faster

Full Changelog: ruby/json@v2.7.2...v2.7.3

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by more commits than we can show here.

↗️ parser (indirect, 3.3.5.0 → 3.3.6.0) · Repo · Changelog

Release Notes

3.3.6.0 (from changelog)

API modifications:

  • Bump maintenance branches to 3.3.6 (#1045) (Koichi ITO)

3.3.5.1 (from changelog)

API modifications:

  • Bump maintenance branches to 3.2.6 (#1044) (Koichi ITO)

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by 9 commits:

↗️ rubocop-ast (indirect, 1.32.3 → 1.35.0) · Repo · Changelog

Release Notes

1.34.1 (from changelog)

New features

Bug fixes

1.34.0 (from changelog)

New features

  • #326: Introduce lhs and rhs aliases to assignment nodes for consistency. (@dvandersluis)

1.33.1 (from changelog)

Bug fixes

  • #325: Allow non_bare_access_modifier_declaration? to handle modifiers with multiple arguments. (@dvandersluis)

1.33.0 (from changelog)

New features

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by 36 commits:


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu cancel merge
Cancels automatic merging of this PR
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants