Releases: dpkp/kafka-python
Releases · dpkp/kafka-python
1.3.2
Patch Release 1.3.2
1.3.1
1.3.0
Incompatible Changes
- Delete KafkaConnection class (dpkp 769)
- Rename partition_assignment -> assignment in MemberMetadata for consistency
- Move selectors34 and socketpair to kafka.vendor (dpkp 785)
- Change api_version config to tuple; deprecate str with warning (dpkp 761)
- Rename _DEFAULT_CONFIG -> DEFAULT_CONFIG in KafkaProducer (dpkp 788)
Improvements
- Vendor six 1.10.0 to eliminate runtime dependency (dpkp 785)
- Add KafkaProducer and KafkaConsumer.metrics() with instrumentation similar to java client (dpkp 754 / 772 / 794)
- Support Sasl PLAIN authentication (larsjsol PR 779)
- Add checksum and size to RecordMetadata and ConsumerRecord (KAFKA-3196 / 770 / 594)
- Use MetadataRequest v1 for 0.10+ api_version (dpkp 762)
- Fix KafkaConsumer autocommit for 0.8 brokers (dpkp 756 / 706)
- Improve error logging (dpkp 760 / 759)
- Adapt benchmark scripts from https://github.com/mrafayaleem/kafka-jython (dpkp 754)
- Add api_version config to KafkaClient (dpkp 761)
- New Metadata method with_partitions() (dpkp 787)
- Use socket_options configuration to setsockopts(). Default TCP_NODELAY (dpkp 783)
- Expose selector type as config option (dpkp 764)
- Drain pending requests to the coordinator before initiating group rejoin (dpkp 798)
- Send combined size and payload bytes to socket to avoid potentially split packets with TCP_NODELAY (dpkp 797)
Bugfixes
- Ignore socket.error when checking for protocol out of sync prior to socket close (dpkp 792)
- Fix offset fetch when partitions are manually assigned (KAFKA-3960 / 786)
- Change pickle_method to use python3 special attributes (jpaulodit 777)
- Fix ProduceResponse v2 throttle_time_ms
- Always encode size with MessageSet (#771)
- Avoid buffer overread when compressing messageset in KafkaProducer
- Explicit format string argument indices for python 2.6 compatibility
- Simplify RecordMetadata; short circuit callbacks (#768)
- Fix autocommit when partitions assigned manually (KAFKA-3486 / #767 / #626)
- Handle metadata updates during consumer rebalance (KAFKA-3117 / #766 / #701)
- Add a consumer config option to exclude internal topics (KAFKA-2832 / #765)
- Protect writes to wakeup socket with threading lock (#763 / #709)
- Fetcher spending unnecessary time during metrics recording (KAFKA-3785)
- Always use absolute_import (dpkp)
Test / Fixtures
- Catch select errors while capturing test fixture logs
- Fix consumer group test race condition (dpkp 795)
- Retry fixture failures on a different port (dpkp 796)
- Dump fixture logs on failure
Documentation
- Fix misspelling of password (ssaamm 793)
- Document the ssl_password config option (ssaamm 780)
- Fix typo in KafkaConsumer documentation (ssaamm 775)
- Expand consumer.fetcher inline comments
- Update kafka configuration links -> 0.10.0.0 docs
- Fixup metrics_sample_window_ms docstring in consumer
1.2.5
1.2.4
Bugfixes
- Update consumer_timeout_ms docstring - KafkaConsumer raises StopIteration, no longer ConsumerTimeout
- Use explicit subscription state flag to handle seek() during message iteration
- Fix consumer iteration on compacted topics (dpkp PR 752)
- Support ssl_password config when loading cert chains (amckemie PR 750)
1.2.3
Patch Improvements
- Fix gc error log: avoid AttributeError in _unregister_cleanup (dpkp PR 747)
- Wakeup socket optimizations (dpkp PR 740)
- Assert will be disabled by "python -O" (tyronecai PR 736)
- Randomize order of topics/partitions processed by fetcher to improve balance (dpkp PR 732)
- Allow client.check_version timeout to be set in Producer and Consumer constructors (eastlondoner PR 647)
1.2.2
Bugfixes
- Clarify timeout unit in KafkaProducer close and flush (ms7s PR 734)
- Avoid busy poll during metadata refresh failure with retry_backoff_ms (dpkp PR 733)
- Check_version should scan nodes until version found or timeout (dpkp PR 731)
- Fix bug which could cause least_loaded_node to always return the same unavailable node (dpkp PR 730)
- Fix producer garbage collection with weakref in atexit handler (dpkp PR 728)
- Close client selector to fix fd leak (msmith PR 729)
- Tweak spelling mistake in error const (steve8918 PR 719)
- Rearrange connection tests to separate legacy KafkaConnection
1.2.1
1.2.0
Support for Kafka 0.10
- Add protocol support for ApiVersionRequest (dpkp PR 678)
- KAFKA-3025: Message v1 -- add timetamp and relative offsets (dpkp PR 693)
- Use Fetch/Produce API v2 for brokers >= 0.10 (uses message format v1) (dpkp PR 694)
- Use standard LZ4 framing for v1 messages / kafka 0.10 (dpkp PR 695)
Consumers
- Update SimpleConsumer / legacy protocol to handle compressed messages (paulcavallaro PR 684)
Producers
- KAFKA-3388: Fix expiration of batches sitting in the accumulator (dpkp PR 699)
- KAFKA-3197: when max.in.flight.request.per.connection = 1, attempt to guarantee ordering (dpkp PR 698)
- Dont use soon-to-be-reserved keyword await as function name (FutureProduceResult) (dpkp PR 697)
Clients
- Fix socket leaks in KafkaClient (dpkp PR 696)
Documentation
Internals
- Support SSL CRL requires python 2.7.9+ / 3.4+
- Use original hostname for SSL checks (vincentbernat PR 682)
- Always pass encoded message bytes to MessageSet.encode()
- Raise ValueError on protocol encode/decode errors
- Supplement socket.gaierror exception in BrokerConnection.connect() (erikbeebe PR 687)
- BrokerConnection check_version: expect 0.9 to fail with CorrelationIdError
- Fix small bug in Sensor (zackdever PR 679)
1.1.1
quick bugfixes
- fix throttle_time_ms sensor handling (zackdever pr 667)
- improve handling of disconnected sockets (easypost pr 666 / dpkp)
- disable standard metadata refresh triggers during bootstrap (dpkp)
- more predictable future callback/errback exceptions (zackdever pr 670)
- avoid some exceptions in coordinator.del (dpkp pr 668)