AArch64 | |
ppc64le | |
s390x | |
x86-64 |
- update to 1.3.3: Core / Protocol * Derive all api classes from Request / Response base classes (dpkp 1030) * Prefer python-lz4 if available (dpkp 1024) * Fix kwarg handing in kafka.protocol.struct.Struct (dpkp 1025) * Fixed couple of "leaks" when gc is disabled (Mephius 979) * Added `max_bytes` option and FetchRequest_v3 usage. (Drizzt1991 962) * CreateTopicsRequest / Response v1 (dpkp 1012) * Add MetadataRequest_v2 and MetadataResponse_v2 structures for KIP-78 (Drizzt1991 974) * KIP-88 / KAFKA-3853: OffsetFetch v2 structs (jeffwidman 971) * DRY-up the MetadataRequest_v1 struct (jeffwidman 966) * Add JoinGroup v1 structs (jeffwidman 965) * DRY-up the OffsetCommitResponse Structs (jeffwidman 970) * DRY-up the OffsetFetch structs (jeffwidman 964) * time --> timestamp to match Java API (jeffwidman 969) * Add support for offsetRequestV1 messages (jlafaye 951) * Add FetchRequest/Response_v3 structs (jeffwidman 943) * Add CreateTopics / DeleteTopics Structs (jeffwidman 944) Test Infrastructure * Add python3.6 to travis test suite, drop python3.3 (exponea 992) * Update to 0.10.1.1 for integration testing (dpkp 953) * Update vendored berkerpeksag/selectors34 to ff61b82 (Mephius 979) * Remove dead code (jeffwidman 967) * Update pytest fixtures to new yield syntax (jeffwidman 919) Consumer * Avoid re-encoding message for crc check (dpkp 1027) * Optionally skip auto-commit during consumer.close (dpkp 1031) * Return copy of consumer subscription set (dpkp 1029) * Short-circuit group coordinator requests when NodeNotReady (dpkp 995) * Avoid unknown coordinator after client poll (dpkp 1023) * No longer configure a default consumer group (dpkp 1016) * Dont refresh metadata on failed group coordinator request unless needed (dpkp 1006) * Fail-fast on timeout constraint violations during KafkaConsumer creation (harelba 986) * Default max_poll_records to Java default of 500 (jeffwidman 947) * For 0.8.2, only attempt connection to coordinator if least_loaded_node succeeds (dpkp) Producer * change default timeout of KafkaProducer.close() to threading.TIMEOUT_MAX on py3 (mmyjona 991) Client * Add optional kwarg to ready/is_ready to disable metadata-priority logic (dpkp 1017) * When closing a broker connection without error, fail in-flight-requests with Cancelled (dpkp 1010) * Catch socket errors during ssl handshake (dpkp 1007) * Drop old brokers when rebuilding broker metadata (dpkp 1005) * Drop bad disconnect test -- just use the mocked-socket test (dpkp 982) * Add support for Python built without ssl (minagawa-sho 954) * Do not re-close a disconnected connection (dpkp) * Drop unused last_failure time from BrokerConnection (dpkp) * Use connection state functions where possible (dpkp) * Pass error to BrokerConnection.close() (dpkp) Bugfixes * Free lz4 decompression context to avoid leak (dpkp 1024) * Fix sasl reconnect bug: auth future must be reset on close (dpkp 1003) * Fix raise exception from SubscriptionState.assign_from_subscribed (qntln 960) * Fix blackout calculation: mark last_attempt time during connection close (dpkp 1008) * Fix buffer pool reallocation after raising timeout (dpkp 999) Logging / Error Messages * Add client info logging re bootstrap; log connection attempts to balance with close (dpkp) * Minor additional logging for consumer coordinator (dpkp) * Add more debug-level connection logging (dpkp) * Do not need str(self) when formatting to %s (dpkp) * Add new broker response errors (dpkp) * Small style fixes in kafka.errors (dpkp) * Include the node id in BrokerConnection logging (dpkp 1009) * Replace %s with %r in producer debug log message (chekunkov 973) Documentation * Sphinx documentation updates (jeffwidman 1019) * Add sphinx formatting to hyperlink methods (jeffwidman 898) * Fix BrokerConnection api_version docs default (jeffwidman 909) * PEP-8: Spacing & removed unused imports (jeffwidman 899) * Move BrokerConnection docstring to class (jeffwidman 968) * Move docstring so it shows up in Sphinx/RTD (jeffwidman 952) * Remove non-pip install instructions (jeffwidman 940) * Spelling and grammar changes (melissacrawford396 923) * Fix typo: coorelation --> correlation (jeffwidman 929) * Make SSL warning list the correct Python versions (jeffwidman 924) * Fixup comment reference to _maybe_connect (dpkp) * Add ClusterMetadata sphinx documentation (dpkp) Legacy Client * Add send_list_offset_request for searching offset by timestamp (charsyam 1001) * Use select to poll sockets for read to reduce CPU usage (jianbin-wei 958) * Use select.select without instance bounding (adamwen829 949) [#] 1.3.2 (Dec 28, 2016) Core * Add kafka.serializer interfaces (dpkp 912) * from kafka import ConsumerRebalanceListener, OffsetAndMetadata * Use 0.10.0.1 for integration tests (dpkp 803) Consumer * KAFKA-3007: KafkaConsumer max_poll_records (dpkp 831) * Raise exception if given a non-str topic (ssaamm 824) * Immediately update metadata for pattern subscription (laz2 915) Producer * Update Partitioners for use with KafkaProducer (barrotsteindev 827) * Sort partitions before calling partitioner (ms7s 905) * Added ssl_password config option to KafkaProducer class (kierkegaard13 830) Client * Always check for request timeouts (dpkp 887) * When hostname lookup is necessary, do every connect (benauthor 812) Bugfixes * Fix errorcode check when socket.connect_ex raises an exception (guojh 907) * Fix fetcher bug when processing offset out of range (sibiryakov 860) * Fix possible request draining in ensure_active_group (dpkp 896) * Fix metadata refresh handling with 0.10+ brokers when topic list is empty (sibiryakov 867) * KafkaProducer should set timestamp in Message if provided (Drizzt1991 875) * Fix murmur2 bug handling python2 bytes that do not ascii encode (dpkp 815) * Monkeypatch max_in_flight_requests_per_connection when checking broker version (dpkp 834) * Fix message timestamp_type (qix 828) Logging / Error Messages * Always include an error for logging when the coordinator is marked dead (dpkp 890) * Only string-ify BrokerResponseError args if provided (dpkp 889) * Update warning re advertised.listeners / advertised.host.name (jeffwidman 878) * Fix unrecognized sasl_mechanism error message (sharego 883) Documentation * Add docstring for max_records (jeffwidman 897) * Fixup doc references to max_in_flight_requests_per_connection * Fix typo: passowrd --> password (jeffwidman 901) * Fix documentation typo 'Defualt' -> 'Default'. (rolando 895) * Added doc for `max_poll_records` option (Drizzt1991 881) * Remove old design notes from Kafka 8 era (jeffwidman 876) * Fix documentation typos (jeffwidman 874) * Fix quota violation exception message (dpkp 809) * Add comment for round robin partitioner with different subscriptions * Improve KafkaProducer docstring for retries configuration - Switch to singlespec approach
- update to 1.3.1: 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)
- Install LICENSE
- Use pypi.io for Source url
- Updated version to 1.0.1 * Consumers: * Add RangePartitionAssignor (and use as default); add assignor tests (dpkp PR 550) * Make sure all consumers are in same generation before stopping group test * Verify node ready before sending offset fetch request from coordinator * Improve warning when offset fetch request returns unknown topic / partition * KafkaConsumer re-written to emulate the new 0.9 kafka consumer (java client) and support coordinated consumer groups (feature requires >= 0.9.0.0 brokers) * Methods no longer available: * configure [initialize a new consumer instead] * set_topic_partitions [use subscribe() or assign()] * fetch_messages [use poll() or iterator interface] * get_partition_offsets * offsets [use committed(partition)] * task_done [handled internally by auto-commit; or commit offsets manually] * Configuration changes (consistent with updated java client): * lots of new configuration parameters -- see docs for details * auto_offset_reset: previously values were 'smallest' or 'largest', now values are 'earliest' or 'latest' * fetch_wait_max_ms is now fetch_max_wait_ms * max_partition_fetch_bytes is now max_partition_fetch_bytes * deserializer_class is now value_deserializer and key_deserializer * auto_commit_enable is now enable_auto_commit * auto_commit_interval_messages was removed * socket_timeout_ms was removed * refresh_leader_backoff_ms was removed * SimpleConsumer and MultiProcessConsumer are now deprecated and will be removed in a future release. Users are encouraged to migrate to KafkaConsumer. * Initial support for consumer coordinator: offsets only (toddpalino PR 420) * Allow blocking until some messages are received in SimpleConsumer (saaros PR 457) * Support subclass config changes in KafkaConsumer (zackdever PR 446) * Support retry semantics in MultiProcessConsumer (barricadeio PR 456) * Support partition_info in MultiProcessConsumer (scrapinghub PR 418) * Enable seek() to an absolute offset in SimpleConsumer (haosdent PR 412) * Add KafkaConsumer.close() (ucarion PR 426) * Producers * Warn if pending batches failed during flush * Fix concurrency bug in RecordAccumulator.ready() * Fix bug in SimpleBufferPool memory condition waiting / timeout * Support batch_size = 0 in producer buffers (dpkp PR 558) * Catch duplicate batch.done() calls [e.g., maybe_expire then a response errback] * new producer class: KafkaProducer. Exposes the same interface as official java client. Async by default; returned future.get() can be called for synchronous blocking * SimpleProducer is now deprecated and will be removed in a future release. Users are encouraged to migrate to KafkaProducer. * Catch client.reinit() exceptions in async producer (dpkp) * Producer.stop() now blocks until async thread completes (dpkp PR 485) * Catch errors during load_metadata_for_topics in async producer (bschopman PR 467) * Add compression-level support for codecs that support it (trbs PR 454) * Fix translation of Java murmur2 code, fix byte encoding for Python 3 (chrischamberlin PR 439) * Only call stop() on not-stopped producer objects (docker-hub PR 435) * Allow null payload for deletion feature (scrapinghub PR 409) * Clients * synchronous KafkaClient renamed to SimpleClient. For backwards compatibility, you will get a SimpleClient via `from kafka import KafkaClient`. This will change in a future release. * All client calls use non-blocking IO under the hood. * Add probe method check_version() to infer broker versions. * Use non-blocking io for broker aware requests (ecanzonieri PR 473) * Use debug logging level for metadata request (ecanzonieri PR 415) * Catch KafkaUnavailableError in _send_broker_aware_request (mutability PR 436) * Lower logging level on replica not available and commit (ecanzonieri PR 415) * Documentation * Improve kafka.cluster docstrings * Migrate load_example.py to KafkaProducer / KafkaConsumer * Updated README and sphinx documentation to address new classes. * Docstring improvements to make python help() easier to use. * Update docs and links wrt maintainer change (mumrah -> dpkp) * Internals * Dont override system rcvbuf or sndbuf unless configured explicitly (dpkp PR 557) * Some attributes may not exist in __del__ if we failed assertions * Break up some circular references and close client wake pipes on __del__ (aisch PR 554) * Old protocol stack is deprecated. It has been moved to kafka.protocol.legacy and may be removed in a future release. * Protocol layer re-written using Type classes, Schemas and Structs (modeled on the java client). * Add support for LZ4 compression (including broken framing header checksum). * Add py35 to tox testing * Update travis config to use container infrastructure * Add 0.8.2.2 and 0.9.0.0 resources for integration tests; update default official releases * new pylint disables for pylint 1.5.1 (zackdever PR 481) * Fix python3 / python2 comments re queue/Queue (dpkp) * Add Murmur2Partitioner to kafka __all__ imports (dpkp Issue 471) * Include LICENSE in PyPI sdist (koobs PR 441)
- Initial packaging (version 0.9.4)