Skip to content

Releases: kettle-rb/json-merge

v1.1.2

19 Feb 12:05
v1.1.2
4c5b432

Choose a tag to compare

1.1.2 - 2026-02-19

  • TAG: v1.1.2
  • COVERAGE: 95.72% -- 604/631 lines in 10 files
  • BRANCH COVERAGE: 77.81% -- 235/302 branches in 10 files
  • 96.63% documented

Added

  • AGENTS.md

Changed

Official Discord 👉️ Live Chat on Discord

Many paths lead to being a sponsor or a backer of this project. Are you on such a path?

OpenCollective Backers OpenCollective Sponsors Sponsor Me on Github Liberapay Goal Progress Donate on PayPal

Buy me a coffee Donate on Polar Donate to my FLOSS efforts at ko-fi.com Donate to my FLOSS efforts using Patreon

v1.1.1

26 Jan 09:33
v1.1.1
78976a8

Choose a tag to compare

1.1.1 - 2026-01-26

  • TAG: v1.1.1
  • COVERAGE: 95.72% -- 604/631 lines in 10 files
  • BRANCH COVERAGE: 77.81% -- 235/302 branches in 10 files
  • 96.63% documented

Added

  • ConflictResolver now applies per-node-type preferences via node_typing.

Changed

  • ast-merge v4.0.4
  • tree_haver v5.0.2

Official Discord 👉️ Live Chat on Discord

Many paths lead to being a sponsor or a backer of this project. Are you on such a path?

OpenCollective Backers OpenCollective Sponsors Sponsor Me on Github Liberapay Goal Progress Donate on PayPal

Buy me a coffee Donate on Polar Donate to my FLOSS efforts at ko-fi.com Donate to my FLOSS efforts using Patreon

v1.1.0

12 Jan 13:56
v1.1.0
9329acf

Choose a tag to compare

1.1.0 - 2026-01-12

  • TAG: v1.1.0
  • COVERAGE: 95.77% -- 589/615 lines in 10 files
  • BRANCH COVERAGE: 78.82% -- 227/288 branches in 10 files
  • 96.63% documented

Added

  • bin/rspec-ffi to run FFI isolated specs
    • Also bin/rake ffi_specs
  • FFI backend isolation for test suite
    • Added bin/rspec-ffi script to run FFI specs in isolation (before MRI backend loads)
    • Added spec/spec_ffi_helper.rb for FFI-specific test configuration
    • Updated Rakefile with ffi_specs and remaining_specs tasks
    • The :test task now runs FFI specs first, then remaining specs

Changed

  • ast-merge v4.0.2
    • Includes Ast::Merge::EmitterBase
  • tree_haver v5.0.1
    • Many Backend improvements
    • Many error handling improvements
  • Simplified dependency_tags.rb: Removed redundant debug code
    • Removed JSON_MERGE_DEBUG env var handling (use TREE_HAVER_DEBUG instead)
    • tree_haver's debug output now respects blocked backends via compute_blocked_backends
    • Avoids accidentally loading MRI backend during FFI-only test runs

Removed

  • Obsolete Tests: Removed 3 obsolete integration tests
    • Tests for add_node_to_result and add_wrapper_to_result methods
    • These methods don't exist in the :batch strategy (ConflictResolver now uses Emitter)
    • Tests were for old :node strategy pattern

Fixed

  • NodeWrapper signature tests: Updated tests to expect :root_object/:root_array for root-level containers
    • Root-level objects now correctly return [:root_object, ...] instead of [:object, ...]
    • Root-level arrays now correctly return [:root_array] instead of [:array, count]
    • Added :parent method stubs to mock node tests for root_level_container? compatibility
  • ConflictResolver#emit_node: Fixed handling of pair nodes with object values
    • When emitting a pair like "features": {...}, the value was treated as raw text
    • Now correctly detects when a pair's value is an object container
    • Recursively emits object structure using emit_nested_object_start/end
    • Treats arrays as atomic values (emits as raw text)
    • Prevents double key emission and invalid JSON output in nested merges
  • ConflictResolver#merge_matched_nodes_to_emitter: Fixed array handling in merge logic
    • Arrays are now treated atomically and replaced based on preference setting
    • Only objects (not arrays) are recursively merged
    • Fixes potential "expected object key, got number" errors when merging arrays
    • Arrays like [1,2,3] are now correctly replaced with [4,5] based on preference

Official Discord 👉️ Live Chat on Discord

Many paths lead to being a sponsor or a backer of this project. Are you on such a path?

OpenCollective Backers OpenCollective Sponsors Sponsor Me on Github Liberapay Goal Progress Donate on PayPal

Buy me a coffee Donate on Polar Donate to my FLOSS efforts at ko-fi.com Donate to my FLOSS efforts using Patreon

v1.0.0

06 Jan 23:52
v1.0.0
5d00208

Choose a tag to compare

1.0.0 - 2026-01-06

  • TAG: v1.0.0
  • COVERAGE: 100.00% -- 194/194 lines in 2 files
  • BRANCH COVERAGE: 84.15% -- 69/82 branches in 2 files
  • 96.67% documented

Added

  • Initial release

Security

Official Discord 👉️ Live Chat on Discord

Many paths lead to being a sponsor or a backer of this project. Are you on such a path?

OpenCollective Backers OpenCollective Sponsors Sponsor Me on Github Liberapay Goal Progress Donate on PayPal

Buy me a coffee Donate on Polar Donate to my FLOSS efforts at ko-fi.com Donate to my FLOSS efforts using Patreon