This is an automated email from the ASF dual-hosted git repository.

chia7712 pushed a commit to branch 4.2
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/4.2 by this push:
     new f045fdf2c88 MINOR: Bump LATEST_PRODUCTION to 4.2-IV1 (#20993)
f045fdf2c88 is described below

commit f045fdf2c8817471cb2dc72e20612204fe89d4ba
Author: Andrew Schofield <[email protected]>
AuthorDate: Wed Nov 26 01:11:21 2025 +0000

    MINOR: Bump LATEST_PRODUCTION to 4.2-IV1 (#20993)
    
    Bump latest production metadata version to 4.2-IV1 to enable share
    groups and streams groups by default.
    
    Cherry-pick of fb68ada1a23a6563945249b6bccf531a8c97bd12.
    
    Reviewers: Matthias J. Sax <[email protected]>, Chia-Ping Tsai
    <[email protected]>
---
 .../org/apache/kafka/metadata/storage/FormatterTest.java  |  8 ++++++++
 .../org/apache/kafka/server/common/MetadataVersion.java   | 15 +++++++++------
 .../apache/kafka/server/common/MetadataVersionTest.java   | 15 +++++++++------
 .../org/apache/kafka/common/test/api/ClusterTest.java     |  2 +-
 tests/kafkatest/version.py                                |  2 +-
 .../java/org/apache/kafka/tools/FeatureCommandTest.java   |  4 ++--
 6 files changed, 30 insertions(+), 16 deletions(-)

diff --git 
a/metadata/src/test/java/org/apache/kafka/metadata/storage/FormatterTest.java 
b/metadata/src/test/java/org/apache/kafka/metadata/storage/FormatterTest.java
index e57002abb8e..dcfba4328ae 100644
--- 
a/metadata/src/test/java/org/apache/kafka/metadata/storage/FormatterTest.java
+++ 
b/metadata/src/test/java/org/apache/kafka/metadata/storage/FormatterTest.java
@@ -34,6 +34,8 @@ import org.apache.kafka.server.common.Feature;
 import org.apache.kafka.server.common.GroupVersion;
 import org.apache.kafka.server.common.KRaftVersion;
 import org.apache.kafka.server.common.MetadataVersion;
+import org.apache.kafka.server.common.ShareVersion;
+import org.apache.kafka.server.common.StreamsVersion;
 import org.apache.kafka.server.common.TestFeatureVersion;
 import org.apache.kafka.server.common.TransactionVersion;
 import org.apache.kafka.test.TestUtils;
@@ -391,6 +393,12 @@ public class FormatterTest {
             expected.add(new ApiMessageAndVersion(new FeatureLevelRecord().
                 setName(GroupVersion.FEATURE_NAME).
                 setFeatureLevel(GroupVersion.GV_1.featureLevel()), (short) 0));
+            expected.add(new ApiMessageAndVersion(new FeatureLevelRecord().
+                setName(ShareVersion.FEATURE_NAME).
+                setFeatureLevel(ShareVersion.SV_1.featureLevel()), (short) 0));
+            expected.add(new ApiMessageAndVersion(new FeatureLevelRecord().
+                setName(StreamsVersion.FEATURE_NAME).
+                setFeatureLevel(StreamsVersion.SV_1.featureLevel()), (short) 
0));
             if (version > 0) {
                 expected.add(new ApiMessageAndVersion(new FeatureLevelRecord().
                     setName(TestFeatureVersion.FEATURE_NAME).
diff --git 
a/server-common/src/main/java/org/apache/kafka/server/common/MetadataVersion.java
 
b/server-common/src/main/java/org/apache/kafka/server/common/MetadataVersion.java
index d6f179fd3c3..8bdce25808f 100644
--- 
a/server-common/src/main/java/org/apache/kafka/server/common/MetadataVersion.java
+++ 
b/server-common/src/main/java/org/apache/kafka/server/common/MetadataVersion.java
@@ -114,6 +114,12 @@ public enum MetadataVersion {
     // Send FETCH version 18 in the replica fetcher (KIP-1166)
     IBP_4_1_IV1(27, "4.1", "IV1", false),
 
+    // Enables share groups by default for new clusters (KIP-932).
+    IBP_4_2_IV0(28, "4.2", "IV0", false),
+
+    // Enables "streams" groups by default for new clusters (KIP-1071).
+    IBP_4_2_IV1(29, "4.2", "IV1", false),
+
     //
     // NOTE: MetadataVersions after this point are unstable and may be changed.
     // If users attempt to use an unstable MetadataVersion, they will get an 
error unless
@@ -121,11 +127,8 @@ public enum MetadataVersion {
     // Please move this comment when updating the LATEST_PRODUCTION constant.
     //
 
-    // Enables share groups by default for new clusters (KIP-932).
-    IBP_4_2_IV0(28, "4.2", "IV0", false),
-
-    // Enables "streams" groups by default for new clusters (KIP-1071).
-    IBP_4_2_IV1(29, "4.2", "IV1", false);
+    // New version for the Kafka 4.3.0 release.
+    IBP_4_3_IV0(30, "4.3", "IV0", false);
 
     // NOTES when adding a new version:
     //   Update the default version in @ClusterTest annotation to point to the 
latest version
@@ -145,7 +148,7 @@ public enum MetadataVersion {
      * <strong>Think carefully before you update this value. ONCE A METADATA 
VERSION IS PRODUCTION,
      * IT CANNOT BE CHANGED.</strong>
      */
-    public static final MetadataVersion LATEST_PRODUCTION = IBP_4_1_IV1;
+    public static final MetadataVersion LATEST_PRODUCTION = IBP_4_2_IV1;
     // If you change the value above please also update
     // LATEST_STABLE_METADATA_VERSION version in tests/kafkatest/version.py
 
diff --git 
a/server-common/src/test/java/org/apache/kafka/server/common/MetadataVersionTest.java
 
b/server-common/src/test/java/org/apache/kafka/server/common/MetadataVersionTest.java
index 136fdeaa4ec..e0bcfb7f146 100644
--- 
a/server-common/src/test/java/org/apache/kafka/server/common/MetadataVersionTest.java
+++ 
b/server-common/src/test/java/org/apache/kafka/server/common/MetadataVersionTest.java
@@ -90,16 +90,17 @@ class MetadataVersionTest {
         assertEquals(IBP_4_1_IV0, MetadataVersion.fromVersionString("4.1-IV0", 
true));
         assertEquals(IBP_4_1_IV1, MetadataVersion.fromVersionString("4.1-IV1", 
true));
 
+        // 4.2-IV1 is the latest production version in the 4.2 line
+        assertEquals(IBP_4_2_IV1, MetadataVersion.fromVersionString("4.2", 
true));
         assertEquals(IBP_4_2_IV0, MetadataVersion.fromVersionString("4.2-IV0", 
true));
         assertEquals(IBP_4_2_IV1, MetadataVersion.fromVersionString("4.2-IV1", 
true));
 
+        assertEquals(IBP_4_3_IV0, MetadataVersion.fromVersionString("4.3-IV0", 
true));
+
         // Throws exception when unstableFeatureVersionsEnabled is false
-        assertEquals("Unknown metadata.version '4.2-IV0'. Supported 
metadata.version are: 3.3-IV3, 3.4-IV0, 3.5-IV0, 3.5-IV1, 3.5-IV2, "
-            + "3.6-IV0, 3.6-IV1, 3.6-IV2, 3.7-IV0, 3.7-IV1, 3.7-IV2, 3.7-IV3, 
3.7-IV4, 3.8-IV0, 3.9-IV0, 4.0-IV0, 4.0-IV1, 4.0-IV2, 4.0-IV3, 4.1-IV0, 
4.1-IV1",
-            assertThrows(IllegalArgumentException.class, () -> 
fromVersionString("4.2-IV0", false)).getMessage());
-        assertEquals("Unknown metadata.version '4.2-IV1'. Supported 
metadata.version are: 3.3-IV3, 3.4-IV0, 3.5-IV0, 3.5-IV1, 3.5-IV2, "
-                + "3.6-IV0, 3.6-IV1, 3.6-IV2, 3.7-IV0, 3.7-IV1, 3.7-IV2, 
3.7-IV3, 3.7-IV4, 3.8-IV0, 3.9-IV0, 4.0-IV0, 4.0-IV1, 4.0-IV2, 4.0-IV3, 
4.1-IV0, 4.1-IV1",
-            assertThrows(IllegalArgumentException.class, () -> 
fromVersionString("4.2-IV1", false)).getMessage());
+        assertEquals("Unknown metadata.version '4.3-IV0'. Supported 
metadata.version are: 3.3-IV3, 3.4-IV0, 3.5-IV0, 3.5-IV1, 3.5-IV2, "
+            + "3.6-IV0, 3.6-IV1, 3.6-IV2, 3.7-IV0, 3.7-IV1, 3.7-IV2, 3.7-IV3, 
3.7-IV4, 3.8-IV0, 3.9-IV0, 4.0-IV0, 4.0-IV1, 4.0-IV2, 4.0-IV3, 4.1-IV0, 
4.1-IV1, 4.2-IV0, 4.2-IV1",
+            assertThrows(IllegalArgumentException.class, () -> 
fromVersionString("4.3-IV0", false)).getMessage());
     }
 
     @Test
@@ -133,6 +134,7 @@ class MetadataVersionTest {
         assertEquals("4.1", IBP_4_1_IV1.shortVersion());
         assertEquals("4.2", IBP_4_2_IV0.shortVersion());
         assertEquals("4.2", IBP_4_2_IV1.shortVersion());
+        assertEquals("4.3", IBP_4_3_IV0.shortVersion());
     }
 
     @Test
@@ -160,6 +162,7 @@ class MetadataVersionTest {
         assertEquals("4.1-IV1", IBP_4_1_IV1.version());
         assertEquals("4.2-IV0", IBP_4_2_IV0.version());
         assertEquals("4.2-IV1", IBP_4_2_IV1.version());
+        assertEquals("4.3-IV0", IBP_4_3_IV0.version());
     }
 
     @Test
diff --git 
a/test-common/test-common-internal-api/src/main/java/org/apache/kafka/common/test/api/ClusterTest.java
 
b/test-common/test-common-internal-api/src/main/java/org/apache/kafka/common/test/api/ClusterTest.java
index f81f2739907..f9f1883c356 100644
--- 
a/test-common/test-common-internal-api/src/main/java/org/apache/kafka/common/test/api/ClusterTest.java
+++ 
b/test-common/test-common-internal-api/src/main/java/org/apache/kafka/common/test/api/ClusterTest.java
@@ -52,7 +52,7 @@ public @interface ClusterTest {
     String brokerListener() default DEFAULT_BROKER_LISTENER_NAME;
     SecurityProtocol controllerSecurityProtocol() default 
SecurityProtocol.PLAINTEXT;
     String controllerListener() default DEFAULT_CONTROLLER_LISTENER_NAME;
-    MetadataVersion metadataVersion() default MetadataVersion.IBP_4_2_IV1;
+    MetadataVersion metadataVersion() default MetadataVersion.IBP_4_3_IV0;
     ClusterConfigProperty[] serverProperties() default {};
     // users can add tags that they want to display in test
     String[] tags() default {};
diff --git a/tests/kafkatest/version.py b/tests/kafkatest/version.py
index d68bc0e88ae..86d74eee120 100644
--- a/tests/kafkatest/version.py
+++ b/tests/kafkatest/version.py
@@ -132,7 +132,7 @@ DEV_VERSION = KafkaVersion("4.2.0-SNAPSHOT")
 
 LATEST_STABLE_TRANSACTION_VERSION = 2
 # This should match the LATEST_PRODUCTION version defined in 
MetadataVersion.java
-LATEST_STABLE_METADATA_VERSION = "4.1-IV1"
+LATEST_STABLE_METADATA_VERSION = "4.2-IV1"
 
 # 2.1.x versions
 V_2_1_0 = KafkaVersion("2.1.0")
diff --git a/tools/src/test/java/org/apache/kafka/tools/FeatureCommandTest.java 
b/tools/src/test/java/org/apache/kafka/tools/FeatureCommandTest.java
index 1e6541d10b1..53c18d299bc 100644
--- a/tools/src/test/java/org/apache/kafka/tools/FeatureCommandTest.java
+++ b/tools/src/test/java/org/apache/kafka/tools/FeatureCommandTest.java
@@ -60,7 +60,7 @@ public class FeatureCommandTest {
         assertEquals("Feature: kraft.version\tSupportedMinVersion: 0\t" +
                 "SupportedMaxVersion: 1\tFinalizedVersionLevel: 0\t", 
outputWithoutEpoch(features.get(2)));
         assertEquals("Feature: metadata.version\tSupportedMinVersion: 
3.3-IV3\t" +
-                "SupportedMaxVersion: 4.2-IV1\tFinalizedVersionLevel: 
3.3-IV3\t", outputWithoutEpoch(features.get(3)));
+                "SupportedMaxVersion: 4.3-IV0\tFinalizedVersionLevel: 
3.3-IV3\t", outputWithoutEpoch(features.get(3)));
         assertEquals("Feature: share.version\tSupportedMinVersion: 0\t" +
                 "SupportedMaxVersion: 1\tFinalizedVersionLevel: 0\t", 
outputWithoutEpoch(features.get(4)));
         assertEquals("Feature: streams.version\tSupportedMinVersion: 0\t" +
@@ -86,7 +86,7 @@ public class FeatureCommandTest {
         assertEquals("Feature: kraft.version\tSupportedMinVersion: 0\t" +
                 "SupportedMaxVersion: 1\tFinalizedVersionLevel: 0\t", 
outputWithoutEpoch(features.get(2)));
         assertEquals("Feature: metadata.version\tSupportedMinVersion: 
3.3-IV3\t" +
-                "SupportedMaxVersion: 4.2-IV1\tFinalizedVersionLevel: 
3.7-IV0\t", outputWithoutEpoch(features.get(3)));
+                "SupportedMaxVersion: 4.3-IV0\tFinalizedVersionLevel: 
3.7-IV0\t", outputWithoutEpoch(features.get(3)));
         assertEquals("Feature: share.version\tSupportedMinVersion: 0\t" +
                 "SupportedMaxVersion: 1\tFinalizedVersionLevel: 0\t", 
outputWithoutEpoch(features.get(4)));
         assertEquals("Feature: streams.version\tSupportedMinVersion: 0\t" +

Reply via email to