Releases: dpkp/kafka-python
Releases · dpkp/kafka-python
1.3.4
Bugfixes
- Avoid multiple connection attempts when refreshing metadata (dpkp #1067)
- Catch socket.errors when sending / recving bytes on wake socketpair (dpkp #1069)
- Deal with brokers that reappear with different IP address (originsmike #1085)
- Fix join-time-max and sync-time-max metrics to use Max() measure function (billyevans #1146)
- Raise AssertionError when decompression unsupported (bts-webber #1159)
- Catch ssl.EOFErrors on Python3.3 so we close the failing conn (Ormod #1162)
- Select on sockets to avoid busy polling during bootstrap (dpkp #1175)
- Initialize metadata_snapshot in group coordinator to avoid unnecessary rebalance (dpkp #1174)
Client
- Timeout idle connections via connections_max_idle_ms (dpkp #1068)
- Warn, dont raise, on DNS lookup failures (dpkp #1091)
- Support exponential backoff for broker reconnections -- KIP-144 (dpkp #1124)
- Add gssapi support (Kerberos) for SASL (Harald-Berghoff #1152)
- Add private map of api key -> min/max versions to BrokerConnection (dpkp #1169)
Consumer
- Backoff on unavailable group coordinator retry (dpkp #1125)
- Only change_subscription on pattern subscription when topics change (Artimi #1132)
- Add offsets_for_times, beginning_offsets and end_offsets APIs (tvoinarovskyi #1161)
Producer
- Raise KafkaTimeoutError when flush times out (infecto)
- Set producer atexit timeout to 0 to match del (Ormod #1126)
Core / Protocol
- 0.11.0.0 protocol updates (only - no client support yet) (dpkp #1127)
- Make UnknownTopicOrPartitionError retriable error (tvoinarovskyi)
Test Infrastructure
- pylint 1.7.0+ supports python 3.6 and merge py36 into common testenv (jianbin-wei #1095)
- Add kafka 0.10.2.1 into integration testing version (jianbin-wei #1096)
- Disable automated tests for python 2.6 and kafka 0.8.0 and 0.8.1.1 (jianbin-wei #1096)
- Support manual py26 testing; dont advertise 3.3 support (dpkp)
- Add 0.11.0.0 server resources, fix tests for 0.11 brokers (dpkp)
- Use fixture hostname, dont assume localhost (dpkp)
- Add 0.11.0.0 to travis test matrix, remove 0.10.1.1; use scala 2.11 artifacts (dpkp #1176)
Logging / Error Messages
- Improve error message when expiring batches in KafkaProducer (dpkp #1077)
- Update producer.send docstring -- raises KafkaTimeoutError (infecto)
- Use logging's built-in string interpolation (jeffwidman)
- Fix produce timeout message (melor #1151)
- Fix producer batch expiry messages to use seconds (dnwe)
Documentation
- Fix typo in KafkaClient docstring (jeffwidman #1054)
- Update README: Prefer python-lz4 over lz4tools (kiri11 #1057)
- Fix poll() hyperlink in KafkaClient (jeffwidman)
- Update RTD links with https / .io (jeffwidman #1074)
- Describe consumer thread-safety (ecksun)
- Fix typo in consumer integration test (jeffwidman)
- Note max_in_flight_requests_per_connection > 1 may change order of messages (tvoinarovskyi #1149)
1.3.3
Release 1.3.3
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