circe v0.12.3 Release Notes

Release Date: 2019-10-22 // over 4 years ago
  • ๐Ÿš€ This releases undoes a change in some java.time encodings between 0.12.1 and 0.12.2 (reported by @Bunyod in #1292). Before this change in 0.12.2, the *DateTime encoders included seconds, even when the value was zero:

    scala\> import java.time.LocalDateTime, io.circe.syntax.\_import java.time.LocalDateTimeimport io.circe.syntax.\_scala\> val t = LocalDateTime.parse("2018-08-13T14:20:00") t: java.time.LocalDateTime = 2018-08-13T14:20scala\> t.asJson res0: io.circe.Json = "2018-08-13T14:20:00"
    

    In 0.12.2 this changed:

    scala\> t.asJson res0: io.circe.Json = "2018-08-13T14:20"
    

    While this new encoding isn't incorrect, it's less consistent and causes problems for some users, so Andriy Plokhotnyuk has reinstated the previous encoding.

    ๐Ÿš€ This release also includes a few new deprecations (#1302). Georgy Davityan noted that since we no longer support Scala 2.10, we can make our implicit value class fields private (#1291). While there's no reason these fields should ever be used outside the implicit class definition, I've provided deprecated methods replacing them to maintain binary compatibility until the next breaking release.