Releases: wI2L/jsondiff
v0.7.0
This release adds the Patch.Invert
method.
Changelog
- 1847e60 chore(ci): bump golangci/golangci-lint-action from 7 to 8
- 048e9b8 feat: add patch invert method
- b22ffc0 doc: state that the apply method is not intended for public use
- abf5672 chore: update LICENSE header year
- 0c1ebb2 fix: LCS and Equivalent options combination
- b40a29e ci: update golangci-lint to v2
- e432ee9 chore(ci): bump codecov/codecov-action from 4 to 5 (#30)
Full Changelog: v0.6.1...v0.7.0
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
Full Changelog: v0.6.0...v0.6.1
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