circe v0.12.0-RC3 Release Notes

Release Date: 2019-08-15 // over 4 years ago
  • ๐Ÿš€ This release only includes changes to circe-generic, circe-generic-extras, and circe-shapes; all other modules are identical to 0.12.0-RC2.

    ๐Ÿ‘€ The biggest change is a contribution from Felix Bruckmeier, who convinced me that it's currently too easy to confuse the derivation methods from circe-generic and circe-generic-extras (see #1220 and #1221 for discussion). This means that if you're currently using any of the deriveX methods in circe-generic-extras, you'll now see deprecation warnings pointing you to their deriveConfiguredX replacements. The old methods will be removed in 0.13.

    ๐Ÿ‘€ I've also decided to sneak in a fix for an issue where derived decoders for case classes with no members accept non-object inputs (see #1166). This has surprised people in the past, and arguably isn't consistent with the behavior of derived decoders for other case classes. Now these decoders (and the decoder for HNil in circe-shapes) will fail on any input that isn't a JSON object (#1223, #1224). While making this change I also fixed a bug that had caused io.circe.generic.extras.deriveCodec not to work for empty case classes.

    I've also added deriveEnumerationCodec and derivedUnwrappedCodec derivation methods to circe-generic-extras for consistency (#1219).