Backwards-incompatible changes
- Change the
manage_kafka
flag tosafir.metrics.KafkaEventManager
tomanage_kafka_broker
. It now only controls whether the Kafka broker is started and stopped. The Kafka admin client is unconditionally managed (started and stopped) byKafkaEventManager
and should not be shared with any other application use.
New features
- Allow an application to pass an existing FastStream Kafka broker into
safir.metrics.BaseMetricsConfiguration.make_manager
. This simplifies metrics integration for Kafka applications with existing brokers, without requiring manual manager construction and losing the auto-selection of the no-op and mock event managers. - Support the standard Pydantic
exclude_unset
,exclude_defaults
, andexclude_none
arguments toPydanticRedisStorage.store
. - Add
safir.testing.containers.FullKafkaContainer
andsafir.testing.containers.SchemaRegistryContainer
classes based on Testcontainers that create containers for Kafka and the Confluent schema registry, respectively. These classes are intended for use in fixtures or test configuration to enable testing against a local temporary Kafka cluster. - Add
safir.testing.logging.parse_log_tuples
utility function to aid in testing structured log messages from applications using the Safir logging framework.
Other changes
safir.testing
is now an implicit namespace package similar tosafir
so that safir-logging can provide a testing module. This should hopefully not cause any user-observable changes.
What's Changed
- Update for Click 8.2.0 by @rra in #398
- Update redis requirement from <6,>4.5.2 to >4.5.2,<7 in /safir by @dependabot in #397
- Update cryptography requirement from <45 to <46 in /safir by @dependabot in #396
- DM-50964: Force arq 0.26 or later by @rra in #400
- DM-50964: Allow passing Kafka clients to make_manager by @rra in #399
- DM-50964: Support serialization options for Redis storage by @rra in #401
- DM-50964: Add testcontainers support for Kafka by @rra in #402
- Increase docs job timeout to 15 minutes by @jonathansick in #404
- Adjust for changes in dependencies by @rra in #405
- Update sample Alembic configuration by @rra in #406
- DM-50964: Add parse_log_tuples for structlog testing by @rra in #407
- DM-50964: Always manage the admin client in EventManager by @rra in #403
- DM-50964: Prepare 11.0.0 release by @rra in #408
Full Changelog: 10.2.0...11.0.0