This repository was archived by the owner on Mar 24, 2021. It is now read-only.
Releases: Parsely/pykafka
Releases · Parsely/pykafka
2.8.1-dev.1
Bugfixes
- Fixed a bug causing topics to be erroneously reported as present on
Topic - Fixed noisy logging from consumer shutdown
Miscellaneous
- Updated dependencies: gevent, xxhash, pytest, lz4
2.8.0
Minor Version Features
- Added a
deserializerkwarg to consumer components to facilitate unicode support - Added a
reset_offset_on_fetchkwarg to consumer components to support read-only
consumption - Changed the expected type of the consumer's
consumer_groupkwarg tostrfrombytes - Changed the expected type of
TopicDict.__getitem__'s parameter tostrfrombytes - Added a
pending_timeout_mskwarg toProducer.__init__to allow delivery report
wait timeouts - Added a
serializerkwarg toProducer.__init__to facilitate unicode support - Deprecated the
generation_idandconsumer_idparameters onSimpleConsumer - Added a
partition_offsetskwarg to consumers'commit_offsetsmethod to decouple
the notions of "committed" vs "consumed" messages - Added an
attemptskwarg toBroker.connectthat controls retries during broker
connection - Added a
queue_empty_timeout_mskwarg toProducer.__init__that creates an "empty
wait" state in theProducerwhen no messages are available to produce - Added the
zookeeper_hostskwarg toBalancedConsumerto standardize kwarg naming - Implemented versioning for
ListOffsetRequest - Changed the behavior of integer arguments passed to
reset_offsets
Bugfixes
- Changed consumers to handle valid ascii strings for consumer group names instead of
bytes - Handled
NoNodeExceptionduring consumer ZK node releases - Used
api_versionsto select the version-appropriate implementation for
OffsetFetchRequest - Adjusted synchronous production logic to avoid infinite blocking when delivery report
is lost - Fixed a bug in
FetchResponseV1causingthrottle_timeto be returned as a tuple
instead of an integer - Implemented support for all current versions of
OffsetFetchRequestand
OffsetFetchResponse - Updated some
cli.print_managed_consumer_groupsto be Py3 compatible - Updated the topic creation/deletion CLI to avoid trying to talk to 0.10.0 brokers
- Improved error handling in
Cluster.get_group_coordinator - Added retry logic to
BrokerConnection.connect - Handled some nuisance errors when shutting down in
handlers.py - Added a
threading.Eventinstance toProducerindicating the presence of at least
one message in the queue to enable nonbusy "empty waiting" - Added logic to
SimpleConsumer.commit_offsetsand
OwnedPartition.build_offset_commit_requestthat handles user-specified offset
information and sends it in requests - Fixed the internal logic of
reset_offsetsto be more predictable and user-friendly,
and to better handle the case where the topic has a single log segment - Standardized the handling of
offsets_beforearguments across the API - Added cluster update attempts to
produce()retries - Added a more descriptive error message on certain broker version mismatch errors
Miscellaneous
- Used logging.NullHandler to remove nuisance logs
- Added stock unicode serde to
utils - Added README to pypi info
- Updated version of Kafka used in Travis tests to 1.0.1
- Added usage guide section on connection loss
- Updated test harness to allow simulated killing of brokers
- Added a giant explanatory docstring to
Topic.fetch_offset_limitsclarifying how the
ListOffsetsAPI works - Pinned
geventdependency to avoid breaking change inkazoo, which depends on it - Added tests for retrying broker connections
- Added tests for user-specified offset commits
- Added usage example on consuming the last N messages from a topic
- Deprecated the
zookeeper_connectkwarg onBalancedConsumer - Split the
protocol.pyfile into multiple smaller files via theprotocolmodule - Changed the lag monitor CLI to avoid resetting offsets
- Added
InvalidTopicto the list of supported exceptions - Updated requirement versions: lz4, pytest, xxhash
- Removed hacky test-skipping logic from test suite
- xfail
test_update_cluster, since it occasionally fails
2.8.0-rc.1
This is a multi-tagging of 2.8.0-dev.5 for the purpose of indicating that this release is slated to become 2.8.0 after a bit of testing.
Changes since 2.7.0
Minor Version Features
- Added a
deserializerkwarg to consumer components to facilitate unicode support - Added a
reset_offset_on_fetchkwarg to consumer components to support read-only
consumption - Changed the expected type of the consumer's
consumer_groupkwarg tostrfrombytes - Changed the expected type of
TopicDict.__getitem__'s parameter tostrfrombytes - Added a
pending_timeout_mskwarg toProducer.__init__to allow delivery report
wait timeouts - Added a
serializerkwarg toProducer.__init__to facilitate unicode support - Deprecated the
generation_idandconsumer_idparameters onSimpleConsumer - Added a
partition_offsetskwarg to consumers'commit_offsetsmethod to decouple
the notions of "committed" vs "consumed" messages - Added an
attemptskwarg toBroker.connectthat controls retries during broker
connection - Added a
queue_empty_timeout_mskwarg toProducer.__init__that creates an "empty
wait" state in theProducerwhen no messages are available to produce - Added the
zookeeper_hostskwarg toBalancedConsumerto standardize kwarg naming - Implemented versioning for
ListOffsetRequest - Changed the behavior of integer arguments passed to
reset_offsets
Bugfixes
- Changed consumers to handle valid ascii strings for consumer group names instead of
bytes - Handled
NoNodeExceptionduring consumer ZK node releases - Used
api_versionsto select the version-appropriate implementation for
OffsetFetchRequest - Adjusted synchronous production logic to avoid infinite blocking when delivery report
is lost - Fixed a bug in
FetchResponseV1causingthrottle_timeto be returned as a tuple
instead of an integer - Implemented support for all current versions of
OffsetFetchRequestand
OffsetFetchResponse - Updated some
cli.print_managed_consumer_groupsto be Py3 compatible - Updated the topic creation/deletion CLI to avoid trying to talk to 0.10.0 brokers
- Improved error handling in
Cluster.get_group_coordinator - Added retry logic to
BrokerConnection.connect - Handled some nuisance errors when shutting down in
handlers.py - Added a
threading.Eventinstance toProducerindicating the presence of at least
one message in the queue to enable nonbusy "empty waiting" - Added logic to
SimpleConsumer.commit_offsetsand
OwnedPartition.build_offset_commit_requestthat handles user-specified offset
information and sends it in requests - Fixed the internal logic of
reset_offsetsto be more predictable and user-friendly,
and to better handle the case where the topic has a single log segment - Standardized the handling of
offsets_beforearguments across the API - Added cluster update attempts to
produce()retries - Added a more descriptive error message on certain broker version mismatch errors
Miscellaneous
- Used logging.NullHandler to remove nuisance logs
- Added stock unicode serde to
utils - Added README to pypi info
- Updated version of Kafka used in Travis tests to 1.0.1
- Added usage guide section on connection loss
- Updated test harness to allow simulated killing of brokers
- Added a giant explanatory docstring to
Topic.fetch_offset_limitsclarifying how the
ListOffsetsAPI works - Pinned
geventdependency to avoid breaking change inkazoo, which depends on it - Added tests for retrying broker connections
- Added tests for user-specified offset commits
- Added usage example on consuming the last N messages from a topic
- Deprecated the
zookeeper_connectkwarg onBalancedConsumer - Split the
protocol.pyfile into multiple smaller files via theprotocolmodule - Changed the lag monitor CLI to avoid resetting offsets
- Added
InvalidTopicto the list of supported exceptions - Updated requirement versions: lz4, pytest, xxhash
- Removed hacky test-skipping logic from test suite
- xfail
test_update_cluster, since it occasionally fails
2.8.0-dev.5
(Duplicate of 2.8.0-dev.4)
2.8.0-dev.4
Bugfixes
- Added a more descriptive error message on certain broker version mismatch errors
Miscellaneous
- xfail
test_update_cluster, since it occasionally fails
2.8.0-dev.3
Minor Version Features
- Added the
zookeeper_hostskwarg toBalancedConsumerto standardize kwarg naming - Implemented versioning for
ListOffsetRequest - Changed the behavior of integer arguments passed to
reset_offsets
Bugfixes
- Fixed the internal logic of
reset_offsetsto be more predictable and user-friendly,
and to better handle the case where the topic has a single log segment - Standardized the handling of
offsets_beforearguments across the API - Added cluster update attempts to
produce()retries
Miscellaneous
- Added usage example on consuming the last N messages from a topic
- Deprecated the
zookeeper_connectkwarg onBalancedConsumer - Split the
protocol.pyfile into multiple smaller files via theprotocolmodule - Changed the lag monitor CLI to avoid resetting offsets
- Added
InvalidTopicto the list of supported exceptions - Updated requirement versions: lz4, pytest, xxhash
- Removed hacky test-skipping logic from test suite
2.8.0-dev.2
Minor Version Features
- Added a
partition_offsetskwarg to consumers'commit_offsetsmethod to decouple
the notions of "committed" vs "consumed" messages - Added an
attemptskwarg toBroker.connectthat controls retries during broker
connection - Added a
queue_empty_timeout_mskwarg toProducer.__init__that creates an "empty
wait" state in theProducerwhen no messages are available to produce
Bugfixes
- Updated some
cli.print_managed_consumer_groupsto be Py3 compatible - Updated the topic creation/deletion CLI to avoid trying to talk to 0.10.0 brokers
- Improved error handling in
Cluster.get_group_coordinator - Added retry logic to
BrokerConnection.connect - Handled some nuisance errors when shutting down in
handlers.py - Added a
threading.Eventinstance toProducerindicating the presence of at least
one message in the queue to enable nonbusy "empty waiting" - Added logic to
SimpleConsumer.commit_offsetsand
OwnedPartition.build_offset_commit_requestthat handles user-specified offset
information and sends it in requests
Miscellaneous
- Updated version of Kafka used in Travis tests to 1.0.1
- Added usage guide section on connection loss
- Updated test harness to allow simulated killing of brokers
- Added a giant explanatory docstring to
Topic.fetch_offset_limitsclarifying how the
ListOffsetsAPI works - Pinned
geventdependency to avoid breaking change inkazoo, which depends on it - Added tests for retrying broker connections
- Added tests for user-specified offset commits
2.8.0-dev.1
Minor Version Features
- Added a
deserializerkwarg to consumer components to facilitate unicode support - Added a
reset_offset_on_fetchkwarg to consumer components to support read-only
consumption - Changed the expected type of the consumer's
consumer_groupkwarg tostrfrombytes - Changed the expected type of
TopicDict.__getitem__'s parameter tostrfrombytes - Added a
pending_timeout_mskwarg toProducer.__init__to allow delivery report
wait timeouts - Added a
serializerkwarg toProducer.__init__to facilitate unicode support - Deprecated the
generation_idandconsumer_idparameters onSimpleConsumer
Bugfixes
- Changed consumers to handle valid ascii strings for consumer group names instead of
bytes - Handled
NoNodeExceptionduring consumer ZK node releases - Used
api_versionsto select the version-appropriate implementation for
OffsetFetchRequest - Adjusted synchronous production logic to avoid infinite blocking when delivery report
is lost - Fixed a bug in
FetchResponseV1causingthrottle_timeto be returned as a tuple
instead of an integer - Implemented support for all current versions of
OffsetFetchRequestand
OffsetFetchResponse
Miscellaneous
- Used logging.NullHandler to remove nuisance logs
- Added stock unicode serde to
utils - Added README to pypi info
2.7.0
Minor Version Features
- Added a
broker_versionkwarg toBroker.__init__for the purpose of setting
api_versioninFetchResponse - Added a
topic_nameargument toBroker.join_groupfor use in protocol metadata,
visible via the Administrative API - Added a function
print_managed_consumer_groupsto the CLI - Added a
timestampkwarg toProducer.produceto pass on messages when the broker
supports newer message formats - Changed
Producer.produceto return the producedMessageinstance - Added
protocol_versionandtimestampkwargs toMessage - Added support for the
fetch_error_backoff_mskwarg onSimpleConsumer - Added an
unblock_eventkwarg toSimpleConsumer.consumeused to notify the consumer
that its parentBalancedConsumeris in the process of rebalancing - Added a general-purpose
cleanupfunction toSimpleConsumer - Added a
membership_protocolkwarg toBalancedConsumerthat allows switchable and
user-defined membership protocols to be used - Implemented
GroupMembershipProtocolobjects for the two standard partition assignment
strategies - Added an
api_versionskwarg toBrokerto facilitate switchable API protocol versions - Added support for all versions of the
MetadataRequesttoBroker - Added the
controller_brokerattribute toCluster - Added
create_topicsanddelete_topicstoBroker - Added
fetch_api_versionstoBrokerandCluster - Added a CLI for creating and deleting topics on the cluster to
kafka_tools - Added support for LZ4 compression to the
ProducerandSimpleConsumer
Bug Fixes
- Added an
Eventthat notifies the internalSimpleConsumerof aBalancedConsumer
that a rebalance is in progress, fixing a bug causing partitions to be unreleased - Fixed a bug causing busywaiting in the
BalancedConsumerwhen 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_offsetsnot 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
MessageSetcompression scheme in API v1 - Fixed a bug in
rdkafka.SimpleConsumercausing exceptions not to be raised from worker
threads - Fixed a bug causing
fetch_offsetsnot to raise exceptions under certain conditions
when it should - Adjusted
Clusterto become aware of supported API versions immediately upon
instantiation - Refactored code in
Clusterrelated to metadata requests to make logic reusable for
pre-bootstrap communication with the cluster - Added the ability to pass arguments to
protocol.Responseinstances when waiting
on a future - Adjusted the
RandomPartitionerto avoid actually callingrandom.choiceto improve
performance - Removed some calls in
Producer.procucetoisinstanceto improve performance - Simplified retry logic in
SimpleConsumer.fetch_offsets
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
rdkafkaextension on platforms that don't support it - Fixed a bug in test harness causing some tests not to be inherited from parent classes
- Used
sudo: requiredto get around dead Travis machines - Upgraded Travis tests to use Kafka 1.0.0
- Added Code of Conduct
- Documented release process
- Made PyKafka available via conda-forge
- Fleshed out the beginning of the usage guide
- Made
kafka_instancefetch its binary fromarchive.apache.orginstead of
mirror.reverse.netbecause the latter removed old versions of Kafka
2.7.0-dev.2
Minor Version Features
- Added a
membership_protocolkwarg toBalancedConsumerthat allows switchable and
user-defined membership protocols to be used - Implemented
GroupMembershipProtocolobjects for the two standard partition assignment
strategies - Added an
api_versionskwarg toBrokerto facilitate switchable API protocol versions - Added support for all versions of the
MetadataRequesttoBroker - Added the
controller_brokerattribute toCluster - Added
create_topicsanddelete_topicstoBroker - Added
fetch_api_versionstoBrokerandCluster - Added a CLI for creating and deleting topics on the cluster to
kafka_tools - Added support for LZ4 compression to the
ProducerandSimpleConsumer
Bug Fixes
- Adjusted
Clusterto become aware of supported API versions immediately upon
instantiation - Refactored code in
Clusterrelated to metadata requests to make logic reusable for
pre-bootstrap communication with the cluster - Added the ability to pass arguments to
protocol.Responseinstances when waiting
on a future - Adjusted the
RandomPartitionerto avoid actually callingrandom.choiceto improve
performance - Removed some calls in
Producer.procucetoisinstanceto improve performance - Simplified retry logic in
SimpleConsumer.fetch_offsets
Miscellaneous
- Used
sudo: requiredto get around dead Travis machines - Upgraded Travis tests to use Kafka 1.0.0
- Added Code of Conduct
- Documented release process
- Made PyKafka available via conda-forge
- Fleshed out the beginning of the usage guide
- Made
kafka_instancefetch its binary fromarchive.apache.orginstead of
mirror.reverse.netbecause the latter removed old versions of Kafka