|
1 | 1 | Changelog
|
2 | 2 | =========
|
3 | 3 |
|
| 4 | +1.4.0 (Feb 6, 2018) |
| 5 | +################### |
| 6 | + |
| 7 | +This is a substantial release. Although there are no known 'showstopper' bugs as of release, |
| 8 | +we do recommend you test any planned upgrade to your application prior to running in production. |
| 9 | + |
| 10 | +Some of the major changes include: |
| 11 | + |
| 12 | +* We have officially dropped python 2.6 support |
| 13 | +* The KafkaConsumer now includes a background thread to handle coordinator heartbeats |
| 14 | +* API protocol handling has been separated from networking code into a new class, KafkaProtocol |
| 15 | +* Added support for kafka message format v2 |
| 16 | +* Refactored DNS lookups during kafka broker connections |
| 17 | +* SASL authentication is working (we think) |
| 18 | +* Removed several circular references to improve gc on close() |
| 19 | + |
| 20 | +Thanks to all contributors -- the state of the kafka-python community is strong! |
| 21 | + |
| 22 | +Detailed changelog are listed below: |
| 23 | + |
| 24 | +Client |
| 25 | +------ |
| 26 | +* Fixes for SASL support |
| 27 | + |
| 28 | + * Refactor SASL/gssapi support (dpkp #1248 #1249 #1257 #1262 #1280) |
| 29 | + * Add security layer negotiation to the GSSAPI authentication (asdaraujo #1283) |
| 30 | + * Fix overriding sasl_kerberos_service_name in KafkaConsumer / KafkaProducer (natedogs911 #1264) |
| 31 | + * Fix typo in _try_authenticate_plain (everpcpc #1333) |
| 32 | + * Fix for Python 3 byte string handling in SASL auth (christophelec #1353) |
| 33 | + |
| 34 | +* Move callback processing from BrokerConnection to KafkaClient (dpkp #1258) |
| 35 | +* Use socket timeout of request_timeout_ms to prevent blocking forever on send (dpkp #1281) |
| 36 | +* Refactor dns lookup in BrokerConnection (dpkp #1312) |
| 37 | +* Read all available socket bytes (dpkp #1332) |
| 38 | +* Honor reconnect_backoff in conn.connect() (dpkp #1342) |
| 39 | + |
| 40 | +Consumer |
| 41 | +-------- |
| 42 | +* KAFKA-3977: Defer fetch parsing for space efficiency, and to raise exceptions to user (dpkp #1245) |
| 43 | +* KAFKA-4034: Avoid unnecessary consumer coordinator lookup (dpkp #1254) |
| 44 | +* Handle lookup_coordinator send failures (dpkp #1279) |
| 45 | +* KAFKA-3888 Use background thread to process consumer heartbeats (dpkp #1266) |
| 46 | +* Improve KafkaConsumer cleanup (dpkp #1339) |
| 47 | +* Fix coordinator join_future race condition (dpkp #1338) |
| 48 | +* Avoid KeyError when filtering fetchable partitions (dpkp #1344) |
| 49 | +* Name heartbeat thread with group_id; use backoff when polling (dpkp #1345) |
| 50 | +* KAFKA-3949: Avoid race condition when subscription changes during rebalance (dpkp #1364) |
| 51 | +* Fix #1239 regression to avoid consuming duplicate compressed messages from mid-batch (dpkp #1367) |
| 52 | + |
| 53 | +Producer |
| 54 | +-------- |
| 55 | +* Fix timestamp not passed to RecordMetadata (tvoinarovskyi #1273) |
| 56 | +* Raise non-API exceptions (jeffwidman #1316) |
| 57 | +* Fix reconnect_backoff_max_ms default config bug in KafkaProducer (YaoC #1352) |
| 58 | + |
| 59 | +Core / Protocol |
| 60 | +--------------- |
| 61 | +* Add kafka.protocol.parser.KafkaProtocol w/ receive and send (dpkp #1230) |
| 62 | +* Refactor MessageSet and Message into LegacyRecordBatch to later support v2 message format (tvoinarovskyi #1252) |
| 63 | +* Add DefaultRecordBatch implementation aka V2 message format parser/builder. (tvoinarovskyi #1185) |
| 64 | +* optimize util.crc32 (ofek #1304) |
| 65 | +* Raise better struct pack/unpack errors (jeffwidman #1320) |
| 66 | +* Add Request/Response structs for kafka broker 1.0.0 (dpkp #1368) |
| 67 | + |
| 68 | +Bugfixes |
| 69 | +-------- |
| 70 | +* use python standard max value (lukekingbru #1303) |
| 71 | +* changed for to use enumerate() (TheAtomicOption #1301) |
| 72 | +* Explicitly check for None rather than falsey (jeffwidman #1269) |
| 73 | +* Minor Exception cleanup (jeffwidman #1317) |
| 74 | +* Use non-deprecated exception handling (jeffwidman a699f6a) |
| 75 | +* Remove assertion with side effect in client.wakeup() (bgedik #1348) |
| 76 | +* use absolute imports everywhere (kevinkjt2000 #1362) |
| 77 | + |
| 78 | +Test Infrastructure |
| 79 | +------------------- |
| 80 | +* Use 0.11.0.2 kafka broker for integration testing (dpkp #1357 #1244) |
| 81 | +* Add a Makefile to help build the project, generate docs, and run tests (tvoinarovskyi #1247) |
| 82 | +* Add fixture support for 1.0.0 broker (dpkp #1275) |
| 83 | +* Add kafka 1.0.0 to travis integration tests (dpkp #1365) |
| 84 | +* Change fixture default host to localhost (asdaraujo #1305) |
| 85 | +* Minor test cleanups (dpkp #1343) |
| 86 | +* Use latest pytest 3.4.0, but drop pytest-sugar due to incompatibility (dpkp #1361) |
| 87 | + |
| 88 | +Documentation |
| 89 | +------------- |
| 90 | +* Expand metrics docs (jeffwidman #1243) |
| 91 | +* Fix docstring (jeffwidman #1261) |
| 92 | +* Added controlled thread shutdown to example.py (TheAtomicOption #1268) |
| 93 | +* Add license to wheel (jeffwidman #1286) |
| 94 | +* Use correct casing for MB (jeffwidman #1298) |
| 95 | + |
| 96 | +Logging / Error Messages |
| 97 | +------------------------ |
| 98 | +* Fix two bugs in printing bytes instance (jeffwidman #1296) |
| 99 | + |
| 100 | + |
4 | 101 | 1.3.5 (Oct 7, 2017)
|
5 | 102 | ####################
|
6 | 103 |
|
|
0 commit comments