Skip to content

Releases: fd4s/fs2-kafka

fs2-kafka v3.3.0

16 Feb 10:06
b4dd5a4
Compare
Choose a tag to compare

This is the fifth stable fs2-kafka release to be based on the 3.x series of the Apache Kafka client library. It is available for Scala 2.12, 2.13, and 3.3; all users are encouraged to upgrade.

Thanks for the effort of the new contributors @cwholmes and @L7R7 🎉 We hope to see more nice contributions in the future! 💪🏽 🙌🏽

Important Notice: Binary Incompatibilities ⚠️

This release introduced binary incompatibilities in #1268. Users are encouraged to use v.3.3.1 instead 🙏🏽

Relevant Changes

  • Support consumer offsets for times and list topics by @cwholmes
  • Add chunk-based consumer API by @L7R7

What's Changed

New Contributors

Full Changelog: v3.2.0...v3.3.0

fs2-kafka v3.2.0

21 Oct 10:41
4f51f27
Compare
Choose a tag to compare

This is the fourth stable fs2-kafka release to be based on the 3.x series of the Apache Kafka client library. It is available for Scala 2.12, 2.13, and 3.3; all users are encouraged to upgrade.

Relevant Changes

  • Latest Scala libs for 2.12 and 2.13
  • Latest Kafka Clients 3.6.x lineage (updated from 3.5.x in previous versions)
  • MUnit Vulcan integration improvements by @keirlawson

What's Changed

Full Changelog: v3.1.0...v3.2.0

fs2-kafka v3.1.0

01 Oct 08:43
2a1a3d7
Compare
Choose a tag to compare

This is the third stable fs2-kafka release to be based on the 3.x series of the Apache Kafka client library. It is available for Scala 2.12, 2.13, and 3.3; all users are encouraged to upgrade.

Development of the 2.x series is now discontinued. All new pull requests should target the 3.x branch.

This release bumps all third party dependencies to latest effective version (targeting JDK 8 as the base), fixes some transitive vulnerabilities and consolidates the build for Cats Effect 3.5.x and fs2 3.9.x.

Thanks everyone involved in the release and congrats to first-time contributors! 🥳 We hope to see more of your nice PRs in the near future! 💪🏽

What's Changed

New Contributors

Full Changelog: v3.0.1...v3.1.0

fs2-kafka v3.0.1

05 May 15:39
e4376d1
Compare
Choose a tag to compare

This release makes some internal changes in preparation for changes to cancelation semantics forthcoming in cats-effect 3.5.0; it also updates some dependencies.

What's Changed

Full Changelog: v3.0.0...v3.0.1

fs2-kafka v2.6.1

05 May 14:58
eb859e3
Compare
Choose a tag to compare

This release makes some internal changes in preparation for changes to cancelation semantics forthcoming in cats-effect 3.5.0; it also updates some dependencies.

What's Changed

Full Changelog: v2.6.0...v2.6.1

fs2-kafka v3.0.0

11 Apr 13:02
2953ada
Compare
Choose a tag to compare

This is the first stable fs2-kafka release to be based on the 3.x series of the Apache Kafka client library. It is available for Scala 2.12, 2.13, and 3.2; all users are encouraged to upgrade. There are some backwards-incompatible API changes, set out below; for further details, see release notes for 3.0.0-RC1 and previous milestone versions.

Development of the 2.x series will now start to wind down, and the 1.x series will be discontinued. New pull requests that make substantial changes should target the 3.x branch.

Apologies to those whose outstanding pull requests weren't merged in time for this release - it was already very overdue. The intention is to start a 4.x branch in the near future to make further backwards-incompatible improvements.

Backwards-incompatible changes

Serializers and Deserializers

Some changes have been made to how fs2-kafka represents Serializers and Deserializers. The following references Serializers but the same changes have been made to Deserializers.

Typed KeySerializer and ValueSerializer

In some cases, such as when using a schema registry with the fs2-kafka-vulcan module, a given serializer will only be valid either for keys or for values, but not both. This is now represented by the KeySerializer type, representing the ability to serialize a key, and the ValueSerializer type, representing the ability to serialize a value. These are supertypes of the plain Serializer type, which can serialize either a key or a value.

Implementation note: KeySerializer, ValueSerializer and Serializer are aliased subtypes of a new GenericSerializer class, which is contravariantly parameterized with a marker trait KeyOrValue with subtypes Key and Value. User code usually won't need to be concerned with these details.

Replacement of RecordSerializer (and RecordDeserializer) with Resource

RecordSerializer served two purposes: to distinguish between key and value serializers when summoning them implicitly, and to wrap effectful instantiation of serializers. The former purpose is now served by the KeySerializer and ValueSerializer types; the latter, by cats-effect's Resource type. Usages of RecordSerializer[F, A] are thus now replaced by Resource[F, KeySerializer[F, A]] or Resource[F, ValueSerializer[F, A]].

Change to Vulcan module's API

The AvroSerializer class no longer has a using method that returns RecordSerializer; instead it has two methods, forKey and forValue, that respectively return KeySerializer and ValueSerializer inside Resource. (Equivalent changes have been made to AvroDeserializer.)

Simplified representation of producer records (#901)

The ProducerRecords, TransactionalProducerRecords and ProducerResult classes have been replaced with type aliases for different kinds of fs2.Chunk, which they previously wrapped. This was enabled by removal of "passthrough" functionality, which can instead be implemented in user code if needed.

What's Changed since v3.0.0-RC1

Full Changelog since v2.6.0: v2.6.0...v3.0.0

fs2-kafka v1.11.0 - final 1.x release

12 Apr 10:11
f822164
Compare
Choose a tag to compare

This is likely to be the final release of fs2-kafka v1.x, unless a serious security vulnerability emerges; please upgrade to v3.0.0.

What's Changed

New Contributors

Full Changelog: v1.10.0...v1.11.0

fs2-kafka v3.0.0-RC1

27 Mar 14:14
27c4e34
Compare
Choose a tag to compare
fs2-kafka v3.0.0-RC1 Pre-release
Pre-release

This release candidate builds on previous milestone releases of fs2-kafka 3.0. It includes all changes from v2.6.0 and also introduces the breaking change of removing the RecordDeserializer and RecordSerializer types, in favour of simply using Resource for allocating KeySerializer, ValueSerializer etc. It also reintroduces support for Scala 2.12, to encourage all users to migrate quickly to the new version.

What's Changed

Breaking changes

Enhancements

  • Add partitionFor for given topic with KafkaProducer by @sergio-margale in #1111
  • 1099 Fix produce method of TransactionalKafkaProducer, when method is invoked with empty records and non-empty offsets by @chernovsa in #1100
  • Change transactional producer to await produce before ending transaction by @bastewart in #1127

Dependency updates

Misc

New Contributors

Full Changelog: v3.0.0-M9...v3.0.0-RC1

fs2-kafka v2.6.0

11 Apr 12:03
ab5c540
Compare
Choose a tag to compare

This release previously failed to publish but has now been published successfully.

What's Changed

Enhancements

  • Change transactional producer to await produce before ending transaction by @bastewart in #1127
  • 1099 Fix produce method of TransactionalKafkaProducer, when method is invoked with empty records and non-empty offsets by @chernovsa in #1100
  • #1143 - Add transform and option methods on RecordSerializer and RecordDeserializer by @geirolz in #1160
  • Add partitionFor for given topic with KafkaProducer by @sergio-margale in #1111

Dependency updates

Misc

New Contributors

Full Changelog: v2.5.0...v2.6.0

v3.0.0-M9

21 Jul 09:29
1c5f563
Compare
Choose a tag to compare
v3.0.0-M9 Pre-release
Pre-release

This milestone release replaces v3.0.0-M8, which was released from the wrong branch and should not be used.

What's Changed

New Contributors

Full Changelog: v3.0.0-M7...v3.0.0-M9