Skip to content

Release v2.2.4

Choose a tag to compare

@github-actions github-actions released this 13 Jul 15:45
· 508 commits to main since this release
f39e2ab

Release v2.2.4

Changes

  • Merge pull request #73 from txjmb/fix/vm-math-undefined (f39e2ab)
  • fix(vm): propagate undefined through VM math builtins (parity with tree-walker and jsonata-js) (ccf0203)
  • Merge pull request #72 from txjmb/fix/tree-walker-math-on-undefined (1da6ce6)
  • Merge pull request #71 from txjmb/feature/lazy-python-views (73e6f9d)
  • fix(evaluator): propagate undefined through tree-walker math builtins (c679fbb)
  • chore(lint): satisfy CI gates — PyConversionError arms in Rust test suites, ruff format/lint fixes (5127720)
  • Merge pull request #70 from txjmb/dependabot/cargo/rust-dependencies-d5b263d7fb (1c519d8)
  • test: add JSONATAPY_FORCE_TREE_WALKER toggle; fix spec's tree-walker test mechanism (b3a5181)
  • fix(lazy): complete conversion-error contract for $distinct and multi-arg by-reference dispatch (c0a3c66)
  • fix(lazy): normalize lazy arg in builtin-by-reference dispatch; zero-cost equality guards (31fc5a5)
  • fix(lazy): propagate conversion errors through equality/concat/in; doc + gate cleanups (d45f3aa)
  • chore: bump version to 2.2.4; changelog and docs for lazy Python views (d3b2e4b)
  • chore(deps): bump the rust-dependencies group with 2 updates (8703a8b)
  • perf(lazy): cache only heap-typed field conversions; revise perf gate to measured targets (cab8942)
  • test(lazy): add performance gate for spec targets (120daa4)
  • style: rustfmt lazy-machinery code (2225c4a)
  • feat(lazy): evaluate(dict) converts lazily by default — results may alias input dicts (matches jsonata-js) (13771cc)
  • test(lazy): pass-through identity, int fidelity, mutation visibility, lazy TypeError semantics (f561b9e)
  • test(lazy): full reference suite green in lazy mode on both engines (efbbe8c)
  • feat(lazy): object consumers — builtin dispatch normalization, sort, transform, equality, truthiness (10a494e)
  • feat(lazy): tree-walker field access on lazy dicts (8 sites) (852c515)
  • test(lazy): missing-field test exercises the VM lazy arm (was vacuous via [0] fallback) (5f2ab5f)
  • feat(lazy): VM field access on lazy dicts + _evaluate_lazy test hook (db13e1d)
  • feat(lazy): LazyPyDict core, JValue variant, and boundary arms (unreachable until flip) (81dfc5e)
  • docs(specs): correct stale reference-suite counts (suite is 1682 tests) (270f39c)
  • docs(plans): record measured suite baselines (1682 tests; tree-walker 1676/1682 pre-existing) (4724be0)
  • test: add JSONATAPY_FORCE_TREE_WALKER toggle; fix spec's tree-walker test mechanism (1221553)
  • docs: version bump is 2.2.4 point release — versioning tracks jsonata-js (9d04f3a)
  • docs(plans): implementation plan for lazy Python views (10 TDD tasks) (ed15d46)
  • docs(specs): design lazy Python views (LazyPyDict) for the evaluate(dict) boundary (36f7561)
  • docs(benchmarks): update performance.md for v2.2.3 (d1ea506)

Test Suite Compatibility

See the README for the current
reference-suite pass count -- this changelog no longer hardcodes a number here, since a
stale hardcoded count is exactly the kind of bug this project has previously shipped
and had to correct.

Installation

pip install jsonatapy==2.2.4

Verification

import jsonatapy
print(jsonatapy.__version__)  # Should print: 2.2.4