Skip to content

Conversation

@depfu
Copy link
Contributor

@depfu depfu bot commented Jan 28, 2026

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.76.0 → 1.84.0) · Repo · Changelog

Release Notes

Too many releases to show here. View the full release notes.

Commits

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

↗️ json (indirect, 2.12.2 → 2.18.0) · Repo · Changelog

Release Notes

2.18.0

What's Changed

  • Add :allow_control_characters parser options, to allow JSON strings containing unescaped ASCII control characters (e.g. newlines).

Full Changelog: v2.17.1...v2.18.0

2.17.1 (from changelog)

  • Fix a regression in parsing of unicode surogate pairs (\uXX\uXX) that could cause an invalid string to be returned.

2.17.0

What's Changed

  • Improve JSON.load and JSON.unsafe_load to allow passing options as second argument.
  • Fix the parser to no longer ignore invalid escapes in strings.
    Only \", \\, \b, \f, \n, \r, \t and \u are valid JSON escapes.
  • Fixed JSON::Coder to use the depth it was initialized with.
  • On TruffleRuby, fix the generator to not call to_json on the return value of as_json for Float::NAN.
  • Fixed handling of state.depth: when to_json changes state.depth but does not restore it, it is reset
    automatically to its initial value.
    In particular, when a NestingError is raised, depth is no longer equal to max_nesting after the call to
    generate, and is reset to its initial value. Similarly when to_json raises an exception.

Full Changelog: v2.16.0...v2.17.0

2.16.0

What's Changed

  • Deprecate JSON::State#[] and JSON::State#[]=. Consider using JSON::Coder instead.
  • JSON::Coder now also yields to the block when encountering strings with invalid encoding.
  • Fix GeneratorError messages to be UTF-8 encoded.
  • Fix memory leak when Exception is raised, or throw is used during JSON generation.
  • Optimized floating point number parsing by integrating the ryu algorithm (thanks to Josef Šimánek).
  • Optimized numbers parsing using SWAR (thanks to Scott Myron).
  • Optimized parsing of pretty printed documents using SWAR (thanks to Scott Myron).

Full Changelog: v2.15.2...v2.16.0

2.15.2

What's Changed

  • Fix JSON::Coder to have one dedicated depth counter per invocation.
    After encountering a circular reference in JSON::Coder#dump, any further #dump call would raise JSON::NestingError.

Full Changelog: v2.15.1...v2.15.2

2.15.1

What's Changed

  • Fix incorrect escaping in the JRuby extension when encoding shared strings.

Full Changelog: v2.15.0...v2.15.1

2.15.0

What's Changed

  • JSON::Coder callback now receive a second argument to convey whether the object is a hash key.
  • Tuned the floating point number generator to not use scientific notation as aggressively.

Full Changelog: v2.14.1...v2.15.0

2.14.1

What's Changed

  • Fix IndexOutOfBoundsException in the JRuby extension when encoding shared strings.

Full Changelog: v2.14.0...v2.14.1

2.14.0

What's Changed

  • Add new allow_duplicate_key generator options. By default a warning is now emitted when a duplicated key is encountered.
    In json 3.0 an error will be raised.
    >> Warning[:deprecated] = true
    >> puts JSON.generate({ foo: 1, "foo" => 2 })
    (irb):2: warning: detected duplicate key "foo" in {foo: 1, "foo" => 2}.
    This will raise an error in json 3.0 unless enabled via `allow_duplicate_key: true`
    {"foo":1,"foo":2}
    >> JSON.generate({ foo: 1, "foo" => 2 }, allow_duplicate_key: false)
    detected duplicate key "foo" in {foo: 1, "foo" => 2} (JSON::GeneratorError)
  • Fix JSON.generate strict: true mode to also restrict hash keys.
  • Fix JSON::Coder to also invoke block for hash keys that aren't strings nor symbols.
  • Fix JSON.unsafe_load usage with proc
  • Fix the parser to more consistently reject invalid UTF-16 surogate pairs.

Full Changelog: v2.13.2...v2.14.0

2.13.2

What's Changed

  • Improve duplicate key warning and errors to include the key name and point to the right caller.

Full Changelog: v2.13.1...v2.13.2

2.13.1

What's Changed

  • Fix support for older compilers without __builtin_cpu_supports.

Full Changelog: v2.13.0...v2.13.1

2.13.0

What's Changed

  • Add new allow_duplicate_key parsing options. By default a warning is now emitted when a duplicated key is encountered.
    In json 3.0 an error will be raised.
  • Optimize parsing further using SIMD to scan strings.

Full Changelog: v2.12.2...v2.13.0

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.8.0 → 3.3.10.1) · Repo · Changelog

Release Notes

3.3.10.1 (from changelog)

API modifications:

  • Bump maintenance branches to 3.2.10 (#1085) (Koichi ITO)

3.3.10.0 (from changelog)

API modifications:

  • Bump maintenance branches to 3.3.10 (#1083) (Koichi ITO)

3.3.9.0 (from changelog)

API modifications:

  • Bump maintenance branches to 3.3.9 (#1080) (Koichi ITO)
  • Bump maintenance branches to 3.2.9 (#1079) (Koichi ITO)

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

Commits

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

↗️ prism (indirect, 1.4.0 → 1.9.0) · Repo · Changelog

Release Notes

1.8.0

Added

  • Optimize ruby visitor.
  • Report unterminated construct errors at opening token.

Changed

  • Correctly expose ripper state.
  • Use one file for versioned parser classes.
  • Fix denominator of rational float literal.
  • Decouple ripper translator from ripper library.
  • Sync Prism::Translation::ParserCurrent with Ruby 4.0.

1.7.0

Added

  • Support 4.1 as a version option.
  • Add equal_loc to CallNode.
  • Add len()/is_empty() to ConstantList and NodeList in the Rust API.

Changed

  • Rename version 3.5 to version 4.0.
  • Fix compiling the gem from source on Windows.
  • Fix parsing of unary method calls like 42.~@.
  • Reject def f a, (b) = 1.
  • Reject endless method as a block parameter default.
  • Reject variable capture in alternative pattern.
  • Many fixes in regards to memory safety, found through fuzzing.
  • Many fixes to better handle invalid syntax, also found through fuzzing.
  • Fix the ruby version used by the ripper translator.
  • Fix ruby_parser translation comment processing.

1.6.0

Added

  • Add support for passing "current" as the version option to Prism.* APIs.

Changed

  • Remove a compiler warning for a missing unsigned cast for a shift value.

1.5.2

Changed

  • Fix character literal forced encoding when a unicode escape sequence is used.
  • Reject 1 if foo = bar baz.
  • Clear static literal flag on interpolated strings.
  • Reject optional argument/endless method definition ambiguity.

1.5.1

Changed

  • Revert of a bug introduced with static literal flags on interpolated strings.

1.5.0

Added

  • Add Prism::Translation::ParserCurrent.
  • Add Integer::to_u32_digits for the Rust API.
  • Add pm_comment_type_t field for the Rust API.
  • Support leading logical operators for CRuby 3.5+.

Changed

  • Mark Prism as ractor-safe.
  • Enforce a minimum version for the parser translation layer.
  • Many fixes to the parser translation layer.
  • Accept a newline after the defined? keyword.
  • Reject true && not true.
  • Make it = it assign nil to match parse.y behavior [Bug #21139].
  • Some fixes to the ruby parser translation layer.
  • Ensure call nodes have the correct ending location.
  • Reject foo && return bar.

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.

↗️ regexp_parser (indirect, 2.10.0 → 2.11.3) · Repo · Changelog

Release Notes

2.11.3 (from changelog)

Fixed

  • correctly emit backslash-escaped UTF8 characters in character classes as one token (#104)

2.11.2 (from changelog)

Added

Fixed

  • scan with correct encoding when passing regopt individually (#102)

2.11.1 (from changelog)

Fixed

  • restored compatibility with Ruby < 2.6, broken in regexp_parser v2.11.0

2.11.0 (from changelog)

Added

  • a new token :escape, :utf8_hex and expression EscapeSequence::UTF8Hex
    • used for UTF-8 hex escapes, e.g. \xE2\x82\xAC representing U+20AC "€"

Fixed

  • detection of numeric backrefs > 9, e.g. ((((((((((foo))))))))))\10
    • these are only backrefs in Ruby if sufficient groups have been opened
    • they were previously always scanned as octal or literal escapes

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

Commits

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

↗️ rubocop-ast (indirect, 1.45.0 → 1.49.0) · Repo · Changelog

Release Notes

1.49.0

New features

  • #394: Support Ruby 4.1 (experimental). (@koic)

1.48.0

New features

  • #391: Support Ruby 4.0 (experimental). (@koic)

1.47.1 (from changelog)

Bug fixes

  • #386: Fix parsing of node patterns that match against the empty string. (@earloapin)

1.47.0 (from changelog)

New features

1.46.0

New features

  • #379: Support RuboCop::AST::ComplexNode. ([@koic][])

Bug fixes

  • #380: Fix RuboCop::AST::NumericNode#sign? to return boolean. ([@viralpraxis][])

1.45.1

Bug fixes

  • #382: Fix an error when using Parser gem with prism_result. (@koic)

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

Commits

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

↗️ unicode-display_width (indirect, 3.1.4 → 3.2.0) · Repo · Changelog

Release Notes

3.2.0 (from changelog)

  • Unicode 17.0

3.1.5 (from changelog)

  • Cache Emoji support level for performance reasons #30, patch by @Earlopain:

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

Commits

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

↗️ unicode-emoji (indirect, 4.0.4 → 4.2.0) · Repo · Changelog

Release Notes

4.2.0 (from changelog)

  • Allow Ruby 4.0
  • Remove Non-Emoji pictographs from spec, since they have been removed in Unicode 17
  • Update valid subdivisions to CLDR 48 (no changes)

4.1.0 (from changelog)

  • Unicode 17
  • Update valid subdivisions to CLDR 47 (no changes)

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

Commits

See the full diff on Github. The new version differs by 16 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)

@depfu depfu bot added the depfu label Jan 28, 2026
@depfu
Copy link
Contributor Author

depfu bot commented Feb 3, 2026

Closed in favor of #502.

@depfu depfu bot closed this Feb 3, 2026
@depfu depfu bot deleted the depfu/update/rubocop-1.84.0 branch February 3, 2026 21:48
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