Releases: josephburnett/jd
v2.5.0
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
- @alexandear made their first contribution in #117
- @vnykmshr made their first contribution in #121
- @jylenhof made their first contribution in #111
- @ffgan made their first contribution in #106
Full Changelog: v2.4.0...v2.5.0
v2.4.0
Full Changelog: v2.3.1...v2.4.0
v2.3.1
Full Changelog: v2.3.0...v2.3.1
v2.3.0
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
- Fix unicode color diff. by @roberthoenig in #93
- add missing closing parenthesis by @mohammadrezaataeii in #98
New Contributors
- @mohammadrezaataeii made their first contribution in #98
Full Changelog: v2.2.7...v2.3.0
v2.2.7
Full Changelog: v2.2.6...v2.2.7
v2.2.6
Full Changelog: v2.2.5...v2.2.6
v2.2.5
Full Changelog: v2.2.4...v2.2.5
v2.2.4
Full Changelog: v2.2.3...v2.2.4
v2.2.3
Set version 2.2.3
v2.2.2
Full Changelog: v2.2.1...v2.2.2