Skip to content

Releases: scalalandio/chimney

v0.8.4

18 Dec 21:20
Compare
Choose a tag to compare

Changelog:

v0.8.3

20 Nov 11:43
Compare
Choose a tag to compare

Changelog:

  • allow ignoring set methods (#424, fixed in #432)
  • allow using fallback values (defaults if enabled/None's for Options if enabled, Unit) when transforming from/to Tuples (#434, fixed in #436) - thanks to @coreyoconnor for finding and fixing the bug as the first contribution!

v0.8.2

06 Nov 11:25
Compare
Choose a tag to compare

Changelog:

  • allow using nested paths in withFieldConst[Partial], withFieldComputed[Partial] and withFieldRenamed (#358, fixed in #419)
  • allow using nullary methods in DSL to e.g. withFieldRenamed(_.accessorMethod(), _.getFieldName) (#403, fixed in #419)
  • allow using product overrides (withField* methods) to set/compute AnyVal's inner value
  • minor bug fixes

v0.8.1

30 Oct 23:45
Compare
Choose a tag to compare

Changelog:

  • Fix transforming into case class with var fields (#400, fixed in #401), thanks to @hughsimpson for finding and fixing the bug as the first contribution!
  • Fix preventing to use implicits if .into.transform sets any flag (before it prevented it only for override with a value/function) (#413, fixed in #412)
  • Enable Inkuire in Scala 3's Scaladocs searching (#399 , fixed in #402)

v0.8.0

12 Oct 10:07
Compare
Choose a tag to compare

The final and stable release of 0.8.0. The reasons to update (if you are still on 0.7.x or earlier) are:

  • full feature parity between Scala 2.12, 2.13 and 3, JVM, Scala.js and Scala Native - each feature works on each version and platform!
  • better support for Protobufs and Java's build-in types (added Java's enums and collections!, customizations can be used with Java Beans!)
  • added ability to log the whole macro derivation logic!
  • a lot of bugfixes

That and more described in a new, better documentation!

Changelog since 0.7.x:

  • 0.8.0:

    • refreshed documentation (#395, fixed in #396) - see https://chimney.readthedocs.io/en/stable/
      • in case you need to access old docs - Read the Docs host versioned documentation so you can access all previous versions up to 0.5.0
    • add Java's enum support (#393 using work spearheaded by @koiuo) and integration for Java's collections (#391) (fixes #86)
    • add ScalaPB build-in types integartions (#394, fixed in #390)
    • started checking MiMa for backward compatibility (#385, checks since 0.8.0-RC1)
    • fix a bug with parsing type information (#397)
  • 0.8.0-RC1:

    • enabled -Xcheck-macros check on Scala 3 and fixed discovered errors (#346 fixed by #351) - big thanks to @jchyb!
    • re-enabled -Xfatal-warnings (fixed in #373)
    • re-enabled compilation error message format check on Scala 3 (#354) - in 0.8.0-M1 error messages were present but there were slight differences between Scala 2 and 3, now errors message format are aligned: format of type printing and names of vals generated inside macro are consistent between Scala versions
    • allow searching for vals/lazy vals/defs inheritend for parent classes/traits (#144 fixed by #374 )
    • in order to limit amount of stable releases with breaking changes (0.8.0-M1 already had to introduce such changes, therfore 0.7.x -> 0.8.0 is already such a release, but we want to avoid the need to release 0.9.0 immediatelly after) some planned changes (which broke binary compatibility but usually NOT source compatibility) were already added to this release
      • Patchers can use PatcherConfiguration the same way as Transformers with TransformerConfiguration (#190 fixed by #355)
      • since nested paths in withField* methods are planned necessary changes in API to make it possible were made (#377 unblocking #358 in the future)
      • an alternative to import dsl.* was introduced allowing users to use only semiautomatic versioning (#166 fixed by #357)
  • 0.8.0-M1:

    • major refactor-rewrite to enable further library development in #325
    • added initial Scala 3 support - solved #201 in #325 - great thanks to @jchyb whose continuous help us removing one blocker after another, without him this release would come out much, much later!
      • detailed list of related tasks is available at scala-3 milestone
      • this is a milestone release precisely because due to the rewrites - all feedback is welcome!
    • hid internal helpers from polluting the DSL in #334
    • added ability to preview macros and log the derivation logic in #317 - see debugging macros for details
    • improved support for Protobuf oneofs in #331, see oneof fields for details
    • improved support for Java Beans - solved #110 and #175
    • Transformer type class was split into Transformer and Transformer.AutoDerived, similarly PartialTransformer, see migration-to-0.8 to read how it could affect you
    • default values (when enabled) are no longer used as fallback if there is field from which value can be converted but transformation cannot be resolved - solved #200
    • locally defined implicits are no longet ignored in some cases - solved #207
    • removed deprecated features: lifter transformers and unsafeGet, see migrating from lifted if you haven't done it yet
    • added MiMa checks to sbt configuration - in #329 solving #252 thanks to @RayanRal!

Greatest thanks to @jchyb for helping us again unblock the works on the 0.8.0, his consultations were critical.

v0.8.0-RC1

15 Sep 12:46
Compare
Choose a tag to compare
v0.8.0-RC1 Pre-release
Pre-release

Changelog:

  • enabled -Xcheck-macros check on Scala 3 and fixed discovered errors (#346 fixed by #351) - big thanks to @jchyb!
  • re-enabled -Xfatal-warnings (fixed in #373)
  • re-enabled compilation error message format check on Scala 3 (#354) - in 0.8.0-M1 error messages were present but there were slight differences between Scala 2 and 3, now errors message format are aligned: format of type printing and names of vals generated inside macro are consistent between Scala versions
  • allow searching for vals/lazy vals/defs inheritend for parent classes/traits (#144 fixed by #374 )
  • in order to limit amount of stable releases with breaking changes (0.8.0-M1 already had to introduce such changes, therfore 0.7.x -> 0.8.0 is already such a release, but we want to avoid the need to release 0.9.0 immediatelly after) some planned changes (which broke binary compatibility but usually NOT source compatibility) were already added to this release
    • Patchers can use PatcherConfiguration the same way as Transformers with TransformerConfiguration (#190 fixed by #355)
    • since nested paths in withField* methods are planned necessary changes in API to make it possible were made (#377 unblocking #358 in the future)
    • an alternative to import dsl.* was introduced allowing users to use only semiautomatic versioning (#166 fixed by #357)

This release closes all the work intended for 0.8.0 release. Unless any serious bugs are found in the fear future final 0.8.0 will be released. Adding new features and fixing bugs found in much later will be done one future 0.8.x versions.

Great thanks to @jchyb for helping us again unblock the works on the 0.8.0, his consultations were critical for this release.

v0.8.0-M1

03 Aug 21:36
Compare
Choose a tag to compare
v0.8.0-M1 Pre-release
Pre-release

Change log:

  • major refactor-rewrite to enable further library development in #325
  • added initial Scala 3 support - solved #201 in #325 - great thanks to @jchyb whose continuous help us removing one blocker after another, without him this release would come out much, much later!
    • detailed list of related tasks is available at scala-3 milestone
    • this is a milestone release precisely because due to the rewrites - all feedback is welcome!
  • hid internal helpers from polluting the DSL in #334
  • added ability to preview macros and log the derivation logic in #317 - see debugging macros for details
  • improved support for Protobuf oneofs in #331, see oneof fields for details
  • improved support for Java Beans - solved #110 and #175
  • Transformer type class was split into Transformer and Transformer.AutoDerived, similarly PartialTransformer, see migration-to-0.8 to read how it could affect you
  • default values (when enabled) are no longer used as fallback if there is field from which value can be converted but transformation cannot be resolved - solved #200
  • locally defined implicits are no longet ignored in some cases - solved #207
  • removed deprecated features: lifter transformers and unsafeGet, see migrating from lifted if you haven't done it yet
  • added MiMa checks to sbt configuration - in #329 solving #252 thanks to @RayanRal!

v0.7.5

18 May 14:59
fa13567
Compare
Choose a tag to compare

Change log:

  • Fix passing failFast flags to implicit partial transformers (#319)

v0.7.4

20 Apr 21:54
4f85ada
Compare
Choose a tag to compare

Change log:

  • Fix transformation between value classes and case classes (#298)

v0.7.3

16 Apr 15:32
Compare
Choose a tag to compare

Change log:

  • Proper support for generic value classes (fix issue #291)