Skip to content

Commit 4b89741

Browse files
committed
Release 2.1.0
1 parent a96bc9c commit 4b89741

File tree

4 files changed

+188
-3
lines changed

4 files changed

+188
-3
lines changed

Diff for: CHANGES.md

+87
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,90 @@
1+
# 2.1.0 (Mar 14, 2025)
2+
3+
Support Kafka Broker 2.1 API Baseline
4+
* Add baseline leader_epoch support for ListOffsets v4 / FetchRequest v10 (#2511)
5+
* Support OffsetFetch v5 / OffsetCommit v6 (2.1 baseline) (#2505)
6+
* Support 2.1 baseline consumer group apis (#2503)
7+
* Support FindCoordinatorRequest v2 in consumer and admin client (#2502)
8+
* Support ListOffsets v3 in consumer (#2501)
9+
* Support Fetch Request/Response v6 in consumer (#2500)
10+
* Add support for Metadata Request/Response v7 (#2497)
11+
* Implement Incremental Fetch Sessions / KIP-227 (#2508)
12+
* Implement client-side connection throttling / KIP-219 (#2510)
13+
* Add KafkaClient.api_version(operation) for best available from api_versions (#2495)
14+
15+
Consumer
16+
* Timeout coordinator poll / ensure_coordinator_ready / ensure_active_group (#2526)
17+
* Add optional timeout_ms kwarg to remaining consumer/coordinator methods (#2544)
18+
* Check for coordinator.poll failure in KafkaConsumer
19+
* Only mark coordinator dead if connection_delay > 0 (#2530)
20+
* Delay group coordinator until after bootstrap (#2539)
21+
* KAFKA-4160: Ensure rebalance listener not called with coordinator lock (#1438)
22+
* Call default_offset_commit_callback after `_maybe_auto_commit_offsets_async` (#2546)
23+
* Remove legacy/v1 consumer message iterator (#2543)
24+
* Log warning when attempting to list offsets for unknown topic/partition (#2540)
25+
* Add heartbeat thread id to debug logs on start
26+
* Add inner_timeout_ms handler to fetcher; add fallback (#2529)
27+
28+
Producer
29+
* KafkaProducer: Flush pending records before close() (#2537)
30+
* Raise immediate error on producer.send after close (#2542)
31+
* Limit producer close timeout to 1sec in __del__; use context managers to close in test_producer
32+
* Use NullLogger in producer atexit cleanup
33+
* Attempt to fix metadata race condition when partitioning in producer.send (#2523)
34+
* Remove unused partial KIP-467 implementation (ProduceResponse batch error details) (#2524)
35+
36+
AdminClient
37+
* Implement perform leader election (#2536)
38+
* Support delete_records (#2535)
39+
40+
Networking
41+
* Call ApiVersionsRequest during connection, prior to Sasl Handshake (#2493)
42+
* Fake api_versions for old brokers, rename to ApiVersionsRequest, and handle error decoding (#2494)
43+
* Debug log when skipping api_versions request with pre-configured api_version
44+
* Only refresh metadata if connection fails all dns records (#2532)
45+
* Support connections through SOCKS5 proxies (#2531)
46+
* Fix OverflowError when connection_max_idle_ms is 0 or inf (#2538)
47+
* socket.setblocking for eventlet/gevent compatibility
48+
* Support custom per-request timeouts (#2498)
49+
* Include request_timeout_ms in request debug log
50+
* Support client.poll with future and timeout_ms
51+
* mask unused afi var
52+
* Debug log if check_version connection attempt fails
53+
54+
SASL Modules
55+
* Refactor Sasl authentication with SaslMechanism abstract base class; support SaslAuthenticate (#2515)
56+
* Add SSPI (Kerberos for Windows) authentication mechanism (#2521)
57+
* Support AWS_MSK_IAM authentication (#2519)
58+
* Cleanup sasl mechanism configuration checks; fix gssapi bugs; add sasl_kerberos_name config (#2520)
59+
* Move kafka.oauth.AbstractTokenProvider -> kafka.sasl.oauth.AbstractTokenProvider (#2525)
60+
61+
Testing
62+
* Bump default python to 3.13 in CI tests (#2541)
63+
* Update pytest log_format: use logger instead of filename; add thread id
64+
* Improve test_consumer_group::test_group logging before group stabilized (#2534)
65+
* Limit test duration to 5mins w/ pytest-timeout
66+
* Fix external kafka/zk fixtures for testing (#2533)
67+
* Disable zookeeper admin server to avoid port conflicts
68+
* Set default pytest log level to debug
69+
* test_group: shorter timeout, more logging, more sleep
70+
* Cache servers/dist in github actions workflow (#2527)
71+
* Remove tox.ini; update testing docs
72+
* Use thread-specific client_id in test_group
73+
* Fix subprocess log warning; specify timeout_ms kwarg in consumer.poll tests
74+
* Only set KAFKA_JVM_PERFORMANCE_OPTS in makefile if unset; add note re: 2.0-2.3 broker testing
75+
* Add kafka command to test.fixtures; raise FileNotFoundError if version not installed
76+
77+
Documentation
78+
* Improve ClusterMetadata docs re: node_id/broker_id str/int types
79+
* Document api_version_auto_timeout_ms default; override in group tests
80+
81+
Fixes
82+
* Signal close to metrics expire_loop
83+
* Add kafka.util timeout_ms_fn
84+
* fixup TopicAuthorizationFailedError construction
85+
* Fix lint issues via ruff check (#2522)
86+
* Make the "mock" dependency optional (only used in Python < 3.3). (#2518)
87+
188
# 2.0.6 (Mar 4, 2025)
289

390
Networking

Diff for: docs/changelog.rst

+98
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,104 @@
11
Changelog
22
=========
33

4+
2.1.0 (Mar 14, 2025)
5+
####################
6+
7+
Support Kafka Broker 2.1 API Baseline
8+
-------------------------------------
9+
* Add baseline leader_epoch support for ListOffsets v4 / FetchRequest v10 (#2511)
10+
* Support OffsetFetch v5 / OffsetCommit v6 (2.1 baseline) (#2505)
11+
* Support 2.1 baseline consumer group apis (#2503)
12+
* Support FindCoordinatorRequest v2 in consumer and admin client (#2502)
13+
* Support ListOffsets v3 in consumer (#2501)
14+
* Support Fetch Request/Response v6 in consumer (#2500)
15+
* Add support for Metadata Request/Response v7 (#2497)
16+
* Implement Incremental Fetch Sessions / KIP-227 (#2508)
17+
* Implement client-side connection throttling / KIP-219 (#2510)
18+
* Add KafkaClient.api_version(operation) for best available from api_versions (#2495)
19+
20+
Consumer
21+
--------
22+
* Timeout coordinator poll / ensure_coordinator_ready / ensure_active_group (#2526)
23+
* Add optional timeout_ms kwarg to remaining consumer/coordinator methods (#2544)
24+
* Check for coordinator.poll failure in KafkaConsumer
25+
* Only mark coordinator dead if connection_delay > 0 (#2530)
26+
* Delay group coordinator until after bootstrap (#2539)
27+
* KAFKA-4160: Ensure rebalance listener not called with coordinator lock (#1438)
28+
* Call default_offset_commit_callback after `_maybe_auto_commit_offsets_async` (#2546)
29+
* Remove legacy/v1 consumer message iterator (#2543)
30+
* Log warning when attempting to list offsets for unknown topic/partition (#2540)
31+
* Add heartbeat thread id to debug logs on start
32+
* Add inner_timeout_ms handler to fetcher; add fallback (#2529)
33+
34+
Producer
35+
--------
36+
* KafkaProducer: Flush pending records before close() (#2537)
37+
* Raise immediate error on producer.send after close (#2542)
38+
* Limit producer close timeout to 1sec in __del__; use context managers to close in test_producer
39+
* Use NullLogger in producer atexit cleanup
40+
* Attempt to fix metadata race condition when partitioning in producer.send (#2523)
41+
* Remove unused partial KIP-467 implementation (ProduceResponse batch error details) (#2524)
42+
43+
AdminClient
44+
-----------
45+
* Implement perform leader election (#2536)
46+
* Support delete_records (#2535)
47+
48+
Networking
49+
----------
50+
* Call ApiVersionsRequest during connection, prior to Sasl Handshake (#2493)
51+
* Fake api_versions for old brokers, rename to ApiVersionsRequest, and handle error decoding (#2494)
52+
* Debug log when skipping api_versions request with pre-configured api_version
53+
* Only refresh metadata if connection fails all dns records (#2532)
54+
* Support connections through SOCKS5 proxies (#2531)
55+
* Fix OverflowError when connection_max_idle_ms is 0 or inf (#2538)
56+
* socket.setblocking for eventlet/gevent compatibility
57+
* Support custom per-request timeouts (#2498)
58+
* Include request_timeout_ms in request debug log
59+
* Support client.poll with future and timeout_ms
60+
* mask unused afi var
61+
* Debug log if check_version connection attempt fails
62+
63+
SASL Modules
64+
------------
65+
* Refactor Sasl authentication with SaslMechanism abstract base class; support SaslAuthenticate (#2515)
66+
* Add SSPI (Kerberos for Windows) authentication mechanism (#2521)
67+
* Support AWS_MSK_IAM authentication (#2519)
68+
* Cleanup sasl mechanism configuration checks; fix gssapi bugs; add sasl_kerberos_name config (#2520)
69+
* Move kafka.oauth.AbstractTokenProvider -> kafka.sasl.oauth.AbstractTokenProvider (#2525)
70+
71+
Testing
72+
-------
73+
* Bump default python to 3.13 in CI tests (#2541)
74+
* Update pytest log_format: use logger instead of filename; add thread id
75+
* Improve test_consumer_group::test_group logging before group stabilized (#2534)
76+
* Limit test duration to 5mins w/ pytest-timeout
77+
* Fix external kafka/zk fixtures for testing (#2533)
78+
* Disable zookeeper admin server to avoid port conflicts
79+
* Set default pytest log level to debug
80+
* test_group: shorter timeout, more logging, more sleep
81+
* Cache servers/dist in github actions workflow (#2527)
82+
* Remove tox.ini; update testing docs
83+
* Use thread-specific client_id in test_group
84+
* Fix subprocess log warning; specify timeout_ms kwarg in consumer.poll tests
85+
* Only set KAFKA_JVM_PERFORMANCE_OPTS in makefile if unset; add note re: 2.0-2.3 broker testing
86+
* Add kafka command to test.fixtures; raise FileNotFoundError if version not installed
87+
88+
Documentation
89+
-------------
90+
* Improve ClusterMetadata docs re: node_id/broker_id str/int types
91+
* Document api_version_auto_timeout_ms default; override in group tests
92+
93+
Fixes
94+
-----
95+
* Signal close to metrics expire_loop
96+
* Add kafka.util timeout_ms_fn
97+
* fixup TopicAuthorizationFailedError construction
98+
* Fix lint issues via ruff check (#2522)
99+
* Make the "mock" dependency optional (only used in Python < 3.3). (#2518)
100+
101+
4102
2.0.6 (Mar 4, 2025)
5103
###################
6104

Diff for: docs/compatibility.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ Because the kafka server protocol is backwards compatible, kafka-python is
1313
expected to work with newer broker releases as well.
1414

1515
Although kafka-python is tested and expected to work on recent broker versions,
16-
not all features are supported. Specifically, authentication codecs, and
17-
transactional producer/consumer support are not fully implemented. PRs welcome!
16+
not all features are supported. Specifically, transactional producer/consumer
17+
support is not fully implemented. PRs welcome!
1818

1919
kafka-python is tested on python 2.7, and 3.8-3.12.
2020

Diff for: kafka/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.1.0.dev'
1+
__version__ = '2.1.0'

0 commit comments

Comments
 (0)