Releases: scalalandio/chimney
Releases · scalalandio/chimney
v0.8.4
Changelog:
- allow providing a custom constructor (#192, fixed in #439)
v0.8.3
v0.8.2
Changelog:
- allow using nested paths in
withFieldConst[Partial]
,withFieldComputed[Partial]
andwithFieldRenamed
(#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/computeAnyVal
's inner value - minor bug fixes
v0.8.1
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
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)
- refreshed documentation (#395, fixed in #396) - see https://chimney.readthedocs.io/en/stable/
-
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
val
s 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 withTransformerConfiguration
(#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)
- Patchers can use
- enabled
-
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
oneof
s in #331, see oneof fields for details - improved support for Java Beans - solved #110 and #175
Transformer
type class was split intoTransformer
andTransformer.AutoDerived
, similarlyPartialTransformer
, 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
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
val
s 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 withTransformerConfiguration
(#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)
- Patchers can use
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
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
oneof
s in #331, see oneof fields for details - improved support for Java Beans - solved #110 and #175
Transformer
type class was split intoTransformer
andTransformer.AutoDerived
, similarlyPartialTransformer
, 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!