Skip to content

Releases: softwaremill/diffx

v0.5.2

23 Jun 22:22
Compare
Choose a tag to compare
  • add munit integration
  • rewrite DiffResult classes in order to allow displaying fields which were ignored even if the top level output was identical. Checking whether the result was identical should now be done only using .isIdentical method.

v0.5.1

22 Jun 19:42
Compare
Choose a tag to compare
  • rewrite documentation and migrate to RTD
  • improve ergonomics of ObjectMatcher (by, byKey, byValue)
  • unify ObjectMatcher across all collections
  • allow for replacement of arbitrary nested diff instances
  • rewrite ignoring in terms of replacement
  • allow for replacement of ObjectMatcher

Diffx 0.4.0

30 Dec 08:46
Compare
Choose a tag to compare

Finally diffx has semi-auto derivation which will prevent you from accidentally using auto derivation which can be quite heavy for the compiler.

With the derivation refactor comes a slight improvement to Derived mechanism. Diff is again a top level derived typeclass, which means that there is no need in wrapping an instance of it with Derived when overriding already existed instance. However, the Derived part isn't gone, as it is still useful when modifying summoned typeclass.

Migration guide

If you want to keep using auto derivation, you will have to add either import com.softwaremill.diffx.generic.auto._ or extend DiffDerivation .
Semi-auto derivation is now enabled by default, so there are no additional steps necessary, apart from providing the missing instances ;)

Known issues

Due to the changes in derivation mechanism one issue come up and remains unresolved. Currently, it will be impossible to modify an instance of diffx for given base trait and return it to the implicit scope. See softwaremill/magnolia#277 for details.

Limitations

It is not possible to summon Derived[Diff[Set[T]]] (or any other instance which comes from library) as now the generic derivation of derived type classes calls magnolia directly. However it should be possible to replace all such calls with direct calls for given instances e.g. diffForSet[T,Set]