Skip to content

build(deps): bump multi_json from 1.19.1 to 1.21.0#1318

Closed
dependabot[bot] wants to merge 1 commit intomasterfrom
dependabot/bundler/multi_json-1.21.0
Closed

build(deps): bump multi_json from 1.19.1 to 1.21.0#1318
dependabot[bot] wants to merge 1 commit intomasterfrom
dependabot/bundler/multi_json-1.21.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github May 4, 2026

Bumps multi_json from 1.19.1 to 1.21.0.

Release notes

Sourced from multi_json's releases.

v1.21.0

Full Changelog: sferik/multi_json@v1.20.1...v1.21.0

Changelog

Sourced from multi_json's changelog.

[1.21.0]

Every deprecation introduced here will be removed in 2.0.0. Upgrade to 1.21.0, run your app or test suite with ruby -W:deprecated to surface the warnings, migrate each call site to the new canonical names, then pin ~> 2.0 once 2.0.0 ships.

Added

  • Rename the MultiJson constant to MultiJSON (all-caps) to match the project name, Ruby stdlib JSON, and the all-caps treatment of the JSON acronym across other languages. The legacy MultiJson constant continues to work as a thin delegator via method_missing and const_missing, so MultiJson.parse(...), MultiJson::Adapters::Oj, and rescue MultiJson::ParseError all resolve to their MultiJSON counterparts.
  • Add MultiJSON.parse and MultiJSON.generate as the new canonical names for the primary parse and generate methods, matching Ruby stdlib JSON.parse / JSON.generate, the JSON spec (RFC 8259), and sister library MultiXml.
  • Add MultiJSON.parse_options / MultiJSON.parse_options= and MultiJSON.generate_options / MultiJSON.generate_options= as the new canonical option setters.
  • Accept symbolize_names: as the canonical option name matching Ruby stdlib's JSON.parse(str, symbolize_names: true). The deprecated symbolize_keys: option continues to work and emits a one-time warning when passed at any of the three option layers (call-site, MultiJSON.parse_options=, adapter defaults :load).
  • Replace the two-adapter Benchmark.ips smoke test in benchmark.rb with a full adapter comparison matrix (parse + dump across nine workloads) and promote it to a top-level rake benchmark task. A new --verify-preference flag asserts that MultiJSON::AdapterSelector::ADAPTERS matches the observed throughput ranking, with a 10% tolerance for adjacent ties; CI runs it on every push so the ordering can't silently drift.

Changed

  • Reorder MultiJSON::AdapterSelector::ADAPTERS so the JSON gem is tried before fast_jsonparser/oj/yajl on MRI and TruffleRuby, matching the throughput ranking in the bundled benchmark suite on Ruby 3.4+. The hash is split per platform so JRuby still prefers jr_jackson. Affects auto-detection only when more than one of those adapters is loaded; explicitly selecting an adapter with MultiJSON.use(:adapter) is unchanged.

Deprecated

  • The MultiJson constant in favor of MultiJSON.
  • MultiJSON.load in favor of MultiJSON.parse.
  • MultiJSON.dump in favor of MultiJSON.generate.
  • MultiJSON.load_options / MultiJSON.load_options= in favor of MultiJSON.parse_options / MultiJSON.parse_options=.
  • MultiJSON.dump_options / MultiJSON.dump_options= in favor of MultiJSON.generate_options / MultiJSON.generate_options=.
  • The :symbolize_keys parse option in favor of :symbolize_names.

All deprecated names continue to work and emit a one-time warning on first use. Warnings are tagged with Ruby's :deprecated category, so noisy apps can silence the whole set with Warning[:deprecated] = false and deprecation-aware tooling (ruby -W:deprecated, CI linters) picks them up. The old names will be removed in 2.0.

[1.20.1]

Fixed

  • Fix JsonGem#load raising ParseError on ASCII-8BIT strings that contain valid UTF-8 bytes (#64). Ruby HTTP clients tag response bodies as ASCII-8BIT by default; the 1.20.0 change from force_encoding to encode broke the dominant real-world case by trying to transcode each byte individually. Switch back to force_encoding followed by a valid_encoding? guard so genuinely invalid byte sequences still surface as ParseError.

Added

  • Validate custom adapters during MultiJson.use and MultiJson.load/dump with an :adapter option, raising MultiJson::AdapterError immediately if the adapter does not respond to .load, .dump, or define a ParseError constant.
  • Validate OptionsCache.max_cache_size= to reject nil, zero, negative, and non-integer values with a clear ArgumentError.
  • Expand the benchmark suite (benchmark.rb) into a full adapter comparison matrix covering load, dump, and round-trip across small, medium, and large payloads in both object-heavy and array-heavy shapes.

[1.20.0]

Added

  • Surface parse error locations as error.line and error.column on MultiJson::ParseError, extracted from the underlying adapter's message for adapters that include one (Oj, the json gem).
  • Make MultiJson::OptionsCache.max_cache_size configurable so applications that generate many distinct option hashes can raise the cache ceiling at runtime.
  • Add YARD documentation for the Adapters module and ParseError constants.
  • Document public API methods as @api public so load, dump, use, with_adapter, current_adapter, adapter, load_options, and dump_options appear in generated docs.
  • Type-check the Yajl, JrJackson, and Gson adapter wrappers under Steep, with stubbed RBS sigs for the underlying libraries living in sig/external_libraries.rbs.
  • Add Ruby 4.0 to the CI matrix.
  • Add workflow badges for linter, mutant, steep, and docs.

... (truncated)

Commits
  • 8339719 Version 1.21.0
  • 2217775 Tag deprecation warnings as :deprecated and document the bridge in the README
  • 6f6b756 Reorder ADAPTERS by benchmark throughput and verify the order in CI
  • 72d3ea1 Add adapter benchmark suite as a rake task
  • 112d0af Mirror stdlib JSON in the public API: MultiJSON, parse/generate, symbolize_names
  • ddc802a Rewrite CHANGELOG in Keep a Changelog format
  • d4c6fe1 Whitelist gemspec files instead of globbing all .md files
  • c50c595 Fix flaky symbol-count tests that fail when GC reclaims symbols
  • 8eaefa6 Version 1.20.1
  • 95dfc95 Fix JsonGem#load raising on ASCII-8BIT strings with valid UTF-8 bytes
  • Additional commits viewable in compare view

Dependabot compatibility score

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)

Bumps [multi_json](https://github.com/sferik/multi_json) from 1.19.1 to 1.21.0.
- [Release notes](https://github.com/sferik/multi_json/releases)
- [Changelog](https://github.com/sferik/multi_json/blob/main/CHANGELOG.md)
- [Commits](sferik/multi_json@v1.19.1...v1.21.0)

---
updated-dependencies:
- dependency-name: multi_json
  dependency-version: 1.21.0
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies ruby Pull requests that update Ruby code labels May 4, 2026
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github May 5, 2026

Superseded by #1319.

@dependabot dependabot Bot closed this May 5, 2026
@dependabot dependabot Bot deleted the dependabot/bundler/multi_json-1.21.0 branch May 5, 2026 03:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies ruby Pull requests that update Ruby code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants