diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0dc703ac9..1d43657ed 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -128,6 +128,7 @@ All notable changes to this project will be documented in this file.
- nifi: Remove `2.2.0` ([#1114]).
- kafka: Remove `3.7.1` and `3.8.0` ([#1117]).
- spark-connect-client: Remove `3.5.5` ([#1142]).
+- kafka: Enable custom versions ([#1171]).
- omid: Enable custom versions ([#1174]).
[nifi-iceberg-bundle]: https://github.com/stackabletech/nifi-iceberg-bundle
@@ -194,6 +195,7 @@ All notable changes to this project will be documented in this file.
[#1165]: https://github.com/stackabletech/docker-images/pull/1165
[#1168]: https://github.com/stackabletech/docker-images/pull/1168
[#1170]: https://github.com/stackabletech/docker-images/pull/1170
+[#1171]: https://github.com/stackabletech/docker-images/pull/1171
[#1173]: https://github.com/stackabletech/docker-images/pull/1173
[#1174]: https://github.com/stackabletech/docker-images/pull/1174
[#1179]: https://github.com/stackabletech/docker-images/pull/1179
diff --git a/kafka/Dockerfile b/kafka/Dockerfile
index 21cfa10f1..85b4f3203 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,27 @@ COPY --chown=${STACKABLE_USER_UID}:0 kafka/stackable/patches/${PRODUCT} /stackab
RUN <
+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.
+
+
+-
++
+
+
+ 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