From 3d3bf26b08b1471577bd01d6ba581461e9363f0d Mon Sep 17 00:00:00 2001 From: dervoeti Date: Fri, 13 Jun 2025 15:19:03 +0200 Subject: [PATCH 1/4] feat: support custom product versions --- kafka/Dockerfile | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/kafka/Dockerfile b/kafka/Dockerfile index 21cfa10f1..b819c276d 100644 --- a/kafka/Dockerfile +++ b/kafka/Dockerfile @@ -6,6 +6,7 @@ FROM stackable/image/kafka/kcat AS kcat FROM stackable/image/java-devel AS kafka-builder ARG PRODUCT +ARG RELEASE ARG SCALA ARG OPA_AUTHORIZER ARG JMX_EXPORTER @@ -21,22 +22,34 @@ COPY --chown=${STACKABLE_USER_UID}:0 kafka/stackable/patches/${PRODUCT} /stackab RUN <${ORIGINAL_VERSION}<\/kafka.version>/${NEW_VERSION}<\/kafka.version>/g" streams/quickstart/java/src/main/resources/archetype-resources/pom.xml +sed -i "s/${ORIGINAL_VERSION}<\/version>/${NEW_VERSION}<\/version>/g" streams/quickstart/pom.xml +sed -i "s/${ORIGINAL_VERSION}<\/version>/${NEW_VERSION}<\/version>/g" streams/quickstart/java/pom.xml + # Create snapshot of the source code including custom patches -tar -czf /stackable/kafka-${PRODUCT}-src.tar.gz . +tar -czf /stackable/kafka-${NEW_VERSION}-src.tar.gz . # TODO: Try to install gradle via package manager (if possible) instead of fetching it from the internet # We don't specify "-x test" to skip the tests, as we might bump some Kafka internal dependencies in the future and # it's a good idea to run the tests in this case. ./gradlew clean releaseTarGz ./gradlew cyclonedxBom -tar -xf core/build/distributions/kafka_${SCALA}-${PRODUCT}.tgz -C /stackable -cp build/reports/bom.json /stackable/kafka_${SCALA}-${PRODUCT}.cdx.json -rm -rf /stackable/kafka_${SCALA}-${PRODUCT}/site-docs/ +tar -xf core/build/distributions/kafka_${SCALA}-${NEW_VERSION}.tgz -C /stackable +cp build/reports/bom.json /stackable/kafka_${SCALA}-${NEW_VERSION}.cdx.json +rm -rf /stackable/kafka_${SCALA}-${NEW_VERSION}/site-docs/ (cd .. && rm -rf ${PRODUCT}) # TODO (@NickLarsenNZ): Compile from source: https://github.com/StyraInc/opa-kafka-plugin curl https://repo.stackable.tech/repository/packages/kafka-opa-authorizer/opa-authorizer-${OPA_AUTHORIZER}-all.jar \ - -o /stackable/kafka_${SCALA}-${PRODUCT}/libs/opa-authorizer-${OPA_AUTHORIZER}-all.jar + -o /stackable/kafka_${SCALA}-${NEW_VERSION}/libs/opa-authorizer-${OPA_AUTHORIZER}-all.jar # JMX exporter curl https://repo.stackable.tech/repository/packages/jmx-exporter/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar \ @@ -65,9 +78,9 @@ LABEL \ summary="The Stackable image for Apache Kafka." \ description="This image is deployed by the Stackable Operator for Apache Kafka." -COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka_${SCALA}-${PRODUCT} /stackable/kafka_${SCALA}-${PRODUCT} -COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka_${SCALA}-${PRODUCT}.cdx.json /stackable/kafka_${SCALA}-${PRODUCT}/kafka_${SCALA}-${PRODUCT}.cdx.json -COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka-${PRODUCT}-src.tar.gz /stackable +COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE} /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE} +COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE}.cdx.json /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE}/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE}.cdx.json +COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/kafka-${PRODUCT}-stackable${RELEASE}-src.tar.gz /stackable COPY --chown=${STACKABLE_USER_UID}:0 --from=kafka-builder /stackable/jmx/ /stackable/jmx/ COPY --chown=${STACKABLE_USER_UID}:0 --from=kcat /stackable/kcat /stackable/bin/kcat-${KAFKA_KCAT} COPY --chown=${STACKABLE_USER_UID}:0 --from=kcat /stackable/kcat-${KAFKA_KCAT}-src.tar.gz /stackable @@ -94,13 +107,13 @@ chown -h ${STACKABLE_USER_UID}:0 /stackable/bin/kcat # kcat was located in /stackable/kcat - legacy ln -s /stackable/bin/kcat /stackable/kcat chown -h ${STACKABLE_USER_UID}:0 /stackable/kcat -ln -s /stackable/kafka_${SCALA}-${PRODUCT} /stackable/kafka +ln -s /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE} /stackable/kafka chown -h ${STACKABLE_USER_UID}:0 /stackable/kafka # fix missing permissions chmod g=u /stackable/bin chmod g=u /stackable/jmx -chmod g=u /stackable/kafka_${SCALA}-${PRODUCT} +chmod g=u /stackable/kafka_${SCALA}-${PRODUCT}-stackable${RELEASE} chmod g=u /stackable/*-src.tar.gz EOF From 589ff1c04f0e9a3e225ec22f67cf14ac7788b476 Mon Sep 17 00:00:00 2001 From: dervoeti Date: Fri, 13 Jun 2025 15:24:16 +0200 Subject: [PATCH 2/4] chore: changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37ecd583b..99b78c649 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -125,6 +125,7 @@ All notable changes to this project will be documented in this file. - spark-connect-client: Remove `3.5.5` ([#1142]). - spark-k8s: Remove the JMX exporter jar ([#1157]). - zookeeper: Remove jmx exporter ([#1161]). +- kafka: Enable custom versions ([#1171]). [nifi-iceberg-bundle]: https://github.com/stackabletech/nifi-iceberg-bundle [#1025]: https://github.com/stackabletech/docker-images/pull/1025 @@ -190,6 +191,7 @@ All notable changes to this project will be documented in this file. [#1163]: https://github.com/stackabletech/docker-images/pull/1163 [#1165]: https://github.com/stackabletech/docker-images/pull/1165 [#1161]: https://github.com/stackabletech/docker-images/pull/1161 +[#1171]: https://github.com/stackabletech/docker-images/pull/1171 ## [25.3.0] - 2025-03-21 From 672de7061f41af1e8913cff95439d1dc244b54fb Mon Sep 17 00:00:00 2001 From: dervoeti Date: Wed, 18 Jun 2025 13:16:34 +0200 Subject: [PATCH 3/4] feat: move version patched to separate patch files --- kafka/Dockerfile | 9 +- .../0003-Build-custom-Stackable-version.patch | 116 ++++++++++++++ .../0003-Build-custom-Stackable-version.patch | 137 ++++++++++++++++ .../0003-Build-custom-Stackable-version.patch | 116 ++++++++++++++ .../0003-Build-custom-Stackable-version.patch | 147 ++++++++++++++++++ 5 files changed, 517 insertions(+), 8 deletions(-) create mode 100644 kafka/stackable/patches/3.7.2/0003-Build-custom-Stackable-version.patch create mode 100644 kafka/stackable/patches/3.9.0/0003-Build-custom-Stackable-version.patch create mode 100644 kafka/stackable/patches/3.9.1/0003-Build-custom-Stackable-version.patch create mode 100644 kafka/stackable/patches/4.0.0/0003-Build-custom-Stackable-version.patch diff --git a/kafka/Dockerfile b/kafka/Dockerfile index b819c276d..85b4f3203 100644 --- a/kafka/Dockerfile +++ b/kafka/Dockerfile @@ -22,17 +22,10 @@ COPY --chown=${STACKABLE_USER_UID}:0 kafka/stackable/patches/${PRODUCT} /stackab RUN <${ORIGINAL_VERSION}<\/kafka.version>/${NEW_VERSION}<\/kafka.version>/g" streams/quickstart/java/src/main/resources/archetype-resources/pom.xml -sed -i "s/${ORIGINAL_VERSION}<\/version>/${NEW_VERSION}<\/version>/g" streams/quickstart/pom.xml -sed -i "s/${ORIGINAL_VERSION}<\/version>/${NEW_VERSION}<\/version>/g" streams/quickstart/java/pom.xml +find . -type f -print0 | xargs -0 sed -i "s/\-stackable0\.0\.0\-dev/-stackable${RELEASE}/g" # Create snapshot of the source code including custom patches tar -czf /stackable/kafka-${NEW_VERSION}-src.tar.gz . diff --git a/kafka/stackable/patches/3.7.2/0003-Build-custom-Stackable-version.patch b/kafka/stackable/patches/3.7.2/0003-Build-custom-Stackable-version.patch new file mode 100644 index 000000000..d1b2e8241 --- /dev/null +++ b/kafka/stackable/patches/3.7.2/0003-Build-custom-Stackable-version.patch @@ -0,0 +1,116 @@ +From 508c8053273b091b599c5ab9804cee877483703f Mon Sep 17 00:00:00 2001 +From: dervoeti +Date: Wed, 18 Jun 2025 12:15:17 +0200 +Subject: Build custom Stackable version + +--- + docs/js/templateData.js | 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 +- + 8 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/docs/js/templateData.js b/docs/js/templateData.js +index 7700e24003..8affa51e55 100644 +--- a/docs/js/templateData.js ++++ b/docs/js/templateData.js +@@ -19,6 +19,6 @@ limitations under the License. + var context={ + "version": "37", + "dotVersion": "3.7", +- "fullDotVersion": "3.7.2", ++ "fullDotVersion": "3.7.2-stackable0.0.0-dev", + "scalaVersion": "2.13" + }; +diff --git a/gradle.properties b/gradle.properties +index 08ae0ded1e..779dcfb829 100644 +--- a/gradle.properties ++++ b/gradle.properties +@@ -23,7 +23,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.7.2 ++version=3.7.2-stackable0.0.0-dev + scalaVersion=2.13.12 + # 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 c16c811178..41b6794b8c 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.7.2-SNAPSHOT") ++DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "3.7.2-stackable0.0.0-dev-SNAPSHOT") + + ORIGINAL_HEAD = "" + +diff --git a/streams/quickstart/java/pom.xml b/streams/quickstart/java/pom.xml +index 1335f0d58b..e9e8cfe1ec 100644 +--- a/streams/quickstart/java/pom.xml ++++ b/streams/quickstart/java/pom.xml +@@ -26,7 +26,7 @@ + + org.apache.kafka + streams-quickstart +- 3.7.2 ++ 3.7.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 445fab4b83..21cb230fc4 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.7.2 ++ 3.7.2-stackable0.0.0-dev + 1.7.36 + + +diff --git a/streams/quickstart/pom.xml b/streams/quickstart/pom.xml +index 94ac32fcac..2cc1fcd600 100644 +--- a/streams/quickstart/pom.xml ++++ b/streams/quickstart/pom.xml +@@ -22,7 +22,7 @@ + org.apache.kafka + streams-quickstart + pom +- 3.7.2 ++ 3.7.2-stackable0.0.0-dev + + Kafka Streams :: Quickstart + +diff --git a/tests/kafkatest/__init__.py b/tests/kafkatest/__init__.py +index 1c66c2bcfd..9274ce1fd0 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.7.2' ++__version__ = '3.7.2-stackable0.0.0-dev' +diff --git a/tests/kafkatest/version.py b/tests/kafkatest/version.py +index bed7cffac2..55dc3cbc7d 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.7.2-SNAPSHOT") ++DEV_VERSION = KafkaVersion("3.7.2-stackable0.0.0-dev") + + LATEST_METADATA_VERSION = "3.7" + diff --git a/kafka/stackable/patches/3.9.0/0003-Build-custom-Stackable-version.patch b/kafka/stackable/patches/3.9.0/0003-Build-custom-Stackable-version.patch new file mode 100644 index 000000000..d171307a6 --- /dev/null +++ b/kafka/stackable/patches/3.9.0/0003-Build-custom-Stackable-version.patch @@ -0,0 +1,137 @@ +From de4d98f9cd65d93bb4bb061c233f6647efc951f4 Mon Sep 17 00:00:00 2001 +From: dervoeti +Date: Wed, 18 Jun 2025 12:16:46 +0200 +Subject: Build custom Stackable version + +--- + docs/js/templateData.js | 2 +- + docs/streams/upgrade-guide.html | 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 | 4 ++-- + 9 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/docs/js/templateData.js b/docs/js/templateData.js +index 13d352fc70..42d3549382 100644 +--- a/docs/js/templateData.js ++++ b/docs/js/templateData.js +@@ -19,6 +19,6 @@ limitations under the License. + var context={ + "version": "39", + "dotVersion": "3.9", +- "fullDotVersion": "3.9.0", ++ "fullDotVersion": "3.9.0-stackable0.0.0-dev", + "scalaVersion": "2.13" + }; +diff --git a/docs/streams/upgrade-guide.html b/docs/streams/upgrade-guide.html +index 6a30e6671b..6d2ecb81aa 100644 +--- a/docs/streams/upgrade-guide.html ++++ b/docs/streams/upgrade-guide.html +@@ -133,7 +133,7 @@ + More details about the new config StreamsConfig#TOPOLOGY_OPTIMIZATION can be found in KIP-295. +

+ +-

Streams API changes in 3.9.0

++

Streams API changes in 3.9.0-stackable0.0.0-dev

+ +

+ The introduction of KIP-1033 +diff --git a/gradle.properties b/gradle.properties +index 0c14658608..b79ee9f0cf 100644 +--- a/gradle.properties ++++ b/gradle.properties +@@ -23,7 +23,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.0 ++version=3.9.0-stackable0.0.0-dev + scalaVersion=2.13.14 + # 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 a775a38435..4a7fbac34e 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.0") ++DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "3.9.0-stackable0.0.0-dev") + + ORIGINAL_HEAD = "" + +diff --git a/streams/quickstart/java/pom.xml b/streams/quickstart/java/pom.xml +index 78e1a70fa7..8698b4eb35 100644 +--- a/streams/quickstart/java/pom.xml ++++ b/streams/quickstart/java/pom.xml +@@ -26,7 +26,7 @@ + + org.apache.kafka + streams-quickstart +- 3.9.0 ++ 3.9.0-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 2bc235eb16..90d566d1a0 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.0 ++ 3.9.0-stackable0.0.0-dev + 1.7.36 + + +diff --git a/streams/quickstart/pom.xml b/streams/quickstart/pom.xml +index b5101583ee..3c08985e2a 100644 +--- a/streams/quickstart/pom.xml ++++ b/streams/quickstart/pom.xml +@@ -22,7 +22,7 @@ + org.apache.kafka + streams-quickstart + pom +- 3.9.0 ++ 3.9.0-stackable0.0.0-dev + + Kafka Streams :: Quickstart + +diff --git a/tests/kafkatest/__init__.py b/tests/kafkatest/__init__.py +index a190e05067..0aa8fa7095 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.0' ++__version__ = '3.9.0-stackable0.0.0-dev' +diff --git a/tests/kafkatest/version.py b/tests/kafkatest/version.py +index 4825a46039..06fd3029f9 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.0-SNAPSHOT") ++DEV_VERSION = KafkaVersion("3.9.0-stackable0.0.0-dev") + + # This should match the LATEST_PRODUCTION version defined in MetadataVersion.java + LATEST_STABLE_METADATA_VERSION = "3.9-IV0" +@@ -276,5 +276,5 @@ V_3_8_0 = KafkaVersion("3.8.0") + LATEST_3_8 = V_3_8_0 + + # 3.9.x version +-V_3_9_0 = KafkaVersion("3.9.0") ++V_3_9_0 = KafkaVersion("3.9.0-stackable0.0.0-dev") + LATEST_3_9 = V_3_9_0 diff --git a/kafka/stackable/patches/3.9.1/0003-Build-custom-Stackable-version.patch b/kafka/stackable/patches/3.9.1/0003-Build-custom-Stackable-version.patch new file mode 100644 index 000000000..6f82eb285 --- /dev/null +++ b/kafka/stackable/patches/3.9.1/0003-Build-custom-Stackable-version.patch @@ -0,0 +1,116 @@ +From 89fe680ede7726e0df32f0ba1fb90a4216af7c69 Mon Sep 17 00:00:00 2001 +From: dervoeti +Date: Wed, 18 Jun 2025 12:17:53 +0200 +Subject: Build custom Stackable version + +--- + docs/configuration.html | 2 +- + docs/js/templateData.js | 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 +- + 8 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/docs/configuration.html b/docs/configuration.html +index f7c99623de..266236b54a 100644 +--- a/docs/configuration.html ++++ b/docs/configuration.html +@@ -296,7 +296,7 @@ +

If users want to only enable some URLs, users need to explicitly set the system property like below. +

-Dorg.apache.kafka.sasl.oauthbearer.allowed.urls=https://www.example.com,file:///tmp/token
+ +- ++ + +
Since:3.9.1
Since:3.9.1-stackable0.0.0-dev
Default Value:All URLs are allowed
+ +diff --git a/docs/js/templateData.js b/docs/js/templateData.js +index a1ed4601c7..57c854db36 100644 +--- a/docs/js/templateData.js ++++ b/docs/js/templateData.js +@@ -19,6 +19,6 @@ limitations under the License. + var context={ + "version": "39", + "dotVersion": "3.9", +- "fullDotVersion": "3.9.1", ++ "fullDotVersion": "3.9.1-stackable0.0.0-dev", + "scalaVersion": "2.13" + }; +diff --git a/gradle.properties b/gradle.properties +index 05598137fd..3f660d4ee5 100644 +--- a/gradle.properties ++++ b/gradle.properties +@@ -23,7 +23,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.1 ++version=3.9.1-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/streams/quickstart/java/pom.xml b/streams/quickstart/java/pom.xml +index 3d404de9c3..92735dffbc 100644 +--- a/streams/quickstart/java/pom.xml ++++ b/streams/quickstart/java/pom.xml +@@ -26,7 +26,7 @@ + + org.apache.kafka + streams-quickstart +- 3.9.1 ++ 3.9.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 26af0e1dc3..b55640c1f0 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.1 ++ 3.9.1-stackable0.0.0-dev + 1.7.36 + + +diff --git a/streams/quickstart/pom.xml b/streams/quickstart/pom.xml +index f524e00445..05e8eee91a 100644 +--- a/streams/quickstart/pom.xml ++++ b/streams/quickstart/pom.xml +@@ -22,7 +22,7 @@ + org.apache.kafka + streams-quickstart + pom +- 3.9.1 ++ 3.9.1-stackable0.0.0-dev + + Kafka Streams :: Quickstart + +diff --git a/tests/kafkatest/__init__.py b/tests/kafkatest/__init__.py +index a8e4d4515c..36068eeb1a 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.1' ++__version__ = '3.9.1-stackable0.0.0-dev' +diff --git a/tests/kafkatest/version.py b/tests/kafkatest/version.py +index 99cb278226..cd8bcfab4b 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.1-SNAPSHOT") ++DEV_VERSION = KafkaVersion("3.9.1-stackable0.0.0-dev") + + # This should match the LATEST_PRODUCTION version defined in MetadataVersion.java + LATEST_STABLE_METADATA_VERSION = "3.9-IV0" diff --git a/kafka/stackable/patches/4.0.0/0003-Build-custom-Stackable-version.patch b/kafka/stackable/patches/4.0.0/0003-Build-custom-Stackable-version.patch new file mode 100644 index 000000000..7bd7a54d9 --- /dev/null +++ b/kafka/stackable/patches/4.0.0/0003-Build-custom-Stackable-version.patch @@ -0,0 +1,147 @@ +From c10f92d49bb0d62047bd9b30d8345f0d305ce2d9 Mon Sep 17 00:00:00 2001 +From: dervoeti +Date: Wed, 18 Jun 2025 12:27:48 +0200 +Subject: Build custom Stackable version + +--- + committer-tools/kafka-merge-pr.py | 2 +- + docs/js/templateData.js | 2 +- + gradle.properties | 2 +- + streams/quickstart/java/pom.xml | 4 ++-- + .../java/src/main/resources/archetype-resources/pom.xml | 4 ++-- + streams/quickstart/pom.xml | 4 ++-- + tests/kafkatest/__init__.py | 2 +- + tests/kafkatest/version.py | 4 ++-- + 8 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/committer-tools/kafka-merge-pr.py b/committer-tools/kafka-merge-pr.py +index 63439f3e0e..37ea789d97 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.0.0") ++DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "4.0.0-stackable0.0.0-dev") + + ORIGINAL_HEAD = "" + +diff --git a/docs/js/templateData.js b/docs/js/templateData.js +index 34c8a96b7c..b290225ff2 100644 +--- a/docs/js/templateData.js ++++ b/docs/js/templateData.js +@@ -19,6 +19,6 @@ limitations under the License. + var context={ + "version": "40", + "dotVersion": "4.0", +- "fullDotVersion": "4.0.0", ++ "fullDotVersion": "4.0.0-stackable0.0.0-dev", + "scalaVersion": "2.13" + }; +diff --git a/gradle.properties b/gradle.properties +index 76123e2ddb..9df17fe7df 100644 +--- a/gradle.properties ++++ b/gradle.properties +@@ -23,7 +23,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=4.0.0 ++version=4.0.0-stackable0.0.0-dev + scalaVersion=2.13.15 + # Adding swaggerVersion in gradle.properties to have a single version in place for swagger + swaggerVersion=2.2.25 +diff --git a/streams/quickstart/java/pom.xml b/streams/quickstart/java/pom.xml +index 4be34da1e5..7062b6b304 100644 +--- a/streams/quickstart/java/pom.xml ++++ b/streams/quickstart/java/pom.xml +@@ -17,7 +17,7 @@ + + +- 4.0.0 ++ 4.0.0-stackable0.0.0-dev + + + UTF-8 +@@ -26,7 +26,7 @@ + + org.apache.kafka + streams-quickstart +- 4.0.0 ++ 4.0.0-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 88faaf684d..f66ae44f6d 100644 +--- a/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml ++++ b/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml +@@ -18,7 +18,7 @@ + +- 4.0.0 ++ 4.0.0-stackable0.0.0-dev + + ${groupId} + ${artifactId} +@@ -29,7 +29,7 @@ + + + UTF-8 +- 4.0.0 ++ 4.0.0-stackable0.0.0-dev + 2.0.16 + + +diff --git a/streams/quickstart/pom.xml b/streams/quickstart/pom.xml +index c505105c5c..9d0a0b6698 100644 +--- a/streams/quickstart/pom.xml ++++ b/streams/quickstart/pom.xml +@@ -17,12 +17,12 @@ + + +- 4.0.0 ++ 4.0.0-stackable0.0.0-dev + + org.apache.kafka + streams-quickstart + pom +- 4.0.0 ++ 4.0.0-stackable0.0.0-dev + + Kafka Streams :: Quickstart + +diff --git a/tests/kafkatest/__init__.py b/tests/kafkatest/__init__.py +index cf0b298a5d..9829aef366 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.0.0' ++__version__ = '4.0.0-stackable0.0.0-dev' +diff --git a/tests/kafkatest/version.py b/tests/kafkatest/version.py +index 38d6cb443c..6c49b6fb50 100644 +--- a/tests/kafkatest/version.py ++++ b/tests/kafkatest/version.py +@@ -110,7 +110,7 @@ def get_version(node=None): + return DEV_BRANCH + + DEV_BRANCH = KafkaVersion("dev") +-DEV_VERSION = KafkaVersion("4.0.0-SNAPSHOT") ++DEV_VERSION = KafkaVersion("4.0.0-stackable0.0.0-dev") + + LATEST_STABLE_TRANSACTION_VERSION = 2 + # This should match the LATEST_PRODUCTION version defined in MetadataVersion.java +@@ -235,5 +235,5 @@ V_3_9_0 = KafkaVersion("3.9.0") + LATEST_3_9 = V_3_9_0 + + # 4.0.x version +-V_4_0_0 = KafkaVersion("4.0.0") ++V_4_0_0 = KafkaVersion("4.0.0-stackable0.0.0-dev") + LATEST_4_0 = V_4_0_0 From b06732c3d19c9981cc0da0a392a410c89ffc50e0 Mon Sep 17 00:00:00 2001 From: Lukas Krug Date: Wed, 18 Jun 2025 12:33:53 +0200 Subject: [PATCH 4/4] fix: Hive 4.0.0 build (#1182) --- hive/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hive/Dockerfile b/hive/Dockerfile index dc5bbc0c1..25a863892 100644 --- a/hive/Dockerfile +++ b/hive/Dockerfile @@ -47,7 +47,8 @@ cp -r /stackable/patched-libs/maven/* /stackable/.m2/repository NEW_VERSION="${PRODUCT}-stackable${RELEASE}" -mvn versions:set -DnewVersion=$NEW_VERSION -DartifactId=* -DgroupId=* +# generateBackupPoms=false is needed for the Hive 4.0.0 build to succeed, otherwise it fails with the obscure reason: `Too many files with unapproved license` +mvn versions:set -DnewVersion=$NEW_VERSION -DartifactId=* -DgroupId=* -DgenerateBackupPoms=false # Create snapshot of the source code including custom patches tar -czf /stackable/hive-${NEW_VERSION}-src.tar.gz .