diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml index fc76fd059..4ad493aee 100644 --- a/.semaphore/semaphore.yml +++ b/.semaphore/semaphore.yml @@ -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 diff --git a/CHANGELOG.md b/CHANGELOG.md index af9f47012..beda834e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 @@ -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: diff --git a/examples/docker/Dockerfile.alpine b/examples/docker/Dockerfile.alpine index c8db6ed74..888245869 100644 --- a/examples/docker/Dockerfile.alpine +++ b/examples/docker/Dockerfile.alpine @@ -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" ENV KCAT_VERSION="master" ENV CKP_VERSION="master" diff --git a/pyproject.toml b/pyproject.toml index 8d989b590..719d3ba5f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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", diff --git a/requirements/requirements-tests-install.txt b/requirements/requirements-tests-install.txt index 4a4e628f4..ff5b3c348 100644 --- a/requirements/requirements-tests-install.txt +++ b/requirements/requirements-tests-install.txt @@ -4,4 +4,4 @@ -r requirements-avro.txt -r requirements-protobuf.txt -r requirements-json.txt -tests/trivup/trivup-0.13.0.tar.gz \ No newline at end of file +tests/trivup/trivup-0.14.0.tar.gz \ No newline at end of file diff --git a/src/confluent_kafka/src/confluent_kafka.h b/src/confluent_kafka/src/confluent_kafka.h index d1dab8e95..fb3ac997a 100644 --- a/src/confluent_kafka/src/confluent_kafka.h +++ b/src/confluent_kafka/src/confluent_kafka.h @@ -38,7 +38,7 @@ /** * @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 @@ -46,19 +46,19 @@ * 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 #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 diff --git a/tests/soak/setup_all_versions.py b/tests/soak/setup_all_versions.py index 341cfc5bf..a7d9d4cc2 100755 --- a/tests/soak/setup_all_versions.py +++ b/tests/soak/setup_all_versions.py @@ -20,7 +20,7 @@ PYTHON_VERSIONS = [ # '2.12.0', - '2.11.0', + '2.11.1', '2.10.1', '2.8.0', '2.6.1', diff --git a/tests/trivup/trivup-0.13.0.tar.gz b/tests/trivup/trivup-0.13.0.tar.gz deleted file mode 100644 index 28b94a9ad..000000000 Binary files a/tests/trivup/trivup-0.13.0.tar.gz and /dev/null differ diff --git a/tests/trivup/trivup-0.14.0.tar.gz b/tests/trivup/trivup-0.14.0.tar.gz new file mode 100644 index 000000000..a8965847a Binary files /dev/null and b/tests/trivup/trivup-0.14.0.tar.gz differ diff --git a/tools/RELEASE.md b/tools/RELEASE.md index 33c5878f6..b5dc23871 100644 --- a/tools/RELEASE.md +++ b/tools/RELEASE.md @@ -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 @@ -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 @@ -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 diff --git a/tools/source-package-verification.sh b/tools/source-package-verification.sh index 9d3662337..0081d584e 100755 --- a/tools/source-package-verification.sh +++ b/tools/source-package-verification.sh @@ -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"