Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .semaphore/semaphore.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ execution_time_limit:
global_job_config:
env_vars:
- name: LIBRDKAFKA_VERSION
value: v2.11.1
value: v2.12.0-RC2
prologue:
commands:
- checkout
Expand Down
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
# Confluent Python Client for Apache Kafka - CHANGELOG

## Unreleased

## v2.12.0 - 2025-10-07

v2.12.0 is a feature release with the following enhancements:

confluent-kafka-python v2.12.0 is based on librdkafka v2.12.0, see the
[librdkafka release notes](https://github.com/confluentinc/librdkafka/releases/tag/v2.12.0)
for a complete list of changes, enhancements, fixes and upgrade considerations.


## v2.12.0b1 - 2025-10-01

Expand Down Expand Up @@ -33,6 +41,7 @@
- For batch jobs, scripts, or highest-throughput pipelines without an event
loop, the synchronous `Producer` remains recommended.


## v2.11.1 - 2025-08-18

v2.11.1 is a maintenance release with the following fixes:
Expand Down
2 changes: 1 addition & 1 deletion examples/docker/Dockerfile.alpine
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ FROM alpine:3.12

COPY . /usr/src/confluent-kafka-python

ENV LIBRDKAFKA_VERSION="v2.11.1"
ENV LIBRDKAFKA_VERSION="v2.12.0-RC2"
Copy link

Copilot AI Oct 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The librdkafka version format 'v2.12.0-RC2' may not match the actual git tag or release naming convention used by librdkafka. Verify that this exact version string exists in the librdkafka repository.

Suggested change
ENV LIBRDKAFKA_VERSION="v2.12.0-RC2"
ENV LIBRDKAFKA_VERSION="v2.12.0"

Copilot uses AI. Check for mistakes.

ENV KCAT_VERSION="master"
ENV CKP_VERSION="master"

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "confluent-kafka"
version = "2.12.0b1"
version = "2.12.0rc2"
description = "Confluent's Python client for Apache Kafka"
classifiers = [
"Development Status :: 5 - Production/Stable",
Expand Down
2 changes: 1 addition & 1 deletion requirements/requirements-tests-install.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
-r requirements-avro.txt
-r requirements-protobuf.txt
-r requirements-json.txt
tests/trivup/trivup-0.13.0.tar.gz
tests/trivup/trivup-0.14.0.tar.gz
12 changes: 6 additions & 6 deletions src/confluent_kafka/src/confluent_kafka.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,27 +38,27 @@
/**
* @brief confluent-kafka-python version, must match that of pyproject.toml.
*/
#define CFL_VERSION_STR "2.12.0b1"
#define CFL_VERSION_STR "2.12.0rc2"

/**
* Minimum required librdkafka version. This is checked both during
* build-time (just below) and runtime (see confluent_kafka.c).
* Make sure to keep the MIN_RD_KAFKA_VERSION, MIN_VER_ERRSTR and #error
* defines and strings in sync.
*/
#define MIN_RD_KAFKA_VERSION 0x020b01ff
#define MIN_RD_KAFKA_VERSION 0x020c00ff
Copy link

Copilot AI Oct 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hexadecimal version value 0x020c00ff appears to represent version 2.12.0.255, but librdkafka v2.12.0-RC2 would typically have a different version encoding. Verify this hex value correctly represents v2.12.0-RC2 or if it should be adjusted for the release candidate.

Suggested change
#define MIN_RD_KAFKA_VERSION 0x020c00ff
#define MIN_RD_KAFKA_VERSION 0x020c0002

Copilot uses AI. Check for mistakes.


#ifdef __APPLE__
#define MIN_VER_ERRSTR "confluent-kafka-python requires librdkafka v2.11.1 or later. Install the latest version of librdkafka from Homebrew by running `brew install librdkafka` or `brew upgrade librdkafka`"
#define MIN_VER_ERRSTR "confluent-kafka-python requires librdkafka v2.12.0 or later. Install the latest version of librdkafka from Homebrew by running `brew install librdkafka` or `brew upgrade librdkafka`"
#else
#define MIN_VER_ERRSTR "confluent-kafka-python requires librdkafka v2.11.1 or later. Install the latest version of librdkafka from the Confluent repositories, see http://docs.confluent.io/current/installation.html"
#define MIN_VER_ERRSTR "confluent-kafka-python requires librdkafka v2.12.0 or later. Install the latest version of librdkafka from the Confluent repositories, see http://docs.confluent.io/current/installation.html"
#endif

#if RD_KAFKA_VERSION < MIN_RD_KAFKA_VERSION
#ifdef __APPLE__
#error "confluent-kafka-python requires librdkafka v2.11.1 or later. Install the latest version of librdkafka from Homebrew by running `brew install librdkafka` or `brew upgrade librdkafka`"
#error "confluent-kafka-python requires librdkafka v2.12.0 or later. Install the latest version of librdkafka from Homebrew by running `brew install librdkafka` or `brew upgrade librdkafka`"
#else
#error "confluent-kafka-python requires librdkafka v2.11.1 or later. Install the latest version of librdkafka from the Confluent repositories, see http://docs.confluent.io/current/installation.html"
#error "confluent-kafka-python requires librdkafka v2.12.0 or later. Install the latest version of librdkafka from the Confluent repositories, see http://docs.confluent.io/current/installation.html"
#endif
#endif

Expand Down
2 changes: 1 addition & 1 deletion tests/soak/setup_all_versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

PYTHON_VERSIONS = [
# '2.12.0',
'2.11.0',
'2.11.1',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update RELEASE.md with the information to update version here as well.

'2.10.1',
'2.8.0',
'2.6.1',
Expand Down
Binary file removed tests/trivup/trivup-0.13.0.tar.gz
Binary file not shown.
Binary file added tests/trivup/trivup-0.14.0.tar.gz
Binary file not shown.
13 changes: 11 additions & 2 deletions tools/RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ RCs, so it only needs to be set once for each release.

Commit these changes with a commit-message containing the version:

$ git commit -m "Version v0.11.4rc1" src/confluent_kafka/src/confluent_kafka.h docs/conf.py pyproject.toml
$ git commit -m "Version v0.11.4rc1" src/confluent_kafka/src/confluent_kafka.h pyproject.toml


## 5. Tag, CI build, wheel verification, upload
Expand Down Expand Up @@ -254,7 +254,9 @@ the git history to look tidy, remove any test tags, and then go back to



### 5.5.2. CANDIDATE ITERATION: Create PR
### 5.5.2. Create PR

**CANDIDATE ITERATION:**

Once all test and RC builds are successful and have been verified and you're
ready to go ahead with the release, it is time create a PR to have the
Expand All @@ -269,6 +271,13 @@ so try to keep the commit history tidy from the start in the RC branch.
Create a PR for the RC branch and add team mates as reviewers and wait for
review approval.

**RELEASE ITERATION:**

Same as the _CANDIDATE ITERATION_ plus:

Update `tests/soak/setup_all_versions.py` with the released version
to be tested in the soak test.


### 5.5.3. CANDIDATE ITERATION: Merge PR

Expand Down
14 changes: 14 additions & 0 deletions tools/source-package-verification.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,20 @@ set -e
pip install -r requirements/requirements-tests-install.txt
pip install -U build

# Cache trivup Apache Kafka versions

BASE=$PWD
for version in 3.9.0 4.0.0; do
artifact pull project kafka_2.13-$version.tgz || true
if [[ ! -f ./kafka_2.13-$version.tgz ]]; then
wget -O ./kafka_2.13-$version.tgz "https://archive.apache.org/dist/kafka/$version/kafka_2.13-$version.tgz"
artifact push project ./kafka_2.13-$version.tgz || true
fi
mkdir -p tmp-KafkaCluster/KafkaCluster/KafkaBrokerApp/kafka/$version
(cd tmp-KafkaCluster/KafkaCluster/KafkaBrokerApp/kafka/$version && \
tar -xvf $BASE/kafka_2.13-$version.tgz --strip-components=1)
done

lib_dir=dest/runtimes/$OS_NAME-$ARCH/native
tools/wheels/install-librdkafka.sh "${LIBRDKAFKA_VERSION#v}" dest
export CFLAGS="$CFLAGS -I${PWD}/dest/build/native/include"
Expand Down