Skip to content

Releases: josephburnett/jd

v2.5.0

Choose a tag to compare

@josephburnett josephburnett released this 23 Feb 17:28

What's Changed

  • v2: use slices instead of golang.org/x/exp/slices by @alexandear in #117
  • Replace deprecated ioutil with os and io by @alexandear in #115
  • Fix Myers diff backtracking off-by-one (#112) by @vnykmshr in #121
  • docs(README): add mise alternate installation documentation by @jylenhof in #111
  • Build artifacts for riscv64 by @ffgan in #106
  • chore(deps): upgrade github.com/go-openapi/jsonpointer to v0.22.4 by @alexandear in #118

New Contributors

Full Changelog: v2.4.0...v2.5.0

v2.4.0

Choose a tag to compare

@josephburnett josephburnett released this 12 Jan 03:26

Full Changelog: v2.3.1...v2.4.0

v2.3.1

Choose a tag to compare

@josephburnett josephburnett released this 28 Dec 04:43

Full Changelog: v2.3.0...v2.3.1

v2.3.0

Choose a tag to compare

@josephburnett josephburnett released this 12 Aug 15:06

PathOptions

This release introduces PathOptions, a powerful new feature that enables precise control over how different parts of your JSON/YAML data are compared. PathOptions allow you to
apply different comparison semantics to specific paths within your data structures, giving you fine-grained control over diff behavior.

Key Features:

  • Targeted comparison options: Apply SET, MULTISET, precision, or setkeys options to specific paths using the syntax {"@":["path","to","target"],"^":[options]}
  • Path isolation: Options only affect their specified paths and don't leak globally, allowing you to mix different comparison semantics in the same diff
  • Enhanced array dispatch: Fixed critical bug where PathOptions with empty paths (root level) weren't being applied correctly for array dispatch
  • Comprehensive documentation: Complete v2 Diff Language guide with new EBNF grammar, PathOption integration examples, and updated CLI help showing flag equivalents
  • Extensive test coverage: Added 24 test cases demonstrating PathOption functionality across various data structures and edge cases

Examples:

Apply SET semantics to specific array while others remain lists

jd -opts='[{"@":["tags"],"^":["SET"]}]' a.json b.json

Multiple PathOptions with different semantics

jd -opts='[{"@":["items"],"^":["SET"]}, {"@":["price"],"^":[{"precision":0.01}]}]' a.json b.json

This release maintains full backward compatibility while adding powerful new capabilities for sophisticated diff control scenarios.

What's Changed

New Contributors

Full Changelog: v2.2.7...v2.3.0

v2.2.7

Choose a tag to compare

@josephburnett josephburnett released this 10 Aug 00:53

Full Changelog: v2.2.6...v2.2.7

v2.2.6

Choose a tag to compare

@josephburnett josephburnett released this 09 Aug 23:38

Full Changelog: v2.2.5...v2.2.6

v2.2.5

Choose a tag to compare

@josephburnett josephburnett released this 09 Aug 03:01

Full Changelog: v2.2.4...v2.2.5

v2.2.4

Choose a tag to compare

@josephburnett josephburnett released this 09 Aug 01:10

Full Changelog: v2.2.3...v2.2.4

v2.2.3

Choose a tag to compare

@josephburnett josephburnett released this 08 May 02:13
Set version 2.2.3

v2.2.2

Choose a tag to compare

@josephburnett josephburnett released this 27 Mar 21:41

Full Changelog: v2.2.1...v2.2.2