Skip to content

Update json requirement from 3.0.2 to 3.1.0 - #140

Merged
petk merged 1 commit into
mainfrom
dependabot/bundler/json-3.1.0
Oct 17, 2026
Merged

petk merged 1 commit into
mainfrom
dependabot/bundler/json-3.1.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Updates the requirements on json to permit the latest version.

Changelog

Sourced from json's changelog.

2026-10-13 (3.1.0)

  • Added rfc8785 generator option to canonicalize the output. Replaces the json-canonicalization with numerous correctness fixes.
  • Use the rb_len_t type introduced in Ruby 4.1 to allow for proper 64bit support on LP64 platforms (Windows).
  • JRuby: parser errors now include the position (line, column and the message suffix) as well as json_path, matching the C extension.
  • Improved the accuracy of parser error's line, column and snipets in presence of multibyte characters.
  • Fix JSON.load to work correctly when provided a Zlib::GzipReader as IO source.
  • Reject non-ASCII BINARY strings during JSON generation. This was deprecated since a long time and scheduled to be removed for 3.0.

2026-09-09 (3.0.2)

  • Fix JSON.load_file and JSON.load_file! to load on Ruby 2.7.0 through 2.7.2, which cannot parse a leading parameter before ....

2026-09-08 (3.0.1)

  • Restore the limit positional argument of JSON.dump.

2026-09-07 (3.0.0)

  • Add JSON::ParserError#json_path to locate parse errors in the document as a JSONPath-style string (e.g. $.foo[0].bar). For duplicate key errors it points at the duplicated key itself.
  • Fix the parser to also reject lone trailing UTF-16 surrogates (\uDCxx with no leading partner), symmetric to the leading-surrogate case. The Java parser already rejected these; this closes the CRuby/JRuby parity gap.

2026-08-11 (3.0.0.rc1)

With the removal of the insecure create_additions option, JSON.load and JSON.dump are now safe to use. Them being unsafe by default caused multiple security vulnerabilites in the past.

If you did depend on create_additions, the recommended migration is to implement a custom serializer using JSON::Coder.

All the mutable default options, such as JSON.load_default_options have been removed. They were preventing Ractor compatiblity, and causing bug in libraries using JSON expecting the default behavior. JSON methods now always behave the same unless monkey patched.

All methods options are now either keyword arguments or checked like keyword arguments, meaning unknown options such as typos raise ArgumentError.

Duplicated keys are now rejected by default.

JavaScript comments in documents are no longer supported by default.

Numerous rarely used aliases have been removed.

  • JSON.load defaults are now safe to use.
  • All unknown options will now cause an ArgumentError rather than to be ignored.
  • The allow_comments parsing option now defaults to false.
  • The allow_duplicate_key option now defaults to false, for both parsing and generating JSON.
  • Removed the limit positional argument of JSON.dump.
  • Removed the escape_slash alias of script_safe.
  • Removed Kernel#j and Kernel#jj.

... (truncated)

Commits
  • a15b2ba Release 3.1.0
  • d09e383 Refactor rfc8785_sort_keys_proc
  • e19f7d7 Handle invalid encoding in JSON path keys
  • 78d6a83 parser.c: only update the stack once fully spilled
  • 6ea6201 Fix parsing of number with out of range negative exponents
  • 1b67eb3 Fix parsing of unescaped NULL bytes in strings
  • c1a4372 ResumableParser: fix handling of incomplete unicode escape
  • 429c109 More hardening against adversarial encode methods
  • 8df32ab Index the generated JSON array by rb_len_t
  • 21193d0 Match rb_hash_bulk_insert fallback to Ruby's declaration
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note

Low Risk
Single-version dependency pin with no application logic changes; minor risk is only from json 3.1.0 behavior changes in doc/build tooling.

Overview
Pins the json gem from 3.0.2 to 3.1.0 in the Gemfile (Dependabot). No other files or call sites in this repo are modified.

The upgrade pulls in upstream fixes and features (e.g. rfc8785 generator option, parser error improvements, JSON.load with Zlib::GzipReader, stricter rejection of non-ASCII binary strings during generation). Runtime impact here is limited to whatever build/tooling loads this gem; book content only shows JSON.parse in examples.

Reviewed by Cursor Bugbot for commit 4ef5778. Bugbot is set up for automated code reviews on this repo. Configure here.

Updates the requirements on [json](https://github.com/ruby/json) to permit the latest version.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](ruby/json@v3.0.2...v3.1.0)

---
updated-dependencies:
- dependency-name: json
  dependency-version: 3.1.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file ruby Pull requests that update Ruby code labels Oct 16, 2026
@petk
petk merged commit ae9e686 into main Oct 17, 2026
2 checks passed
@dependabot
dependabot Bot deleted the dependabot/bundler/json-3.1.0 branch October 17, 2026 21:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file ruby Pull requests that update Ruby code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant