Skip to content

Commit fb68ada

Browse files
MINOR: Bump LATEST_PRODUCTION to 4.2-IV1 (#20977)
Bump latest production metadata version to 4.2-IV1 to enable share groups and streams groups by default. Reviewers: Matthias J. Sax <[email protected]>
1 parent 2dffe32 commit fb68ada

File tree

6 files changed

+30
-16
lines changed

6 files changed

+30
-16
lines changed

metadata/src/test/java/org/apache/kafka/metadata/storage/FormatterTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import org.apache.kafka.server.common.GroupVersion;
3535
import org.apache.kafka.server.common.KRaftVersion;
3636
import org.apache.kafka.server.common.MetadataVersion;
37+
import org.apache.kafka.server.common.ShareVersion;
38+
import org.apache.kafka.server.common.StreamsVersion;
3739
import org.apache.kafka.server.common.TestFeatureVersion;
3840
import org.apache.kafka.server.common.TransactionVersion;
3941
import org.apache.kafka.test.TestUtils;
@@ -391,6 +393,12 @@ public void testFeatureFlag(short version) throws Exception {
391393
expected.add(new ApiMessageAndVersion(new FeatureLevelRecord().
392394
setName(GroupVersion.FEATURE_NAME).
393395
setFeatureLevel(GroupVersion.GV_1.featureLevel()), (short) 0));
396+
expected.add(new ApiMessageAndVersion(new FeatureLevelRecord().
397+
setName(ShareVersion.FEATURE_NAME).
398+
setFeatureLevel(ShareVersion.SV_1.featureLevel()), (short) 0));
399+
expected.add(new ApiMessageAndVersion(new FeatureLevelRecord().
400+
setName(StreamsVersion.FEATURE_NAME).
401+
setFeatureLevel(StreamsVersion.SV_1.featureLevel()), (short) 0));
394402
if (version > 0) {
395403
expected.add(new ApiMessageAndVersion(new FeatureLevelRecord().
396404
setName(TestFeatureVersion.FEATURE_NAME).

server-common/src/main/java/org/apache/kafka/server/common/MetadataVersion.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,18 +114,21 @@ public enum MetadataVersion {
114114
// Send FETCH version 18 in the replica fetcher (KIP-1166)
115115
IBP_4_1_IV1(27, "4.1", "IV1", false),
116116

117+
// Enables share groups by default for new clusters (KIP-932).
118+
IBP_4_2_IV0(28, "4.2", "IV0", false),
119+
120+
// Enables "streams" groups by default for new clusters (KIP-1071).
121+
IBP_4_2_IV1(29, "4.2", "IV1", false),
122+
117123
//
118124
// NOTE: MetadataVersions after this point are unstable and may be changed.
119125
// If users attempt to use an unstable MetadataVersion, they will get an error unless
120126
// they have set the configuration unstable.feature.versions.enable=true.
121127
// Please move this comment when updating the LATEST_PRODUCTION constant.
122128
//
123129

124-
// Enables share groups by default for new clusters (KIP-932).
125-
IBP_4_2_IV0(28, "4.2", "IV0", false),
126-
127-
// Enables "streams" groups by default for new clusters (KIP-1071).
128-
IBP_4_2_IV1(29, "4.2", "IV1", false);
130+
// New version for the Kafka 4.3.0 release.
131+
IBP_4_3_IV0(30, "4.3", "IV0", false);
129132

130133
// NOTES when adding a new version:
131134
// Update the default version in @ClusterTest annotation to point to the latest version
@@ -145,7 +148,7 @@ public enum MetadataVersion {
145148
* <strong>Think carefully before you update this value. ONCE A METADATA VERSION IS PRODUCTION,
146149
* IT CANNOT BE CHANGED.</strong>
147150
*/
148-
public static final MetadataVersion LATEST_PRODUCTION = IBP_4_1_IV1;
151+
public static final MetadataVersion LATEST_PRODUCTION = IBP_4_2_IV1;
149152
// If you change the value above please also update
150153
// LATEST_STABLE_METADATA_VERSION version in tests/kafkatest/version.py
151154

server-common/src/test/java/org/apache/kafka/server/common/MetadataVersionTest.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,17 @@ public void testFromVersionString() {
9090
assertEquals(IBP_4_1_IV0, MetadataVersion.fromVersionString("4.1-IV0", true));
9191
assertEquals(IBP_4_1_IV1, MetadataVersion.fromVersionString("4.1-IV1", true));
9292

93+
// 4.2-IV1 is the latest production version in the 4.2 line
94+
assertEquals(IBP_4_2_IV1, MetadataVersion.fromVersionString("4.2", true));
9395
assertEquals(IBP_4_2_IV0, MetadataVersion.fromVersionString("4.2-IV0", true));
9496
assertEquals(IBP_4_2_IV1, MetadataVersion.fromVersionString("4.2-IV1", true));
9597

98+
assertEquals(IBP_4_3_IV0, MetadataVersion.fromVersionString("4.3-IV0", true));
99+
96100
// Throws exception when unstableFeatureVersionsEnabled is false
97-
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, "
98-
+ "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",
99-
assertThrows(IllegalArgumentException.class, () -> fromVersionString("4.2-IV0", false)).getMessage());
100-
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, "
101-
+ "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",
102-
assertThrows(IllegalArgumentException.class, () -> fromVersionString("4.2-IV1", false)).getMessage());
101+
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, "
102+
+ "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",
103+
assertThrows(IllegalArgumentException.class, () -> fromVersionString("4.3-IV0", false)).getMessage());
103104
}
104105

105106
@Test
@@ -133,6 +134,7 @@ public void testShortVersion() {
133134
assertEquals("4.1", IBP_4_1_IV1.shortVersion());
134135
assertEquals("4.2", IBP_4_2_IV0.shortVersion());
135136
assertEquals("4.2", IBP_4_2_IV1.shortVersion());
137+
assertEquals("4.3", IBP_4_3_IV0.shortVersion());
136138
}
137139

138140
@Test
@@ -160,6 +162,7 @@ public void testVersion() {
160162
assertEquals("4.1-IV1", IBP_4_1_IV1.version());
161163
assertEquals("4.2-IV0", IBP_4_2_IV0.version());
162164
assertEquals("4.2-IV1", IBP_4_2_IV1.version());
165+
assertEquals("4.3-IV0", IBP_4_3_IV0.version());
163166
}
164167

165168
@Test

test-common/test-common-internal-api/src/main/java/org/apache/kafka/common/test/api/ClusterTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
String brokerListener() default DEFAULT_BROKER_LISTENER_NAME;
5353
SecurityProtocol controllerSecurityProtocol() default SecurityProtocol.PLAINTEXT;
5454
String controllerListener() default DEFAULT_CONTROLLER_LISTENER_NAME;
55-
MetadataVersion metadataVersion() default MetadataVersion.IBP_4_2_IV1;
55+
MetadataVersion metadataVersion() default MetadataVersion.IBP_4_3_IV0;
5656
ClusterConfigProperty[] serverProperties() default {};
5757
// users can add tags that they want to display in test
5858
String[] tags() default {};

tests/kafkatest/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ def get_version(node=None):
132132

133133
LATEST_STABLE_TRANSACTION_VERSION = 2
134134
# This should match the LATEST_PRODUCTION version defined in MetadataVersion.java
135-
LATEST_STABLE_METADATA_VERSION = "4.1-IV1"
135+
LATEST_STABLE_METADATA_VERSION = "4.2-IV1"
136136

137137
# 2.1.x versions
138138
V_2_1_0 = KafkaVersion("2.1.0")

tools/src/test/java/org/apache/kafka/tools/FeatureCommandTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public void testDescribeWithKRaft(ClusterInstance cluster) {
6060
assertEquals("Feature: kraft.version\tSupportedMinVersion: 0\t" +
6161
"SupportedMaxVersion: 1\tFinalizedVersionLevel: 0\t", outputWithoutEpoch(features.get(2)));
6262
assertEquals("Feature: metadata.version\tSupportedMinVersion: 3.3-IV3\t" +
63-
"SupportedMaxVersion: 4.2-IV1\tFinalizedVersionLevel: 3.3-IV3\t", outputWithoutEpoch(features.get(3)));
63+
"SupportedMaxVersion: 4.3-IV0\tFinalizedVersionLevel: 3.3-IV3\t", outputWithoutEpoch(features.get(3)));
6464
assertEquals("Feature: share.version\tSupportedMinVersion: 0\t" +
6565
"SupportedMaxVersion: 1\tFinalizedVersionLevel: 0\t", outputWithoutEpoch(features.get(4)));
6666
assertEquals("Feature: streams.version\tSupportedMinVersion: 0\t" +
@@ -86,7 +86,7 @@ public void testDescribeWithKRaftAndBootstrapControllers(ClusterInstance cluster
8686
assertEquals("Feature: kraft.version\tSupportedMinVersion: 0\t" +
8787
"SupportedMaxVersion: 1\tFinalizedVersionLevel: 0\t", outputWithoutEpoch(features.get(2)));
8888
assertEquals("Feature: metadata.version\tSupportedMinVersion: 3.3-IV3\t" +
89-
"SupportedMaxVersion: 4.2-IV1\tFinalizedVersionLevel: 3.7-IV0\t", outputWithoutEpoch(features.get(3)));
89+
"SupportedMaxVersion: 4.3-IV0\tFinalizedVersionLevel: 3.7-IV0\t", outputWithoutEpoch(features.get(3)));
9090
assertEquals("Feature: share.version\tSupportedMinVersion: 0\t" +
9191
"SupportedMaxVersion: 1\tFinalizedVersionLevel: 0\t", outputWithoutEpoch(features.get(4)));
9292
assertEquals("Feature: streams.version\tSupportedMinVersion: 0\t" +

0 commit comments

Comments
 (0)