This repository has been archived by the owner on Mar 24, 2021. It is now read-only.
Releases: Parsely/pykafka
Releases · Parsely/pykafka
2.7.0.dev1
Minor Version Features
- Added a
broker_version
kwarg toBroker.__init__
for the purpose of setting
api_version
inFetchResponse
- Added a
topic_name
argument toBroker.join_group
for use in protocol metadata,
visible via the Administrative API - Added a function
print_managed_consumer_groups
to the CLI - Added a
timestamp
kwarg toProducer.produce
to pass on messages when the broker
supports newer message formats - Changed
Producer.produce
to return the producedMessage
instance - Added
protocol_version
andtimestamp
kwargs toMessage
- Added support for the
fetch_error_backoff_ms
kwarg onSimpleConsumer
- Added an
unblock_event
kwarg toSimpleConsumer.consume
used to notify the consumer
that its parentBalancedConsumer
is in the process of rebalancing - Added a general-purpose
cleanup
function toSimpleConsumer
Bug Fixes
- Added an
Event
that notifies the internalSimpleConsumer
of aBalancedConsumer
that a rebalance is in progress, fixing a bug causing partitions to be unreleased - Fixed a bug causing busywaiting in the
BalancedConsumer
when there are no partitions
available - Updated the protocol implementation to send non-empty
GroupMembershipProtocol
objects and become compatible with the Administrative API - Fixed a bytestring bug causing
kafka_tools.reset_offsets
not to work in python 3 - Added a separate retry limit on connections to the offset manager
- Improved logging on socket errors
- Fixed a bug causing API version not to be passed on certain requests
- Handled new
MessageSet
compression scheme in API v1 - Fixed a bug in
rdkafka.SimpleConsumer
causing exceptions not to be raised from worker
threads - Fixed a bug causing
fetch_offsets
not to raise exceptions under certain conditions
when it should
Miscellaneous
- Separated gevent tests from other builds in Travis
- Made dependency on gevent optional
- Added a convenient CLI entry point via
__main__
- Fixed exception naming convention to align with naming in the broker
- Avoided building the
rdkafka
extension on platforms that don't support it - Fixed a bug in test harness causing some tests not to be inherited from parent classes
2.6.0
Minor Version Features
- Added support to
Broker
andCluster
for Kafka 0.10's Administrative API - Changed the
MemberAssignment
protocol API to more closely match the schema defined
by Kafka - Changed the rdkafka C module to return offset reports from produce requests
Bug Fixes
- Changed components to use
six.reraise
to raise worker thread exceptions for easier
debugging - Included message offset in messages returned from
Producer
delivery reports - Changed protocol implementation to parse
ConsumerGroupProtocolMetadata
from
bytestrings returned from Kafka - Added some safety checks and error handling to
Broker
,Cluster
,Connection
- Removed update lock from
produce()
- Add cleanup logic to
Producer
to avoid certain deadlock situations - Change the name of the assignment strategy to match the standard
range
strategy - Fix crash in rdkafka related to
broker.version.fallback
- Fix nuisance error messages from rdkafka
- Handled
struct.error
exceptions inProducer._send_request
Miscellaneous
- Upgraded the version of PyPy used in automated tests
- Upgraded the version of python 3 and Kafka used in automated tests
2.6.0.dev3
Minor Version Features
- Changed the rdkafka C module to return offset reports from produce requests
Bug Fixes
- Added some safety checks and error handling to
Broker
,Cluster
,Connection
- Removed update lock from
produce()
- Add cleanup logic to
Producer
to avoid certain deadlock situations - Change the name of the assignment strategy to match the standard
range
strategy - Fix crash in rdkafka related to
broker.version.fallback
- Fix nuisance error messages from rdkafka
Miscellaneous
- Upgraded the version of python 3 and Kafka used in automated tests
2.6.0.dev2
Bug Fixes
- Handled
struct.error
exceptions inProducer._send_request
Miscellaneous
- Upgraded the version of PyPy used in automated tests
2.6.0.dev1
Minor Version Features
- Added support to
Broker
andCluster
for Kafka 0.10's Administrative API - Changed the
MemberAssignment
protocol API to more closely match the schema defined
by Kafka
Bug Fixes
- Changed components to use
six.reraise
to raise worker thread exceptions for easier
debugging - Included message offset in messages returned from
Producer
delivery reports - Handled
struct.error
exceptions inProducer._send_request
- Changed protocol implementation to parse
ConsumerGroupProtocolMetadata
from
bytestrings returned from Kafka
2.5.0
Minor version Features
- Added the
broker_version
kwarg to several components. It's currently only
used by the librdkafka features. The kwarg is used to facilitate the use of
librdkafka via pykafka against multiple Kafka broker versions. - Changed offset commit requests to include useful information in the offset
metadata field, including consumer ID and hostname - Added the
GroupHashingPartitioner
Bug Fixes
- Fixed the operation of
consumer_timeout_ms
, which had been broken for
BalancedConsumer
groups - Fixed a bug causing
Producer.__del__
to crash during finalization - Made the consumer's fetch loop nonbusy when the internal queues are full to
save CPU cycles when message volume is high - Fixed a bug causing
Producer.flush()
to wait forlinger_ms
during calls initiated
by_update()
- Fixed a race condition between
Producer._update
andOwnedBroker.flush
causing
infinite retry loops - Changed
Producer.produce
to block while the internal broker list is being updated.
This avoids possible mismatches between old and new cluster metadata used by the
Producer
. - Fixed an issue causing consumer group names to be written to ZooKeeper with a literal
b''
in python3.⚠️ Since this change adjusts ZooKeeper storage formats, it
should be applied with caution to production systems. Deploying this change without a
careful rollout plan could cause consumers to lose track of their offsets.⚠️ - Added logic to group coordinator discovery that retries the request once per broker
- Handled socket errors in
BrokerConnection
- Fixed a bug causing synchronous production to hang in some situations
Miscellaneous
- Upgraded the version of PyPy used in automated tests
- Upgraded the version of librdkafka used in automated tests
- Pinned the version of the
testinstances
library on which the tests depend
2.5.0.dev1
You can install this release via pip with pip install --pre pykafka==2.5.0.dev1
.
It will not automatically install because it's a pre-release.
Minor version Features
- Added the
broker_version
kwarg to several components. It's currently only
used by the librdkafka features. The kwarg is used to facilitate the use of
librdkafka via pykafka against multiple Kafka broker versions. - Changed offset commit requests to include useful information in the offset
metadata field, including consumer ID and hostname - Added the
GroupHashingPartitioner
Bug Fixes
- Fixed the operation of
consumer_timeout_ms
, which had been broken for
BalancedConsumer
groups - Fixed a bug causing
Producer.__del__
to crash during finalization - Made the consumer's fetch loop nonbusy when the internal queues are full to
save CPU cycles when message volume is high - Fixed a bug causing
Producer.flush()
to wait forlinger_ms
during calls initiated
by_update()
- Fixed a race condition between
Producer._update
andOwnedBroker.flush
causing
infinite retry loops - Changed
Producer.produce
to block while the internal broker list is being updated.
This avoids possible mismatches between old and new cluster metadata used by the
Producer
.
Miscellaneous
- Upgraded the version of PyPy used in automated tests
- Upgraded the version of librdkafka used in automated tests
- Pinned the version of the
testinstances
library on which the tests depend
2.4.1.dev1
You can install this release via pip with pip install --pre pykafka==2.4.1.dev1
.
It will not automatically install because it's a pre-release.
Bug Fixes
- Fixed an issue causing consumer group names to be written to ZooKeeper with a literal
b''
.⚠️ Since this change adjusts ZooKeeper storage formats, it should be applied with
caution to production systems. Deploying this change without a careful rollout plan
could cause consumers to lose track of their offsets.⚠️ - Added logic to group coordinator discovery that retries the request once per broker
- Handled socket errors in
BrokerConnection
- Fixed a bug causing synchronous production to hang in some situations
2.4.0
Minor Version Features
- Added support for connecting to Kafka brokers using a secure TLS connection
- Removed the fallback in
Cluster
that treatedhosts
as a ZooKeeper
connection string - Removed the
block_on_queue_full
kwarg from the rdkafka producer - Added the
max_request_size
kwarg to the rdkafka producer
Bug Fixes
- Performed permissive parameter validation in consumers and producer to avoid
cryptic errors on threads - Allowed more consumers than partitions in a balanced consumer group
- Fixed python 3 compatibility in
kafka_tools.py
- Fixed a bug causing nuisance errors on interpreter shutdown
- Removed some uses of deprecated functions in the rdkafka C extension
- Fixed a bug causing crashes when kafka returns an invalid partition ID in
partition requests
Miscellaneous
- Added utilities for testing TLS support to the test suite
- Made the gevent version requirement slightly more inclusive
2.3.1
Bug Fixes
- Fixed a
NoneType
crash inProducer
when rejecting larger messages - Stopped
Producer
integration tests from sharing aConsumer
instance to make test
runs more consistent
Miscellaneous
- Added warning about using Snappy compression under PyPy
- Clarified language around "most recent offset available"