3.0.0
This major release improves Chr.Avro’s extensibility, drops .NET Framework targets, and fixes some bugs. Most applications should be able to upgrade from 2.x versions without making any additional changes.
Breaking changes
-
Chr.Avro no longer targets .NET Framework 4.5.2. All class libraries exclusively target .NET Standard 2.0. (Framework 4.6.1 and higher are supported, but 4.7.2 and higher are recommended.)
-
Starting with 3.0.0, Chr.Avro packages are strong named. Accordingly, Chr.Avro.Confluent 3.0.0 requires Confluent.Kafka and Confluent.SchemaRegistry ≥ 1.2.0.
-
Chr.Avro.Json now uses System.Text.Json under the hood (#20). As a result, some interfaces have changed.
INewtonsoftJsonSchemaReader
andINewtonsoftJsonSchemaWriter
have been removed, andJsonElement
has replacedJToken
. -
The case interfaces used by the JSON reader and writer, the schema builder, the type resolver, and the serde builders have been improved (#26). These changes make it easier to create custom cases and improve the usefulness of exceptions.
-
When serializing to the
"decimal"
logical type, numbers will no longer be truncated based on precision (#14). This aligns Chr.Avro with the official Java implementation and reduces the complexity of serde operations. Numbers may still be truncated based on scale.
Bug fixes
-
Prior to 3.0.0,
DateTimeOffset
s created from local times didn’t round trip correctly (#29, h/t @russell-mcdaniel). -
Schemas built for flag enums now consider the enum’s underlying type (#27).
New features
-
Classes that extend
Schema
andLogicalType
have been unsealed to support applications that require custom schema metadata. -
Confluent.Kafka extension methods support
DependentProducerBuilder
(#30, h/t @woodlee and @promontis).