diff --git a/CHANGELOG.md b/CHANGELOG.md index aa42ee5e6..a9f40f592 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,8 +3,9 @@ ## Enhancements - References librdkafka.redist 2.4.0. Refer to the [librdkafka v2.4.0 release notes](https://github.com/confluentinc/librdkafka/releases/tag/v2.4.0) for more information. -- [KIP-848 EA](https://cwiki.apache.org/confluence/display/KAFKA/KIP-848%3A+The+Next+Generation+of+the+Consumer+Rebalance+Protocol): - Integration tests running with the new consumer group protocol. The feature is an Early Access: not production ready, still not supported (#2212). +- [KIP-848 EA](https://cwiki.apache.org/confluence/display/KAFKA/KIP-848%3A+The+Next+Generation+of+the+Consumer+Rebalance+Protocol): Added KIP-848 based new consumer group rebalance protocol. + Integration tests running with the new consumer group protocol. The feature is an **Early Access**: not production ready. Please refer + [detailed doc](https://github.com/confluentinc/librdkafka/blob/master/INTRODUCTION.md#next-generation-of-the-consumer-group-protocol-kip-848) for more information. (#2212). # 2.3.0 @@ -15,7 +16,7 @@ - [KIP-430](https://cwiki.apache.org/confluence/display/KAFKA/KIP-430+-+Return+Authorized+Operations+in+Describe+Responses): Return authorized operations in describe responses (#2021, @jainruchir). - [KIP-396](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=97551484): Added support for ListOffsets Admin API (#2086). -- Add `Rack` to the `Node` type, so AdminAPI calls can expose racks for brokers (currently, all Describe +- Add `Rack` to the `Node` type, so AdminAPI calls can expose racks for brokers (currently, all Describe Responses) (#2021, @jainruchir). - Added support for external JSON schemas in `JsonSerializer` and `JsonDeserializer` (#2042). - Added compatibility methods to CachedSchemaRegistryClient ([ISBronny](https://github.com/ISBronny), #2097). @@ -98,7 +99,7 @@ OpenSSL 3.0.x upgrade in librdkafka requires a major version bump, as some legac **Note: There were no 2.0.0 and 2.0.1 releases.** -# 1.9.3 +# 1.9.3 ## Enhancements @@ -106,7 +107,7 @@ OpenSSL 3.0.x upgrade in librdkafka requires a major version bump, as some legac ## Fixes -- Schema Registry authentication now works with passwords that contain the ':' character ([luismedel](https://github.com/luismedel)). +- Schema Registry authentication now works with passwords that contain the ':' character ([luismedel](https://github.com/luismedel)). - Added missing librdkafka internal and broker error codes to the `ErrorCode` enum. @@ -169,7 +170,7 @@ for a complete list of changes, enhancements, fixes and upgrade considerations. # 1.8.1 -## Enhancements +## Enhancements - Updated `NJsonSchema` to v10.5.2. @@ -318,7 +319,7 @@ Version 1.6.0 and 1.6.1 were not released. ## Changes - Some internal improvements to the `Consmer` (thanks to [@andypook](https://github.com/AndyPook)). -- BREAKING CHANGE: `net452` is no longer a target framework of `Confluent.SchemaRegistry` or `Confluent.SchemaRegistry.Serdes` due to the switch to the official Apache Avro package which only targets `netstandard2.0`. +- BREAKING CHANGE: `net452` is no longer a target framework of `Confluent.SchemaRegistry` or `Confluent.SchemaRegistry.Serdes` due to the switch to the official Apache Avro package which only targets `netstandard2.0`. - Marked properties on `ConsumeResult` that simply delegate to the corresponding properties on `ConsumeResult.Message` as obsolete. ## Fixes @@ -360,7 +361,7 @@ Version 1.6.0 and 1.6.1 were not released. ## Bugs **WARNING: There is an issue with SASL GSSAPI authentication on Windows with this release. This is resolved in v1.2.1.** - + ## Enhancements - References librdkafka v1.2.0. Refer to the [release notes](https://github.com/edenhill/librdkafka/releases/tag/v1.2.0) for more information. Headline feature is consumer side support for transactions. @@ -424,7 +425,7 @@ Feature highlights: - Non-blocking support for async serializers. - Very flexible: - e.g. can be easily extended to support header serialization. - - Capability to specify custom timestamps when producing messages. + - Capability to specify custom timestamps when producing messages. - Message persistence status support. - Renamed ProduceAsync variants with a callback to Produce. - Consumer improvements: @@ -541,7 +542,7 @@ Feature highlights: - Revamped producer and consumer serialization functionality. - There are now two types of serializer and deserializer: `ISerializer` / `IAsyncSerializer` and `IDeserializer` / `IAsyncDeserializer`. - - `ISerializer`/`IDeserializer` are appropriate for most use cases. + - `ISerializer`/`IDeserializer` are appropriate for most use cases. - `IAsyncSerializer`/`IAsyncDeserializer` are async friendly, but less performant (they return `Task`s). - Changed the name of `Confluent.Kafka.Avro` to `Confluent.SchemaRegistry.Serdes` (Schema Registry may support other serialization formats in the future). - Added an example demonstrating working with protobuf serialized data. @@ -557,7 +558,7 @@ Feature highlights: - Notable features: idempotent producer, sparse connections, KIP-62 (max.poll.interval.ms). - Note: End of partition notification is now disabled by default (enable using the `EnablePartitionEof` config property). - Removed the `Consumer.OnPartitionEOF` event in favor notifying of partition eof via `ConsumeResult.IsPartitionEOF`. -- Removed `ErrorEvent` class and added `IsFatal` to `Error` class. +- Removed `ErrorEvent` class and added `IsFatal` to `Error` class. - The `IsFatal` flag is now set appropriately for all errors (previously it was always set to `false`). - Added `PersistenceStatus` property to `DeliveryResult`, which provides information on the persitence status of the message. @@ -595,7 +596,7 @@ Feature highlights: - Producers can utilize the underlying librdkafka handle from other Producers (replaces the 0.11.x `GetSerializingProducer` method on the `Producer` class). - `AdminClient` can utilize the underlying librdkafka handle from other `AdminClient`s, `Producer`s or `Consumer`s. - `IDeserializer` now exposes message data via `ReadOnlySpan`, directly referencing librdkafka allocated memory. This results in a considerable (up to 2x) performance increase and reduced memory. -- Most blocking operations now accept a `CancellationToken` parameter. +- Most blocking operations now accept a `CancellationToken` parameter. - TODO: in some cases there is no backing implementation yet. - .NET Specific configuration parameters are all specified/documented in the `ConfigPropertyNames` class. @@ -621,7 +622,7 @@ Feature highlights: - `Commit` errors are reported via an exception and method return values have correspondingly changed. - `ListGroups`, `ListGroup`, `GetWatermarkOffsets`, `QueryWatermarkOffsets`, and `GetMetadata` have been removed from `Producer` and `Consumer` and exposed only via `AdminClient`. - Added `Consumer.Close`. -- Various methods that formerly returned `TopicPartitionOffsetError` / `TopicPartitionError` now return `TopicPartitionOffset` / `TopicPartition` and throw an exception in +- Various methods that formerly returned `TopicPartitionOffsetError` / `TopicPartitionError` now return `TopicPartitionOffset` / `TopicPartition` and throw an exception in case of error (with a `Result` property of type `TopicPartitionOffsetError` / `TopicPartitionError`). diff --git a/README.md b/README.md index 67c8daff9..9b364613e 100644 --- a/README.md +++ b/README.md @@ -43,13 +43,13 @@ confluent-kafka-dotnet is distributed via NuGet. We provide five packages: To install Confluent.Kafka from within Visual Studio, search for Confluent.Kafka in the NuGet Package Manager UI, or run the following command in the Package Manager Console: ``` -Install-Package Confluent.Kafka -Version 2.3.0 +Install-Package Confluent.Kafka -Version 2.4.0 ``` To add a reference to a dotnet core project, execute the following at the command line: ``` -dotnet add package -v 2.3.0 Confluent.Kafka +dotnet add package -v 2.4.0 Confluent.Kafka ``` Note: `Confluent.Kafka` depends on the `librdkafka.redist` package which provides a number of different builds of `librdkafka` that are compatible with [common platforms](https://github.com/edenhill/librdkafka/wiki/librdkafka.redist-NuGet-package-runtime-libraries). If you are on one of these platforms this will all work seamlessly (and you don't need to explicitly reference `librdkafka.redist`). If you are on a different platform, you may need to [build librdkafka](https://github.com/edenhill/librdkafka#building) manually (or acquire it via other means) and load it using the [Library.Load](https://docs.confluent.io/current/clients/confluent-kafka-dotnet/api/Confluent.Kafka.Library.html#Confluent_Kafka_Library_Load_System_String_) method. diff --git a/examples/AdminClient/AdminClient.csproj b/examples/AdminClient/AdminClient.csproj index 48edb835b..1437d5e1a 100755 --- a/examples/AdminClient/AdminClient.csproj +++ b/examples/AdminClient/AdminClient.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/AvroBlogExamples/AvroBlogExamples.csproj b/examples/AvroBlogExamples/AvroBlogExamples.csproj index 44cc31646..d2b1c237f 100644 --- a/examples/AvroBlogExamples/AvroBlogExamples.csproj +++ b/examples/AvroBlogExamples/AvroBlogExamples.csproj @@ -8,7 +8,7 @@ - + diff --git a/examples/AvroGeneric/AvroGeneric.csproj b/examples/AvroGeneric/AvroGeneric.csproj index e9a165b28..fc2ff7304 100644 --- a/examples/AvroGeneric/AvroGeneric.csproj +++ b/examples/AvroGeneric/AvroGeneric.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/AvroSpecific/AvroSpecific.csproj b/examples/AvroSpecific/AvroSpecific.csproj index 8793d9365..e2c9011a8 100644 --- a/examples/AvroSpecific/AvroSpecific.csproj +++ b/examples/AvroSpecific/AvroSpecific.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/Configuration/Configuration.csproj b/examples/Configuration/Configuration.csproj index 264b0033d..fd06e24d0 100644 --- a/examples/Configuration/Configuration.csproj +++ b/examples/Configuration/Configuration.csproj @@ -8,7 +8,7 @@ - + diff --git a/examples/ConfluentCloud/ConfluentCloud.csproj b/examples/ConfluentCloud/ConfluentCloud.csproj index 599d40a58..b91658ce6 100644 --- a/examples/ConfluentCloud/ConfluentCloud.csproj +++ b/examples/ConfluentCloud/ConfluentCloud.csproj @@ -7,7 +7,7 @@ - + diff --git a/examples/Consumer/Consumer.csproj b/examples/Consumer/Consumer.csproj index 213073690..daf990600 100755 --- a/examples/Consumer/Consumer.csproj +++ b/examples/Consumer/Consumer.csproj @@ -8,7 +8,7 @@ - + diff --git a/examples/ExactlyOnce/ExactlyOnce.csproj b/examples/ExactlyOnce/ExactlyOnce.csproj index 515d0d3d4..16a63cb07 100644 --- a/examples/ExactlyOnce/ExactlyOnce.csproj +++ b/examples/ExactlyOnce/ExactlyOnce.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/ExactlyOnceOldBroker/ExactlyOnceOldBroker.csproj b/examples/ExactlyOnceOldBroker/ExactlyOnceOldBroker.csproj index 3bfc5187f..93ead7a5c 100644 --- a/examples/ExactlyOnceOldBroker/ExactlyOnceOldBroker.csproj +++ b/examples/ExactlyOnceOldBroker/ExactlyOnceOldBroker.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/JsonSerialization/JsonSerialization.csproj b/examples/JsonSerialization/JsonSerialization.csproj index dea812453..7d82a41a8 100644 --- a/examples/JsonSerialization/JsonSerialization.csproj +++ b/examples/JsonSerialization/JsonSerialization.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/JsonWithReferences/JsonWithReferences.csproj b/examples/JsonWithReferences/JsonWithReferences.csproj index fdcdf08dd..aef5a1d35 100644 --- a/examples/JsonWithReferences/JsonWithReferences.csproj +++ b/examples/JsonWithReferences/JsonWithReferences.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/OAuthConsumer/OAuthConsumer.csproj b/examples/OAuthConsumer/OAuthConsumer.csproj index c42400cb6..8bb782adc 100644 --- a/examples/OAuthConsumer/OAuthConsumer.csproj +++ b/examples/OAuthConsumer/OAuthConsumer.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/OAuthOIDC/OAuthOIDC.csproj b/examples/OAuthOIDC/OAuthOIDC.csproj index 64a2285d8..4c970d21a 100644 --- a/examples/OAuthOIDC/OAuthOIDC.csproj +++ b/examples/OAuthOIDC/OAuthOIDC.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/OAuthProducer/OAuthProducer.csproj b/examples/OAuthProducer/OAuthProducer.csproj index f51138333..0616adde0 100644 --- a/examples/OAuthProducer/OAuthProducer.csproj +++ b/examples/OAuthProducer/OAuthProducer.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/Producer/Producer.csproj b/examples/Producer/Producer.csproj index 1daf48a36..9213bdeda 100755 --- a/examples/Producer/Producer.csproj +++ b/examples/Producer/Producer.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/Protobuf/Protobuf.csproj b/examples/Protobuf/Protobuf.csproj index c8e5aa013..9864c7839 100644 --- a/examples/Protobuf/Protobuf.csproj +++ b/examples/Protobuf/Protobuf.csproj @@ -9,7 +9,7 @@ - + diff --git a/examples/TlsAuth/TlsAuth.csproj b/examples/TlsAuth/TlsAuth.csproj index 7ebaf19ec..7178edbab 100644 --- a/examples/TlsAuth/TlsAuth.csproj +++ b/examples/TlsAuth/TlsAuth.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Confluent.Kafka/Config_gen.cs b/src/Confluent.Kafka/Config_gen.cs index d0a128737..1bfae8740 100644 --- a/src/Confluent.Kafka/Config_gen.cs +++ b/src/Confluent.Kafka/Config_gen.cs @@ -1,4 +1,4 @@ -// *** Auto-generated from librdkafka v2.4.0-RC2 *** - do not modify manually. +// *** Auto-generated from librdkafka v2.4.0 *** - do not modify manually. // // Copyright 2018-2022 Confluent Inc. // diff --git a/src/Confluent.Kafka/Confluent.Kafka.csproj b/src/Confluent.Kafka/Confluent.Kafka.csproj index 05fbe849f..1486078bf 100755 --- a/src/Confluent.Kafka/Confluent.Kafka.csproj +++ b/src/Confluent.Kafka/Confluent.Kafka.csproj @@ -13,7 +13,7 @@ README.md Confluent.Kafka Confluent.Kafka - 2.4.0-RC2 + 2.4.0 netstandard2.0;netstandard1.3;net462;net6.0 true true @@ -22,7 +22,7 @@ - + None diff --git a/src/Confluent.SchemaRegistry.Serdes.Avro/Confluent.SchemaRegistry.Serdes.Avro.csproj b/src/Confluent.SchemaRegistry.Serdes.Avro/Confluent.SchemaRegistry.Serdes.Avro.csproj index 806a4b56c..d41f34227 100644 --- a/src/Confluent.SchemaRegistry.Serdes.Avro/Confluent.SchemaRegistry.Serdes.Avro.csproj +++ b/src/Confluent.SchemaRegistry.Serdes.Avro/Confluent.SchemaRegistry.Serdes.Avro.csproj @@ -13,7 +13,7 @@ Confluent.SchemaRegistry.Serdes.Avro Confluent.SchemaRegistry.Serdes.Avro Confluent.SchemaRegistry.Serdes.Avro - 2.4.0-RC2 + 2.4.0 netstandard2.0; true true diff --git a/src/Confluent.SchemaRegistry.Serdes.Json/Confluent.SchemaRegistry.Serdes.Json.csproj b/src/Confluent.SchemaRegistry.Serdes.Json/Confluent.SchemaRegistry.Serdes.Json.csproj index a6068ed49..7a990bbf0 100644 --- a/src/Confluent.SchemaRegistry.Serdes.Json/Confluent.SchemaRegistry.Serdes.Json.csproj +++ b/src/Confluent.SchemaRegistry.Serdes.Json/Confluent.SchemaRegistry.Serdes.Json.csproj @@ -13,7 +13,7 @@ Confluent.SchemaRegistry.Serdes.Json Confluent.SchemaRegistry.Serdes.Json Confluent.SchemaRegistry.Serdes.Json - 2.4.0-RC2 + 2.4.0 netstandard2.0; true true diff --git a/src/Confluent.SchemaRegistry.Serdes.Protobuf/Confluent.SchemaRegistry.Serdes.Protobuf.csproj b/src/Confluent.SchemaRegistry.Serdes.Protobuf/Confluent.SchemaRegistry.Serdes.Protobuf.csproj index c17186b08..8f0bb32d4 100644 --- a/src/Confluent.SchemaRegistry.Serdes.Protobuf/Confluent.SchemaRegistry.Serdes.Protobuf.csproj +++ b/src/Confluent.SchemaRegistry.Serdes.Protobuf/Confluent.SchemaRegistry.Serdes.Protobuf.csproj @@ -13,7 +13,7 @@ Confluent.SchemaRegistry.Serdes.Protobuf Confluent.SchemaRegistry.Serdes.Protobuf Confluent.SchemaRegistry.Serdes.Protobuf - 2.4.0-RC2 + 2.4.0 netstandard2.0; true true diff --git a/src/Confluent.SchemaRegistry/Confluent.SchemaRegistry.csproj b/src/Confluent.SchemaRegistry/Confluent.SchemaRegistry.csproj index 447f253e7..5f8c01a94 100644 --- a/src/Confluent.SchemaRegistry/Confluent.SchemaRegistry.csproj +++ b/src/Confluent.SchemaRegistry/Confluent.SchemaRegistry.csproj @@ -13,7 +13,7 @@ Confluent.SchemaRegistry Confluent.SchemaRegistry Confluent.SchemaRegistry - 2.4.0-RC2 + 2.4.0 netstandard2.0;netstandard1.4 true true