Skip to content

Releases: wI2L/jsondiff

v0.6.1

17 Nov 00:17
v0.6.1
4fea2d0
Compare
Choose a tag to compare

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

17 Jun 15:21
v0.6.0
9bbbc45
Compare
Choose a tag to compare

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

21 Apr 22:01
v0.5.2
5b9121a
Compare
Choose a tag to compare

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

01 Mar 15:55
v0.5.1
057572e
Compare
Choose a tag to compare

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

12 Nov 21:34
v0.5.0
6ac8ca8
Compare
Choose a tag to compare

This release introduces a new experimental option LCS() (Longest Common Subsequences) as an alternative method for arrays comparison.

New Contributors

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

05 Jun 13:41
v0.4.0
09a9689
Compare
Choose a tag to compare

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

02 May 22:51
v0.4.0-alpha.2
6aa85d3
Compare
Choose a tag to compare
v0.4.0-alpha.2 Pre-release
Pre-release

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

27 Apr 22:27
v0.4.0-alpha.1
1f8c0bb
Compare
Choose a tag to compare
v0.4.0-alpha.1 Pre-release
Pre-release

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

20 Oct 22:39
v0.3.0
f912ef0
Compare
Choose a tag to compare

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

04 Apr 16:24
v0.2.0
55ad2c4
Compare
Choose a tag to compare

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