circe v0.10.0 Release Notes
Release Date: 2018-09-24 // over 5 years ago-
๐ This release drops Scala 2.10 support and adds artifacts for 2.13.0-M4. It also updates many dependency versions, including Cats (from 1.0.1 in 0.9.x to 1.4.0), Scala.js (from 0.6.22 to 0.6.24), refined (from 0.8.7 to 0.9.2), and jawn (from 0.11.1 to 0.13.0).
Java 8 instances
๐ The encoder and decoder instances for all
java.time
types have been moved into the circe-core JVM artifacts for Scala 2.12 and 2.13.0-M4 (since both of these Scala versions require Java 8, anyway). The circe-java8 artifacts are still published for all Scala versions and platforms, since you'll still need them if you're using Scala.js or Scala 2.11 and want these instances. Thanks to Guillaume Poirier for helping with this effort, and to Felix Bruckmeier for improving the failure messages for these instances.Other additions
๐ This release introduces encoder and decoder instances for Cats's new
Chain
andNonEmptyChain
data structures, as well as instances forNonEmptyMap
andNonEmptySet
(all thanks to Diogo Castro). It also introduces a newensure
method forDecoder
(thanks, @saint1991).๐ Bug fixes
- Encoders for
SortedMap
now preserve iteration order (reported by Akhtyam Sakaev). - ๐ Optional top-level decoders now parse JSON null values as
None
(by Hugh Giddens). decodeField
works as expected on optional members (by Jonas Adler).- ๐ง
encodeOnly
anddecodeOnly
are now supported in@ConfiguredJsonCodec
(by Espen Wiborg). - The
io.circe.export.Exported
prioritization helper is now contravariant.
Optimizations
- ๐จ Printing is now much faster for escaped characters (thanks, Andriy Plokhotnyuk).
- Name transformations in circe-generic-extras are faster (by vndzzz).
- Instantiating
JsonObject
values is just a bit lighter.
Known issues
๐ The Macro Paradise compiler plugin is not currently available for 2.13.0-M4, which means that
@JsonCodec
and the related annotations in circe-generic-extras will not work on 2.13. When (or if) the plugin is published for 2.13.0-M4 it should work as expected with this release. (See Seth Tisue's note here.)Future plans
๐ We'll probably publish 0.10.x releases for Scala 2.13.0-M5 if Cats publishes 1.4.x releases for it, but Scala.js 0.6.25+ (which is currently blocked by failures on 2.13.0-M4) will wait for 0.11.0, which is probably only a couple of months away.
- Encoders for