Skip to content

Latest commit

 

History

History
534 lines (334 loc) · 23 KB

CHANGELOG.md

File metadata and controls

534 lines (334 loc) · 23 KB

Changelog

The repo is versioned based on SemVer 2.0 using the tiny-but-mighty MinVer from @adamralph. See here for more information on how it works.

Please note FsKafka has (generally additive) breaking changes even in Minor and Patch releases as:

  • FsKafka binds strongly to a specific version of Confluent.Kafka + librdkafka.redist,so arbitrary replacements are already frowned on
  • a primary goal is to be terse and not vary from the underlying defaults where possible - putting in lots of Obsoleted overloads as one normally should is contrary to this goal

All notable changes to this project will be documented in this file. The format is based on Keep a Changelog.

The Unreleased section name is replaced by the expected version of next release. A stable version's log contains all changes between that version and the previous stable version (can duplicate the prereleases logs).

Added

Changed

Removed

Fixed

1.9.2 - 2022-08-10

Changed

1.9.0 - 2022-06-18

Changed

Fixed

  • Fix CI to stop emitting builds with incorrect AssemblyVersion 1.0.0.0 (updated MinVer to 2.5.0) #90
  • Remove extraneous variation from AwaitTaskCorrect by switching to canonical implementation #92

1.7.0 - 2021-09-20

Changed

  • Target Confluent.Kafka [1.7.0], librdkafka.redist [1.7.0] #89

Removed

  • Remove FsKafka0, the older, less loved shimmed version which now be subject to the scream test with #87
  • Remove targeting for net461 - support only netstandard 2.0 with #88
  • Remove AwaitThreshold in InFlightMessageCounter #89

1.6.3 - 2021-06-23

Added

  • Added overload of BatchedProducer to support message headers #86 🙏 @deviousasti
  • Added overload of BatchedProducer to support passing in Message[] #86 🙏 @deviousasti

Fixed

1.6.2 - 2021-02-26

Added

  • Added overload of InFlightMessageCounter.AwaitThreshold with busyWork argument #73
  • BatchedConsumer: Added AwaitWithStopOnCancellation #83
  • ProducerConfig: Add maxMessageBytes parameter to constructor #84

Changed

Removed

  • Removed deprecated overload of KafkaProducerConfig.Create introduced in 1.5.0 #73
  • Removed deprecated overload of InFlightMessageCounter.AwaitThreshold introduced in 1.5.1 #73

1.5.6 - 2020-12-11

Changed

1.5.5 - 2020-10-21

Changed

1.5.4 - 2020-09-11

Fixed

1.5.3 - 2020-09-08

Added

  • Logging of consume-loop terminating exceptions caught in the batch processing loop and/or handler #78 🙏 @wantastic84

1.5.2 - 2020-08-19

Changed

  • BREAKING: Renamed FsKafka.KafkaMonitor.StartAsChild to Start, changed return type to IDisposable #77 🙏 @wantastic84

Fixed

  • Provided mechanism to tear down the monitoring loop when the consumer stops #77 🙏 @wantastic84

1.5.1 - 2020-08-04

Added

  • BREAKING: KafkaConsumerConfig.Create: added allowAutoCreateTopics argument to enable control of allow.auto.create.topics now that librdkafka 1.5 changes the default #71

Changed

  • Changed unit of maxInFlightBytes when rendered in logs from GiB to MiB #72

Fixed

  • Applied Pause/Resume when consumer quiesces due to maxInFlightBytes to avoid MAXPOLL condition (not implemented for FsKafka0) #70

1.5.0 - 2020-07-22

Changed

1.4.5 - 2020-07-22

Changed

  • BREAKING: Encapsulated linger/batching semantics in a Batching DU passed to KafkaProducerConfig.Create (instead of linger and maxInFlight) in lieu of having BatchedProducer.CreateWithConfigOverrides patch the values #68

Fixed

  • BREAKING: Handle deadlock between maxInFlightMessageBytes wait loop and Consumer cancellation #61 🙏 @bilaldurrani
  • FsKafka0: Aligned Thread.Sleep when over maxInFlightBytes threshold with FsKafka (reduced from 5 to 1 ms) #67

1.4.4 - 2020-06-29

Added

  • Add .Verbose log for handler invocations #57 🙏 @wantastic84
  • include partition property as LogContext.PushProperty when dispatching a handler invocation #60
  • FsKafka0: Add ConsumerError logging #57 🙏 @svairagade

Changed

  • FsKafka: Distinguish Fatal Errors from by non-fatal by reducing level to Warning #57 🙏 @svairagade
  • Target Confluent.Kafka [1.4.4], librdkafka.redist [1.4.4]

Removed

  • Remove incorrect Producer logging (it logs before the wait hence generally reports 0), as spotted by @wantastic84 #57

Fixed

  • FsKafka0: remove ObjectDisposedException when doing > 1 of .Stop or .Dispose on a Consumer #60
  • FsKafka0: remove leak due to incorrect tail-recursion (do! -> return!) (Clone of FsKafka #39) #59

1.4.4-rc3 - 2020-06-25

Added

  • include partition property as LogContext.PushProperty when dispatching a handler invocation #60

Changed

  • Target Confluent.Kafka [1.4.4-RC1], librdkafka.redist [1.4.4]
  • Elevated .Verbose log for handler invocations from #57 to .Debug #60

Fixed

  • FsKafka0: remove ObjectDisposedException when doing > 1 of .Stop or .Dispose on a Consumer #60

1.4.4-rc2 - 2020-06-11

Fixed

  • FsKafka0: remove leak due to incorrect tail-recursion (do! -> return!) (Clone of FsKafka #39) #59

1.4.4-rc1 - 2020-06-10

Added

Changed

  • FsKafka: Distinguish Fatal Errors from by non-fatal by reducing level to Warning #57 🙏 @svairagade

Fixed

  • Remove incorrect Producer logging (it logs before the wait hence generally reports 0), as spotted by @wantastic84 #57

1.4.3 - 2020-05-20

Added

  • FsKafka0: Add IConsumer, ConsumeResult, DeliveryReport, DeliveryResult aliases #55
  • Add Binding.offsetValue #56

Changed

  • Target Confluent.Kafka [1.4.3], librdkafka.redist [1.4.2]
  • FsKafka0: Rename Confluent.Kafka.Config to ConfigHelpers to avoid conflict #54
  • FsKafka0: Rename Confluent.Kafka.Types.* to Confluent.Kafka.* for symmetry #54

Fixed

  • FsKafka0: Replace AutoOffsetReset.None with AutoOffsetReset.Error #54

1.4.2 - 2020-05-13

Added

Changed

Removed

  • Config.validateBrokerUri #51

1.4.1 - 2020-04-18

Added

  • Added optional headers param: KafkaProducer.ProduceAsync(key, value, ?headers) #50
  • Exposed lower level KafkaProducer.ProduceAsync(Message<string,string>) #50

1.4.0 - 2020-04-06

Changed

  • BREAKING: Replace broker : Uri with bootstrapServers : string (use (Config.validateBrokerUri broker) for backcompat if required) #49
  • Target Microsoft.NETFramework.ReferenceAssemblies v 1.0.0, Minver v 2.2.0
  • Updated to Confluent.Kafka, librdkafka.redist v 1.4.0
  • Updated to SDK 3.1.101, VM image macOS-latest

1.3.0 - 2019-12-04

Changed

  • Renamed to FsKafka
  • Updated to MinVer v 2.0.0, Microsoft.SourceLink.GitHub v 1.0.0
  • Updated to Confluent.Kafka, librdkafka.redist v 1.3.0

1.2.0 - 2019-09-21

NOTE: not interoperable (i.e., via a binding redirect) with CK 1.1 due to a breaking change in the CK 1.2 release, see #44.

Added

  • config argument to KafaConsumerConfig and KafkaProducerConfig constructors accepting an IDictionary<string,string> to match Confluent.Kafka 1.2 ctor overloads #44

Changed

  • offsetCommitInterval renamed to autoCommitInterval to match name used in CK >= 1.0 #45
  • Uses MinVer v 2.0.0-alpha.2 internally
  • Targets Confluent.Kafka v 1.2.0, librdkafka.redist v 1.2.0 #44

1.1.0 - 2019-06-28

Changed

  • Targets Confluent.Kafka v 1.1.0, librdkafka.redist v 1.1.0 #42
  • Added Producing... prefix to log messages for consistency
  • Made Consuming... prefixes for log messages consistent
  • Tidied logging of Unset values in Consuming... Committed messsage
  • ConsumerBuilder.WithLogging signature change (NB breaking vs 1.0.1, affects users of Propulsion libraries only)

Fixed

  • Fixed and clarified defaulting behavior for fetchMaxBytes,maxInFlight,partitioner arguments #40

1.0.1 - 2019-06-10

Removed

Fixed

  • remove leak due to incorrect tail-recursion (do! -> return!) #39

1.0.1-rc1 - 2019-06-03

Added

  • Propulsion.Kafka.Codec.RenderedSpan (nee Equinox.Projection.Codec.RenderedSpan, which is deprecated and is being removed)
  • Propulsion.EventStore, Propulsion.Cosmos (productized from Equinox.Templates's eqxsync and eqxprojector)

Changed

  • Targets Confluent.Kafka v 1.0.1, librdkafka.redist v 1.0.1

1.0.0-rc14 - 2019-06-10

Fixed

  • remove leak due to incorrect tail-recursion (do! -> return!) (Cherry pick of #39)

1.0.0-rc13 - 2019-06-01

Added

  • StreamsConsumer and StreamsProducer #35
  • ParallelProducer #36

Changed

  • Split reusable components of ParallelConsumer out into independent Propulsion and Propulsion.Kafka libraries #34

1.0.0-rc12 - 2019-05-31

Added

  • Included totalLag in Consumer Stats

Changed

  • Default minInFlightBytes is now 2/3 of maxInFlightBytes
  • Reduced Thread.Sleep when over maxInFlightBytes threshold from 5 to 1 ms

Fixed

  • Significant tuning / throughput improvements for ParallelConsumer

1.0.0-rc11 - 2019-05-27

Added

  • ParallelConsumer #33

Fixed

  • reinstated AutoOffsetReset logging in KafkaConsumerConfig

1.0.0-rc10 - 2019-05-22

Added

  • mechanism to remove logging regarding polling backoff #32 HT @szer re #31

Changed

  • split batching behaviors out into BatchedProducer/BatchedConsumer #30
  • default auto-commit interval dropped from 10s to 5s (which is the Confluent.Kafka default) #30
  • removed curried member Method arguments in Start methods

1.0.0-rc9 - 2019-05-22

Added

  • each configuration DSL now has a customize function to admit post-processing after defaults and custom have taken effect #29
  • Producer/Consumer both have an Inner to enable custom logic #29

Changed

  • default auto-commit interval dropped from 10s to 5s (which is the Confluent.Kafka default) #29
  • default fetchMinBytes dropped from 10 to 1 (which is the Confluent.Kafka default) #29

1.0.0-rc8 - 2019-05-21

Fixed

  • Make custom parameters in consumer config a seq once again #28 @szer

1.0.0-rc7 - 2019-05-16

Added

  • Exposed [single-item] ProduceAsync in KafkaProducer

1.0.0-rc6 - 2019-04-24

Changed

  • Updated to target Confluent.Kafka 1.0.0

1.0.0-rc5 - 2019-04-24

Changed

  • Updated to target Confluent.Kafka 1.0.0-RC7

1.0.0-rc4 - 2019-04-23

Changed

  • Updated to target Confluent.Kafka 1.0.0-RC6

1.0.0-rc3 - 2019-04-12

Changed

  • Updated to target Confluent.Kafka 1.0.0-RC4

Fixed

  • Cleaned minor logging inconsistency wrt CompressionType

1.0.0-rc2 - 2019-04-02

Changed

  • Updated to target Confluent.Kafka 1.0.0-RC3 #24

1.0.0-rc1 - 2019-03-27

Changed

  • Updated to target Confluent.Kafka 1.0.0-RC2 (which references librdkafka.redist 1.0.0) #23
  • Pins rdkafka and Confluent.Kafka dependencies to specific known good versions as above #22

1.0.0-preview2 - 2019-03-26

Changed

  • Updated to target Confluent.Kafka 1.0.0-RC1 (triggered relatively minor changes internally due to sane API fixes, does not update to rdkafka 1.0.0, still 1.0.0-RC9) #21

1.0.0-preview1 - 2019-03-05

(Extracted from Equinox Changelog - this codebase was maintained within that repo originally)

Added

  • Equinox.Projection.Kafka consumer metrics emission, see Equinox #94 @michaelliao5
  • Initial release as part of Equinox.Cosmos projection facilities, see Equinox #87 @michaelliao5

(Stripped down repo for history purposes, see v0 branch for implementation targeting Confluent.Kafka v 0.9.4)