circe 0.11.0
This release updates the Scala 2.13.0 milestone from M4 to M5, along with several dependency updates, including Cats (1.4 to 1.5), Jawn (0.13 to 0.14, now published under org.typelevel
), Scala.js (from 0.6.24 to 0.6.26), and scala-java-time (for circe-java8 on Scala.js only; from 2.0.0-M13 to 2.0.0-RC2).
There have been a few breaking improvements since 0.10.1:
- New
ensure
andvalidate
methods onDecoder
for failing with multiple errors (thanks @ylaurent and @pfcoperez; see #1025 and #1020). - New
java.time
instances, includingMonthDay
,Year
, andZoneOffset
(thanks @plokhotnyuk and @LukaJCB; see #979, #980, and #1000). - New
KeyEncoder
powers for the old:=
operator (thanks @tejinders; #986). - Trait-ification of
KeyEncoder
andKeyDecoder
(thanks @andwxh; #1032).
There are also several circe-generic-extras-specific changes:
- No more
AnyVal
constraint on the "unwrapped" derivers (thanks @nightscape; see #1023 and #1036). - Performance optimizations for member and constructor name transformations (thanks @waiter-melon; #940).
- More consistent use of default values for optional members (thanks @exoego and @ryamaguchi0220; see #878, #994, and #1037).
These changes should not affect most users, although it's worth taking a look at the newly-clarified semantics of Decoder#ensure
if you use it in the context of error accumulation, and please be sure to read #994 if you use default values with configured decoders in circe-generic-extras, since the behavior of some instances has changed.
This release also includes numerous updates to the build (many taken care of by @scala-steward), and introduces automated code formatting by scalafmt.
Thanks to all contributors, including bug reporters and question askers!