Releases: wI2L/jsondiff
v0.6.1
This release fixes the behavior of the Equivalent
option for nested arrays.
Changelog
- 4fea2d0 chore: various fixes
- 0a42b43 ci: fix workflow file extension
- ea38423 fix: bound check on patch insert
- 2399596 docs(README): add Github action badge for CI workflow
- c154e66 ci: merge test/lint jobs in a single workflow
- 2f1f3f0 docs(README): update benchmarks results
- 19a2a0a feat: nested array equivalence
- dfdd539 docs(README): remove broken Github Actions badge
- d80a84c docs(README): update playground link
v0.6.0
This release introduces the CompareWithoutMarshal
function, which is similar to the existing Compare
function, but doesn't marshal/unmarshal to/from JSON the given interface values. As such, it expects that the values consists ONLY of primitive Go types, such as those returned by the json.Unmarshal
function.
Changelog
- 9bbbc45 test: small improvements to coverage
- 71ffe13 chore(ci): update goreleaser config file version
- 0f13bba chore(ci): update lint workflow action version
- dc22c55 chore(ci): update release workflow action version
- a8a5843 feat: add function CompareWithoutMarshal
- 053aeb7 chore: retract version v0.5.1
Full Changelog: v0.5.2...v0.6.0
v0.5.2
Changelog
- 5b9121a chore: update gjson module
- e4e08e2 fix: remove impossible condition in apply func
- 91dfcd6 docs(README): remove warning about LCS and Factorize options
Full Changelog: v0.5.1...v0.5.2
v0.5.1
Changelog
- eba17e0 chore(ci): update workflows actions versions
- 7097621 ci: add dependabot file to check Github actions
- d3385d9 fix: factorization with LCS option
- f20729a docs(README): use Github admonitions
- adcd818 test: add examples from the RFC Appendix A
- 076a95c docs(README): add table of contents for Options section
Full Changelog: v0.5.0...v0.5.1
v0.5.0
This release introduces a new experimental option LCS()
(Longest Common Subsequences) as an alternative method for arrays comparison.
New Contributors
- @woostundy made their first contribution in #14
Changelog
- 6ac8ca8 ci: increase code coverage failure threshold
- 95e4faa style: fix linting issues
- 9f65129 style: update comments and table driven tests variable name
- b9ab68b test: replace evanphx/json-patch dependency with custom patch apply method
- e8e9ed7 ci: remove windows-latest from test matrix
- f1e0ad8 ci: update test job to use the go toolchain directly
- 068222c test: ensure patch produce the expected result
- 3c79dd5 docs(README): add documentation for the LCS option
- 80dc0ed test: add more cases for the LCS option
- 121d244 docs: document the LCS-related code
- 0e3c674 ci: refactor Github workflows
- a434103 feat: add LCS (Longest Common Subsequences) based array comparison
- 5303ffa fix: do not default in-place compaction option
- c85fb8c feat: add old value to rationalized operations (#14)
- 0975f4a docs(README): remove references to deprecated functions
Full Changelog: v0.4.0...v0.5.0
v0.4.0
This release focuses on improving the performances of the whole package, and more specifically of the Factorize
and Rationalize
options.
⚠️ Deprecations
The CompareOpts
and CompareJSONOpts
functions are removed. The replacement for these are the Compare
and CompareJSON
functions, which now take a variadic list of Option
as the third argument.
Changelog
- 09a9689 chore: remove bench job from CI workflow
- 750f319 test: improve options coverage
- 3297dd3 refactor: remove Compare(JSON)Opts functions
- 5497a04 feat: add InPlaceCompaction option
- 7130e0c test: improve coverage of side cases
- d148a82 docs(README): update benchmarks results
- 55095c2 refactor: overall performance improvements
- dcc4dfa refactor: simplify JSON values hashing
- 9b8d787 fix: avoid byte slice to string conversion
- 4c182ec refactor: optimize structs alignment
- d28c8f7 refactor: optimize insertion sort
- 3ad7b8c refactor: optimize Rationalize option
- e162604 fix: remove rationalized operations temporary slice
- e1427f2 test: refactor benchmarks by document size
- 354c61a test: split Differ benchmarks with/without reset
- 73540d8 fix: conversion from JSON Pointer to GJSON Path
Full Changelog: v0.3.0...v0.4.0
v0.4.0-alpha.2
This release intoduces the MarshalFunc
and UnmarshalFunc
options, which lets you configure custom JSON marshal/unmarshal functions.
Changelog
- 6aa85d3 docs: remove changelog
- 0794d4a chore(ci): disable caching and upgrade action version
- 214348d docs(README): update benchmarks
- d2ae431 test: improve global coverage
- 29fbcb0 refactor: reduce string concatenations
- cae66b8 feat: add support for json.Number type
- b783ad6 feat: add options MarshalFunc and UnmarshalFunc
- d01e0ea fix: replace deprecated function ioutil.ReadFile
Full Changelog: v0.4.0-alpha.1...v0.4.0-alpha.2
v0.4.0-alpha.1
This release introduces a new experimental option Ignores()
.
Changelog
- 1f8c0bb chore(ci): fix release workflow
- c0f2ef4 feat: add Ignores option
- c23f0e4 chore(ci): bump Go version to 1.20.x
- dbae84c chore(LICENSE): update header
Full Changelog: v0.3.0...v0.4.0-alpha.1
v0.3.0
Changelog
- f912ef0 chore(ci): upgrade all Github actions
- db0a75e fix: operation marshaling with typed nil value
- 5fbf127 test: improve coverage for Operation and Patch types methods
- e80bf39 fix: invalid operation marshaling
- 60beb82 chore: fix linting issues and update dependencies
Full Changelog: v0.2.0...v0.3.0
v0.2.0
This release brings various performance improvements for all options.
The Differ
type is also now exported and provide a Reset
method, to allow reuse of underlying storage.
A ⚾ playground is also now available, if you want to try the package directly in your browser.
Changelog
- 55ad2c4 docs: add badge for playground in README header
- 213ca8c refactor: export Differ type to allow reuse of resources
- c04fcf3 feat: add new Equivalent option
- 291eb7c ci: add go1.18 to tests matrix
- 344b4be docs: update benchmark results with latest improvements
- 7ba8329 perf: various performance improvements for all options
- 5aa8829 test: add benchmark run for differ.diff method only
- b393df1 test: benchmark CompareJSON against Compare
- fdd6214 chore: add goreleaser Github workflow
Full Changelog: v0.1.1...v0.2.0