Skip to content
This repository has been archived by the owner on Mar 24, 2021. It is now read-only.

Releases: Parsely/pykafka

2.7.0.dev1

21 Sep 21:55
Compare
Choose a tag to compare
2.7.0.dev1 Pre-release
Pre-release

Minor Version Features

  • Added a broker_version kwarg to Broker.__init__ for the purpose of setting
    api_version in FetchResponse
  • Added a topic_name argument to Broker.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 to Producer.produce to pass on messages when the broker
    supports newer message formats
  • Changed Producer.produce to return the produced Message instance
  • Added protocol_version and timestamp kwargs to Message
  • Added support for the fetch_error_backoff_ms kwarg on SimpleConsumer
  • Added an unblock_event kwarg to SimpleConsumer.consume used to notify the consumer
    that its parent BalancedConsumer is in the process of rebalancing
  • Added a general-purpose cleanup function to SimpleConsumer

Bug Fixes

  • Added an Event that notifies the internal SimpleConsumer of a BalancedConsumer
    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

02 May 22:46
Compare
Choose a tag to compare

Minor Version Features

  • Added support to Broker and Cluster 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 in Producer._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

02 May 19:06
Compare
Choose a tag to compare
2.6.0.dev3 Pre-release
Pre-release

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

02 May 18:39
Compare
Choose a tag to compare
2.6.0.dev2 Pre-release
Pre-release

Bug Fixes

  • Handled struct.error exceptions in Producer._send_request

Miscellaneous

  • Upgraded the version of PyPy used in automated tests

2.6.0.dev1

09 Dec 18:42
Compare
Choose a tag to compare
2.6.0.dev1 Pre-release
Pre-release

Minor Version Features

  • Added support to Broker and Cluster 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 in Producer._send_request
  • Changed protocol implementation to parse ConsumerGroupProtocolMetadata from
    bytestrings returned from Kafka

2.5.0

15 Sep 17:54
Compare
Choose a tag to compare

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 for linger_ms during calls initiated
    by _update()
  • Fixed a race condition between Producer._update and OwnedBroker.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

23 Aug 19:02
Compare
Choose a tag to compare
2.5.0.dev1 Pre-release
Pre-release

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 for linger_ms during calls initiated
    by _update()
  • Fixed a race condition between Producer._update and OwnedBroker.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

06 Jul 16:43
Compare
Choose a tag to compare
2.4.1.dev1 Pre-release
Pre-release

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

25 May 22:14
Compare
Choose a tag to compare

Minor Version Features

  • Added support for connecting to Kafka brokers using a secure TLS connection
  • Removed the fallback in Cluster that treated hosts 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

08 Apr 20:47
Compare
Choose a tag to compare

Bug Fixes

  • Fixed a NoneType crash in Producer when rejecting larger messages
  • Stopped Producer integration tests from sharing a Consumer instance to make test
    runs more consistent

Miscellaneous

  • Added warning about using Snappy compression under PyPy
  • Clarified language around "most recent offset available"