diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b0105f44..33e15f9f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ All notable changes to this project will be documented in this file. - nifi: Backport NIFI-15901 to 2.x versions ([#1481]). - testing-tools: Added grpcurl utility ([#1493]). - opa: Add `1.16.2` ([#1509]). +- kafka: Add `3.9.2` and `4.2.1` ([#1483]) ### Changed @@ -39,6 +40,7 @@ All notable changes to this project will be documented in this file. [#1474]: https://github.com/stackabletech/docker-images/pull/1474 [#1476]: https://github.com/stackabletech/docker-images/pull/1476 [#1481]: https://github.com/stackabletech/docker-images/pull/1481 +[#1483]: https://github.com/stackabletech/docker-images/pull/1483 [#1493]: https://github.com/stackabletech/docker-images/pull/1493 [#1509]: https://github.com/stackabletech/docker-images/pull/1509 [#1510]: https://github.com/stackabletech/docker-images/pull/1510 diff --git a/kafka/boil-config.toml b/kafka/boil-config.toml index 0d5d0a387..539e5d327 100644 --- a/kafka/boil-config.toml +++ b/kafka/boil-config.toml @@ -12,6 +12,17 @@ java-devel = "21" scala-version = "2.13" jmx-exporter-version = "1.3.0" +[versions."3.9.2".local-images] +java-base = "21" +java-devel = "21" +"kafka/kcat" = "1.7.0" +"kafka/kafka-opa-plugin" = "1.5.1" +"shared/reload4j" = "1.2.25" + +[versions."3.9.2".build-arguments] +scala-version = "2.13" +jmx-exporter-version = "1.3.0" + [versions."4.1.1".local-images] java-base = "24" java-devel = "24" @@ -25,3 +36,18 @@ java-devel = "24" [versions."4.1.1".build-arguments] scala-version = "2.13" jmx-exporter-version = "1.3.0" + +[versions."4.2.1".local-images] +# For JVM compatibility see README.md and docs/getting-started/compatibility.md in the Kafka repository +java-base = "25" +java-devel = "25" +"kafka/kcat" = "1.7.0" +"kafka/kafka-opa-plugin" = "1.5.1" +# TODO: this is not used in this version but it's added +# to avoid major changes to the Kafka image build on short notice. +# Building this image is quick and in CI should not even be noticed. +"shared/reload4j" = "1.2.25" + +[versions."4.2.1".build-arguments] +scala-version = "2.13" +jmx-exporter-version = "1.3.0" diff --git a/kafka/stackable/patches/3.9.2/0001-Add-CycloneDX-plugin.patch b/kafka/stackable/patches/3.9.2/0001-Add-CycloneDX-plugin.patch new file mode 100644 index 000000000..2d678844b --- /dev/null +++ b/kafka/stackable/patches/3.9.2/0001-Add-CycloneDX-plugin.patch @@ -0,0 +1,62 @@ +From c19817ee82f7b90aac0a8be66e3efe17f268eb35 Mon Sep 17 00:00:00 2001 +From: Lukas Voetmand +Date: Thu, 17 Oct 2024 11:01:40 +0200 +Subject: Add CycloneDX plugin + +--- + build.gradle | 42 ++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 42 insertions(+) + +diff --git a/build.gradle b/build.gradle +index 381e964d13..f51f410858 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -48,6 +48,48 @@ plugins { + // We are going to drop JDK8 support. Hence, the spotless is upgrade to newest version and be applied only if the build env is compatible with JDK 11. + // spotless 6.15.0+ has issue in runtime with JDK8 even through we define it with `apply:false`. see https://github.com/diffplug/spotless/issues/2156 for more details + id 'com.diffplug.spotless' version "6.14.0" apply false ++ id 'org.cyclonedx.bom' version '1.10.0' ++} ++ ++cyclonedxBom { ++ // Specified the type of project being built. Defaults to 'library' ++ projectType = "application" ++ // Specified the version of the CycloneDX specification to use. Defaults to '1.5' ++ schemaVersion = "1.5" ++ // Boms destination directory. Defaults to 'build/reports' ++ destination = file("build/reports") ++ // The file name for the generated BOMs (before the file format suffix). Defaults to 'bom' ++ outputName = "bom" ++ // The file format generated, can be xml, json or all for generating both. Defaults to 'all' ++ outputFormat = "json" ++ includeConfigs = ["runtimeClasspath"] ++ // Exclude test components. This list needs to be checked and, if it changed, updated for every new Kafka version. ++ // The list can be obtained by running `gradle projects | grep upgrade-system-tests` ++ skipProjects = [ ++ 'upgrade-system-tests-0100', ++ 'upgrade-system-tests-0101', ++ 'upgrade-system-tests-0102', ++ 'upgrade-system-tests-0110', ++ 'upgrade-system-tests-10', ++ 'upgrade-system-tests-11', ++ 'upgrade-system-tests-20', ++ 'upgrade-system-tests-21', ++ 'upgrade-system-tests-22', ++ 'upgrade-system-tests-23', ++ 'upgrade-system-tests-24', ++ 'upgrade-system-tests-25', ++ 'upgrade-system-tests-26', ++ 'upgrade-system-tests-27', ++ 'upgrade-system-tests-28', ++ 'upgrade-system-tests-30', ++ 'upgrade-system-tests-31', ++ 'upgrade-system-tests-32', ++ 'upgrade-system-tests-33', ++ 'upgrade-system-tests-34', ++ 'upgrade-system-tests-35', ++ 'upgrade-system-tests-36', ++ 'upgrade-system-tests-37' ++ ] + } + + ext { diff --git a/kafka/stackable/patches/3.9.2/0002-Change-Gradle-to-use-the-Nexus-Build-Repo.patch b/kafka/stackable/patches/3.9.2/0002-Change-Gradle-to-use-the-Nexus-Build-Repo.patch new file mode 100644 index 000000000..62add1871 --- /dev/null +++ b/kafka/stackable/patches/3.9.2/0002-Change-Gradle-to-use-the-Nexus-Build-Repo.patch @@ -0,0 +1,35 @@ +From 343021661d7ed166a7555e6bce9da4805340f6cb Mon Sep 17 00:00:00 2001 +From: Lars Francke +Date: Thu, 12 Dec 2024 10:09:47 +0100 +Subject: Change Gradle to use the Nexus Build Repo + +--- + build.gradle | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/build.gradle b/build.gradle +index f51f410858..5ccd99e024 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -20,7 +20,9 @@ import java.nio.charset.StandardCharsets + + buildscript { + repositories { +- mavenCentral() ++ maven { ++ url 'https://build-repo.stackable.tech/repository/maven-public/' ++ } + } + apply from: "$rootDir/gradle/dependencies.gradle" + +@@ -168,7 +170,9 @@ ext { + allprojects { + + repositories { +- mavenCentral() ++ maven { ++ url 'https://build-repo.stackable.tech/repository/maven-public/' ++ } + } + + dependencyUpdates { diff --git a/kafka/stackable/patches/3.9.2/0003-Build-custom-Stackable-version.patch b/kafka/stackable/patches/3.9.2/0003-Build-custom-Stackable-version.patch new file mode 100644 index 000000000..006764ce5 --- /dev/null +++ b/kafka/stackable/patches/3.9.2/0003-Build-custom-Stackable-version.patch @@ -0,0 +1,140 @@ +From 944ef05a7468a0437c0da923898aecae983eb5f6 Mon Sep 17 00:00:00 2001 +From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> +Date: Mon, 1 Jun 2026 08:52:19 +0200 +Subject: Build custom Stackable version + +How it was done: + +Replace in files in root dir (do not garble .git): + +for d in $(ls -p|grep -v /); do find $d -type f -exec sed -i 's/3\.9\.2/3.9.2-stackable0.0.0-dev/g' {} +; done + +Replace in all subdirs: + +for d in $(ls -d */); do find $d -type f -exec sed -i 's/3\.9\.2/3.9.2-stackable0.0.0-dev/g' {} +; done +--- + docs/getting-started/upgrade.md | 2 +- + docs/operations/kraft.md | 2 +- + gradle.properties | 2 +- + kafka-merge-pr.py | 2 +- + streams/quickstart/java/pom.xml | 2 +- + .../java/src/main/resources/archetype-resources/pom.xml | 2 +- + streams/quickstart/pom.xml | 2 +- + tests/kafkatest/__init__.py | 2 +- + tests/kafkatest/version.py | 2 +- + 9 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/docs/getting-started/upgrade.md b/docs/getting-started/upgrade.md +index d7347b3ee8..7f888fc90a 100644 +--- a/docs/getting-started/upgrade.md ++++ b/docs/getting-started/upgrade.md +@@ -58,7 +58,7 @@ If you are upgrading from version 2.4.0 or above, and you have not overridden th + + + +-### Notable changes in 3.9.2 ++### Notable changes in 3.9.2-stackable0.0.0-dev + + * There is a new server configuration, `alter.config.policy.kraft.compatibility.enable`, which ensures that an AlterConfigPolicy is invoked consistently between KRaft and ZooKeeper modes. To enable this behavior, set the property to `true` in `server.properties`. For backward compatibility, the default value is `false`. See [KIP-1252](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=399279475) for more details. + +diff --git a/docs/operations/kraft.md b/docs/operations/kraft.md +index a63ce05d4e..a8caef2d2b 100644 +--- a/docs/operations/kraft.md ++++ b/docs/operations/kraft.md +@@ -275,7 +275,7 @@ In general, the migration process passes through several phases. + * After the migration has been finalized, it is not possible to revert back to ZooKeeper mode. + * During the migration, if a ZK broker is running with multiple log directories, any directory failure will cause the broker to shutdown. Brokers with broken log directories will only be able to migrate to KRaft once the directories are repaired. For further details refer to [KAFKA-16431](https://issues.apache.org/jira/browse/KAFKA-16431). + * As noted above, some features are not fully implemented in KRaft mode. If you are using one of those features, you will not be able to migrate to KRaft yet. +- * There is a known inconsistency between ZK and KRaft modes in the arguments passed to an `AlterConfigPolicy`, when operations of type `SUBTRACT`, `DELETE` or `APPEND` are processed. This has been addressed with a compatibility flag in version 3.9.2. For further details see [KIP-1252](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=399279475). ++ * There is a known inconsistency between ZK and KRaft modes in the arguments passed to an `AlterConfigPolicy`, when operations of type `SUBTRACT`, `DELETE` or `APPEND` are processed. This has been addressed with a compatibility flag in version 3.9.2-stackable0.0.0-dev. For further details see [KIP-1252](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=399279475). + + + +diff --git a/gradle.properties b/gradle.properties +index 3c674c89c1..24bf3d2259 100644 +--- a/gradle.properties ++++ b/gradle.properties +@@ -22,7 +22,7 @@ group=org.apache.kafka + # - streams/quickstart/pom.xml + # - streams/quickstart/java/src/main/resources/archetype-resources/pom.xml + # - streams/quickstart/java/pom.xml +-version=3.9.2 ++version=3.9.2-stackable0.0.0-dev + scalaVersion=2.13.15 + # Adding swaggerVersion in gradle.properties to have a single version in place for swagger + # New version of Swagger 2.2.14 requires minimum JDK 11. +diff --git a/kafka-merge-pr.py b/kafka-merge-pr.py +index 4ac7434065..4f5f69d872 100755 +--- a/kafka-merge-pr.py ++++ b/kafka-merge-pr.py +@@ -70,7 +70,7 @@ TEMP_BRANCH_PREFIX = "PR_TOOL" + + DEV_BRANCH_NAME = "trunk" + +-DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "3.9.2") ++DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "3.9.2-stackable0.0.0-dev") + + ORIGINAL_HEAD = "" + +diff --git a/streams/quickstart/java/pom.xml b/streams/quickstart/java/pom.xml +index f8d1bd9e54..2ee0861269 100644 +--- a/streams/quickstart/java/pom.xml ++++ b/streams/quickstart/java/pom.xml +@@ -26,7 +26,7 @@ + + org.apache.kafka + streams-quickstart +- 3.9.2 ++ 3.9.2-stackable0.0.0-dev + .. + + +diff --git a/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml b/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml +index b62ab64acf..3d3d881096 100644 +--- a/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml ++++ b/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml +@@ -29,7 +29,7 @@ + + + UTF-8 +- 3.9.2 ++ 3.9.2-stackable0.0.0-dev + 1.7.36 + + +diff --git a/streams/quickstart/pom.xml b/streams/quickstart/pom.xml +index ac81ea06bb..1686b2bd56 100644 +--- a/streams/quickstart/pom.xml ++++ b/streams/quickstart/pom.xml +@@ -22,7 +22,7 @@ + org.apache.kafka + streams-quickstart + pom +- 3.9.2 ++ 3.9.2-stackable0.0.0-dev + + Kafka Streams :: Quickstart + +diff --git a/tests/kafkatest/__init__.py b/tests/kafkatest/__init__.py +index 1362dad9ca..e20c655bbf 100644 +--- a/tests/kafkatest/__init__.py ++++ b/tests/kafkatest/__init__.py +@@ -22,4 +22,4 @@ + # Instead, in development branches, the version should have a suffix of the form ".devN" + # + # For example, when Kafka is at version 1.0.0-SNAPSHOT, this should be something like "1.0.0.dev0" +-__version__ = '3.9.2' ++__version__ = '3.9.2-stackable0.0.0-dev' +diff --git a/tests/kafkatest/version.py b/tests/kafkatest/version.py +index fa301e6a8d..1980c35d11 100644 +--- a/tests/kafkatest/version.py ++++ b/tests/kafkatest/version.py +@@ -122,7 +122,7 @@ def get_version(node=None): + return DEV_BRANCH + + DEV_BRANCH = KafkaVersion("dev") +-DEV_VERSION = KafkaVersion("3.9.2-SNAPSHOT") ++DEV_VERSION = KafkaVersion("3.9.2-stackable0.0.0-dev-SNAPSHOT") + + # This should match the LATEST_PRODUCTION version defined in MetadataVersion.java + LATEST_STABLE_METADATA_VERSION = "3.9-IV0" diff --git a/kafka/stackable/patches/3.9.2/patchable.toml b/kafka/stackable/patches/3.9.2/patchable.toml new file mode 100644 index 000000000..c5bd561ab --- /dev/null +++ b/kafka/stackable/patches/3.9.2/patchable.toml @@ -0,0 +1 @@ +base = "5e9866f43ab8e7e41ef39e5584ac50019381328d" diff --git a/kafka/stackable/patches/4.2.1/0001-Add-CycloneDX-plugin.patch b/kafka/stackable/patches/4.2.1/0001-Add-CycloneDX-plugin.patch new file mode 100644 index 000000000..3759c2515 --- /dev/null +++ b/kafka/stackable/patches/4.2.1/0001-Add-CycloneDX-plugin.patch @@ -0,0 +1,67 @@ +From 5ef351ca945bcaa8346ef066ba00fd9288a4f443 Mon Sep 17 00:00:00 2001 +From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> +Date: Wed, 13 May 2026 16:30:33 +0300 +Subject: Add CycloneDX plugin + +--- + build.gradle | 45 +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 45 insertions(+) + +diff --git a/build.gradle b/build.gradle +index c07cd3b047..effbe0f65d 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -41,8 +41,53 @@ plugins { + id 'org.scoverage' version '8.1' apply false + id 'com.gradleup.shadow' version '8.3.9' apply false + id 'com.diffplug.spotless' version "8.0.0" ++ id 'org.cyclonedx.bom' version '3.2.4' + } + ++cyclonedxBom { ++ // Specified the type of project being built. Defaults to 'library' ++ projectType = org.cyclonedx.model.Component.Type.APPLICATION ++ // Specified the version of the CycloneDX specification to use. Defaults to VERSION_16. ++ schemaVersion = org.cyclonedx.Version.VERSION_15 ++ jsonOutput = file("build/reports/bom.json") ++ xmlOutput.unsetConvention() ++} ++ ++// Exclude test components. This list needs to be checked and, if it changed, updated for every new Kafka version. ++// The list can be obtained by running `gradle projects | grep upgrade-system-tests` ++def skipCyclonedxProjects = [ ++ ':streams:upgrade-system-tests-0110', ++ ':streams:upgrade-system-tests-10', ++ ':streams:upgrade-system-tests-11', ++ ':streams:upgrade-system-tests-20', ++ ':streams:upgrade-system-tests-21', ++ ':streams:upgrade-system-tests-22', ++ ':streams:upgrade-system-tests-23', ++ ':streams:upgrade-system-tests-24', ++ ':streams:upgrade-system-tests-25', ++ ':streams:upgrade-system-tests-26', ++ ':streams:upgrade-system-tests-27', ++ ':streams:upgrade-system-tests-28', ++ ':streams:upgrade-system-tests-30', ++ ':streams:upgrade-system-tests-31', ++ ':streams:upgrade-system-tests-32', ++ ':streams:upgrade-system-tests-33', ++ ':streams:upgrade-system-tests-34', ++ ':streams:upgrade-system-tests-35', ++ ':streams:upgrade-system-tests-36', ++ ':streams:upgrade-system-tests-37', ++ ':streams:upgrade-system-tests-38', ++ ':streams:upgrade-system-tests-39', ++ ':streams:upgrade-system-tests-40', ++ ':streams:upgrade-system-tests-41', ++] ++ ++configure(subprojects.findAll { skipCyclonedxProjects.contains(it.path) }) { ++ tasks.named('cyclonedxDirectBom') { ++ enabled = false ++ } ++} ++ + ext { + minClientJavaVersion = 11 + minNonClientJavaVersion = 17 diff --git a/kafka/stackable/patches/4.2.1/0002-Change-Gradle-to-use-the-Nexus-Build-Repo.patch b/kafka/stackable/patches/4.2.1/0002-Change-Gradle-to-use-the-Nexus-Build-Repo.patch new file mode 100644 index 000000000..6e82d1c21 --- /dev/null +++ b/kafka/stackable/patches/4.2.1/0002-Change-Gradle-to-use-the-Nexus-Build-Repo.patch @@ -0,0 +1,35 @@ +From e4e184668e99d71e2cbdebfd55ef4ba3322a6508 Mon Sep 17 00:00:00 2001 +From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> +Date: Wed, 13 May 2026 16:31:44 +0300 +Subject: Change Gradle to use the Nexus Build Repo + +--- + build.gradle | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/build.gradle b/build.gradle +index effbe0f65d..bd840210bd 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -18,7 +18,9 @@ import java.nio.charset.StandardCharsets + + buildscript { + repositories { +- mavenCentral() ++ maven { ++ url 'https://build-repo.stackable.tech/repository/maven-public/' ++ } + } + apply from: "$rootDir/gradle/dependencies.gradle" + +@@ -212,7 +214,9 @@ ext { + allprojects { + + repositories { +- mavenCentral() ++ maven { ++ url 'https://build-repo.stackable.tech/repository/maven-public/' ++ } + } + + dependencyUpdates { diff --git a/kafka/stackable/patches/4.2.1/0003-Build-custom-Stackable-version.patch b/kafka/stackable/patches/4.2.1/0003-Build-custom-Stackable-version.patch new file mode 100644 index 000000000..853b81e07 --- /dev/null +++ b/kafka/stackable/patches/4.2.1/0003-Build-custom-Stackable-version.patch @@ -0,0 +1,114 @@ +From 915f1d9eb9c1fd7bf9c15a52a353c33475efa6a3 Mon Sep 17 00:00:00 2001 +From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> +Date: Fri, 29 May 2026 17:33:00 +0200 +Subject: Build custom Stackable version + +How it was done: + +Replace in files in root dir (do not garble .git): + +for d in $(ls -p|grep -v /); do find $d -type f -exec sed -i +'s/4\.2\.1/4.2.1-stackable0.0.0-dev/g' {} +; done + +Replace in all subdirs: + +for d in $(ls -d */); do find $d -type f -exec sed -i +'s/4\.2\.1/4.2.1-stackable0.0.0-dev/g' {} +; done +--- + committer-tools/kafka-merge-pr.py | 2 +- + gradle.properties | 2 +- + streams/quickstart/java/pom.xml | 2 +- + .../java/src/main/resources/archetype-resources/pom.xml | 2 +- + streams/quickstart/pom.xml | 2 +- + tests/kafkatest/__init__.py | 2 +- + tests/kafkatest/version.py | 2 +- + 7 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/committer-tools/kafka-merge-pr.py b/committer-tools/kafka-merge-pr.py +index 92dabc607c..5611a8beeb 100755 +--- a/committer-tools/kafka-merge-pr.py ++++ b/committer-tools/kafka-merge-pr.py +@@ -70,7 +70,7 @@ TEMP_BRANCH_PREFIX = "PR_TOOL" + + DEV_BRANCH_NAME = "trunk" + +-DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "4.2.1") ++DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "4.2.1-stackable0.0.0-dev") + + ORIGINAL_HEAD = "" + +diff --git a/gradle.properties b/gradle.properties +index 8dad15054c..27c124ca21 100644 +--- a/gradle.properties ++++ b/gradle.properties +@@ -14,7 +14,7 @@ + # limitations under the License. + + group=org.apache.kafka +-version=4.2.1 ++version=4.2.1-stackable0.0.0-dev + scalaVersion=2.13.17 + # Adding swaggerVersion in gradle.properties to have a single version in place for swagger + swaggerVersion=2.2.39 +diff --git a/streams/quickstart/java/pom.xml b/streams/quickstart/java/pom.xml +index 4930378053..41b602f98e 100644 +--- a/streams/quickstart/java/pom.xml ++++ b/streams/quickstart/java/pom.xml +@@ -26,7 +26,7 @@ + + org.apache.kafka + streams-quickstart +- 4.2.1 ++ 4.2.1-stackable0.0.0-dev + .. + + +diff --git a/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml b/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml +index e78fa54f59..bd440c365d 100644 +--- a/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml ++++ b/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml +@@ -29,7 +29,7 @@ + + + UTF-8 +- 4.2.1 ++ 4.2.1-stackable0.0.0-dev + 2.0.16 + + +diff --git a/streams/quickstart/pom.xml b/streams/quickstart/pom.xml +index de77049571..3964d486e1 100644 +--- a/streams/quickstart/pom.xml ++++ b/streams/quickstart/pom.xml +@@ -22,7 +22,7 @@ + org.apache.kafka + streams-quickstart + pom +- 4.2.1 ++ 4.2.1-stackable0.0.0-dev + + Kafka Streams :: Quickstart + +diff --git a/tests/kafkatest/__init__.py b/tests/kafkatest/__init__.py +index 49861a2ef2..2f50efe072 100644 +--- a/tests/kafkatest/__init__.py ++++ b/tests/kafkatest/__init__.py +@@ -22,4 +22,4 @@ + # Instead, in development branches, the version should have a suffix of the form ".devN" + # + # For example, when Kafka is at version 1.0.0-SNAPSHOT, this should be something like "1.0.0.dev0" +-__version__ = '4.2.1' ++__version__ = '4.2.1-stackable0.0.0-dev' +diff --git a/tests/kafkatest/version.py b/tests/kafkatest/version.py +index d0297f10f9..10474bdf43 100644 +--- a/tests/kafkatest/version.py ++++ b/tests/kafkatest/version.py +@@ -128,7 +128,7 @@ def get_version(node=None): + return DEV_BRANCH + + DEV_BRANCH = KafkaVersion("dev") +-DEV_VERSION = KafkaVersion("4.2.1") ++DEV_VERSION = KafkaVersion("4.2.1-stackable0.0.0-dev") + + LATEST_STABLE_TRANSACTION_VERSION = 2 + # This should match the LATEST_PRODUCTION version defined in MetadataVersion.java diff --git a/kafka/stackable/patches/4.2.1/0004-Include-jackson-dataformat-xml-dependency.patch b/kafka/stackable/patches/4.2.1/0004-Include-jackson-dataformat-xml-dependency.patch new file mode 100644 index 000000000..60740cd29 --- /dev/null +++ b/kafka/stackable/patches/4.2.1/0004-Include-jackson-dataformat-xml-dependency.patch @@ -0,0 +1,133 @@ +From 1f99c4cf15723be1ce1de65a7d5559b5bb29cb7a Mon Sep 17 00:00:00 2001 +From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> +Date: Fri, 29 May 2026 17:43:58 +0200 +Subject: Include jackson dataformat xml dependency + +Add jacksonDatabindXml everywhere near jacjsonDatabindYaml in +build.gradle +--- + build.gradle | 15 ++++++++++++++- + gradle/dependencies.gradle | 1 + + 2 files changed, 15 insertions(+), 1 deletion(-) + +diff --git a/build.gradle b/build.gradle +index bd840210bd..487c2d06dd 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -188,13 +188,15 @@ ext { + libs.slf4jLog4j2, + libs.junitPlatformLanucher, + libs.jacksonDatabindYaml, ++ libs.jacksonDatabindXml, + project(":test-common:test-common-util") + ] + + log4jReleaseLibs = [ + libs.slf4jLog4j2, + libs.log4j1Bridge2Api, +- libs.jacksonDatabindYaml ++ libs.jacksonDatabindYaml, ++ libs.jacksonDatabindXml, + ] + + log4j2Libs = [ +@@ -1122,6 +1124,7 @@ project(':core') { + implementation libs.jacksonDataformatCsv + implementation libs.jacksonJDK8Datatypes + implementation libs.jacksonDatabindYaml ++ implementation libs.jacksonDatabindXml + implementation libs.joptSimple + implementation libs.jose4j + implementation libs.metrics +@@ -1537,6 +1540,7 @@ project(':group-coordinator') { + testImplementation project(':server-common').sourceSets.test.output + testImplementation project(':coordinator-common').sourceSets.test.output + testImplementation libs.jacksonDatabindYaml ++ testImplementation libs.jacksonDatabindXml + testImplementation libs.junitJupiter + testImplementation libs.mockitoCore + testImplementation testLog4j2Libs +@@ -1659,6 +1663,7 @@ project(':test-common:test-common-runtime') { + implementation libs.junitPlatformLanucher + implementation libs.junitJupiter + implementation libs.jacksonDatabindYaml ++ implementation libs.jacksonDatabindXml + implementation libs.slf4jApi + + testImplementation libs.junitJupiter +@@ -2133,6 +2138,7 @@ project(':raft') { + testImplementation project(':clients') + testImplementation project(':clients').sourceSets.test.output + testImplementation libs.jacksonDatabindYaml ++ testImplementation libs.jacksonDatabindXml + testImplementation libs.junitJupiter + testImplementation libs.mockitoCore + testImplementation libs.jqwik +@@ -2230,6 +2236,7 @@ project(':server-common') { + testImplementation project(':clients') + testImplementation project(':clients').sourceSets.test.output + testImplementation libs.jacksonDatabindYaml ++ testImplementation libs.jacksonDatabindXml + testImplementation libs.junitJupiter + testImplementation libs.mockitoCore + testImplementation testLog4j2Libs +@@ -2371,6 +2378,7 @@ project(':storage') { + testImplementation project(':transaction-coordinator') + testImplementation libs.hamcrest + testImplementation libs.jacksonDatabindYaml ++ testImplementation libs.jacksonDatabindXml + testImplementation libs.junitJupiter + testImplementation libs.mockitoCore + testImplementation libs.bcpkix +@@ -2689,6 +2697,7 @@ project(':shell') { + testImplementation project(':server-common') + testImplementation project(':server-common').sourceSets.test.output + testImplementation libs.jacksonDatabindYaml ++ testImplementation libs.jacksonDatabindXml + testImplementation libs.junitJupiter + testImplementation testLog4j2Libs + +@@ -2738,6 +2747,7 @@ project(':streams') { + + testImplementation project(':clients').sourceSets.test.output + testImplementation libs.jacksonDatabindYaml ++ testImplementation libs.jacksonDatabindXml + testImplementation libs.junitJupiter + testImplementation libs.bcpkix + testImplementation libs.hamcrest +@@ -2883,6 +2893,7 @@ project(':streams:streams-scala') { + testImplementation project(':streams:test-utils') + + testImplementation libs.jacksonDatabindYaml ++ testImplementation libs.jacksonDatabindXml + testImplementation libs.junitJupiter + testImplementation libs.mockitoJunitJupiter // supports MockitoExtension + testImplementation testLog4j2Libs +@@ -2987,6 +2998,7 @@ project(':streams:test-utils') { + + testImplementation project(':clients').sourceSets.test.output + testImplementation libs.jacksonDatabindYaml ++ testImplementation libs.jacksonDatabindXml + testImplementation libs.junitJupiter + testImplementation libs.mockitoCore + testImplementation libs.hamcrest +@@ -3682,6 +3694,7 @@ project(':connect:runtime') { + testImplementation project(':server-common').sourceSets.test.output + + testImplementation libs.jacksonDatabindYaml ++ testImplementation libs.jacksonDatabindXml + testImplementation libs.junitJupiter + testImplementation libs.mockitoCore + testImplementation libs.mockitoJunitJupiter +diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle +index de63116795..19d4117dca 100644 +--- a/gradle/dependencies.gradle ++++ b/gradle/dependencies.gradle +@@ -159,6 +159,7 @@ libs += [ + jacksonAnnotations: "com.fasterxml.jackson.core:jackson-annotations:$versions.jacksonAnnotations", + jacksonDatabind: "com.fasterxml.jackson.core:jackson-databind:$versions.jackson", + jacksonDatabindYaml: "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:$versions.jackson", ++ jacksonDatabindXml: "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:$versions.jackson", + jacksonDataformatCsv: "com.fasterxml.jackson.dataformat:jackson-dataformat-csv:$versions.jackson", + jacksonJDK8Datatypes: "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:$versions.jackson", + jacksonBlackbird: "com.fasterxml.jackson.module:jackson-module-blackbird:$versions.jackson", diff --git a/kafka/stackable/patches/4.2.1/patchable.toml b/kafka/stackable/patches/4.2.1/patchable.toml new file mode 100644 index 000000000..9ae3d09e9 --- /dev/null +++ b/kafka/stackable/patches/4.2.1/patchable.toml @@ -0,0 +1 @@ +base = "18d5ecd939c8d510fdd72d0abb1f7099659dcd58"