0.2.0
-
Python versions 3.7 and earlier are no longer supported because Kafkit is adopting the
annotations
import from__future__
and native support forimportlib.metadata
.
Kafkit is explicitly tested with Python 3.8, 3.9, and 3.10. -
We've added a
kafkit.ssl
module to help connect to Kafka brokers over TLS.
The associated documentation includes a tutorial for working with the SSL certificates generated in a Kafka cluster managed by Strimzi. -
The brand-new
kafkit.registry.manager.RecordNameSchemaManager
provides a streamlined workflow for serializing Avro messages using Avro schemas that are maintained in your app's codebase.
The manager handles schema registration for you.
To serialize a message, you simply need to provide the data and the name of the schema. -
A new
kafkit.registry.sansio.CompatibilityType
Enum helps you write use valid Schema Registry compatibility types. -
We've significantly improved Kafkit's packaging and infrastructure:
- Migrate packaging metadata from
setup.py
topyproject.toml
(Kafkit continues to be a setuptools-based project). - Tox now runs tasks like tests, in conjunction with the existing Pytest set up.
- Pre-commit hooks lint and format the code base.
- Code style is now handled by Black (and in the documentation with blacken-docs).
- Full support for type annotations!
tox -e typing
validates Kafkit's type annotations with Mypy. - We've migrated from Travis CI to GitHub Actions.
- Migrate packaging metadata from
-
The documentation now includes a development guide.
What's Changed
- DM-23795: Modernize packaging and add type checking by @jonathansick in #5
- Fix doc upload that was going to safir.lsst.io by @jonathansick in #8
- DM-23796: Add kafkit.ssl module by @jonathansick in #6
- DM-23797: Add a schema manager based on the "record name" subject naming strategy by @jonathansick in #7
- DM-23797: Validate long_description and lint by @jonathansick in #9
- Fix suffix string interpolation by @jonathansick in #11
- DM-35548: Update packaging and other clean up by @jonathansick in #14
Full Changelog: 0.1.1...0.2.0