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. +

+ +-

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