You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by cm...@apache.org on 2024/08/12 23:41:30 UTC
(kafka) branch 3.9 updated: KAFKA-17018: update MetadataVersion for the Kafka release 3.9 (#16841)
This is an automated email from the ASF dual-hosted git repository.
cmccabe pushed a commit to branch 3.9
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/3.9 by this push:
new b53dfebad59 KAFKA-17018: update MetadataVersion for the Kafka release 3.9 (#16841)
b53dfebad59 is described below
commit b53dfebad598eebdc51f3ae0f65e7b3b1d809f99
Author: Colin Patrick McCabe <cm...@apache.org>
AuthorDate: Mon Aug 12 16:30:43 2024 -0700
KAFKA-17018: update MetadataVersion for the Kafka release 3.9 (#16841)
- Mark 3.9-IV0 as stable. Metadata version 3.9-IV0 should return Fetch version 17.
- Move ELR to 4.0-IV0. Remove 3.9-IV1 since it's no longer needed.
- Create a new 4.0-IV1 MV for KIP-848.
Reviewers: Jun Rao <ju...@gmail.com>, Chia-Ping Tsai <ch...@gmail.com>, Justine Olshan <jo...@confluent.io>
---
.../test/java/kafka/test/annotation/ClusterTest.java | 2 +-
.../kafka/zk/ZkMigrationIntegrationTest.scala | 7 +++----
.../test/scala/unit/kafka/tools/StorageToolTest.scala | 2 +-
.../kafka/controller/PartitionChangeBuilderTest.java | 12 ++++++------
.../apache/kafka/controller/QuorumControllerTest.java | 8 ++++----
.../kafka/metadata/PartitionRegistrationTest.java | 4 ++--
.../org/apache/kafka/server/common/MetadataVersion.java | 17 ++++++++---------
.../apache/kafka/server/common/TestFeatureVersion.java | 4 ++--
.../org/apache/kafka/server/common/FeaturesTest.java | 2 +-
.../apache/kafka/server/common/MetadataVersionTest.java | 10 ++++++----
tests/kafkatest/version.py | 2 +-
.../java/org/apache/kafka/tools/FeatureCommandTest.java | 6 +++---
12 files changed, 38 insertions(+), 38 deletions(-)
diff --git a/core/src/test/java/kafka/test/annotation/ClusterTest.java b/core/src/test/java/kafka/test/annotation/ClusterTest.java
index de867e9408f..5bf6c6b1e81 100644
--- a/core/src/test/java/kafka/test/annotation/ClusterTest.java
+++ b/core/src/test/java/kafka/test/annotation/ClusterTest.java
@@ -43,7 +43,7 @@ public @interface ClusterTest {
AutoStart autoStart() default AutoStart.DEFAULT;
SecurityProtocol securityProtocol() default SecurityProtocol.PLAINTEXT;
String listener() default "";
- MetadataVersion metadataVersion() default MetadataVersion.IBP_4_0_IV0;
+ MetadataVersion metadataVersion() default MetadataVersion.IBP_4_0_IV1;
ClusterConfigProperty[] serverProperties() default {};
// users can add tags that they want to display in test
String[] tags() default {};
diff --git a/core/src/test/scala/integration/kafka/zk/ZkMigrationIntegrationTest.scala b/core/src/test/scala/integration/kafka/zk/ZkMigrationIntegrationTest.scala
index ce8a1583399..d0107d73c20 100644
--- a/core/src/test/scala/integration/kafka/zk/ZkMigrationIntegrationTest.scala
+++ b/core/src/test/scala/integration/kafka/zk/ZkMigrationIntegrationTest.scala
@@ -73,8 +73,7 @@ object ZkMigrationIntegrationTest {
MetadataVersion.IBP_3_7_IV2,
MetadataVersion.IBP_3_7_IV4,
MetadataVersion.IBP_3_8_IV0,
- MetadataVersion.IBP_3_9_IV0,
- MetadataVersion.IBP_3_9_IV1
+ MetadataVersion.IBP_3_9_IV0
// Note: ZK Migration is not supported in Apache Kafka 4.0 and beyond.
).map { mv =>
val serverProperties = new util.HashMap[String, String]()
@@ -494,7 +493,7 @@ class ZkMigrationIntegrationTest {
}
}
- @ClusterTest(types = Array(Type.ZK), brokers = 3, metadataVersion = MetadataVersion.IBP_3_9_IV1, serverProperties = Array(
+ @ClusterTest(types = Array(Type.ZK), brokers = 3, metadataVersion = MetadataVersion.IBP_3_9_IV0, serverProperties = Array(
new ClusterConfigProperty(key = "inter.broker.listener.name", value = "EXTERNAL"),
new ClusterConfigProperty(key = "listeners", value = "PLAINTEXT://localhost:0,EXTERNAL://localhost:0"),
new ClusterConfigProperty(key = "advertised.listeners", value = "PLAINTEXT://localhost:0,EXTERNAL://localhost:0"),
@@ -516,7 +515,7 @@ class ZkMigrationIntegrationTest {
val clusterId = zkCluster.clusterId()
val kraftCluster = new KafkaClusterTestKit.Builder(
new TestKitNodes.Builder().
- setBootstrapMetadataVersion(MetadataVersion.IBP_3_9_IV1).
+ setBootstrapMetadataVersion(MetadataVersion.IBP_3_9_IV0).
setClusterId(clusterId).
setNumBrokerNodes(0).
setNumControllerNodes(1).build())
diff --git a/core/src/test/scala/unit/kafka/tools/StorageToolTest.scala b/core/src/test/scala/unit/kafka/tools/StorageToolTest.scala
index 1b519cbd313..3a8f064b1df 100644
--- a/core/src/test/scala/unit/kafka/tools/StorageToolTest.scala
+++ b/core/src/test/scala/unit/kafka/tools/StorageToolTest.scala
@@ -321,7 +321,7 @@ Found problem:
properties.setProperty("log.dirs", availableDirs.mkString(","))
val stream = new ByteArrayOutputStream()
assertEquals(0, runFormatCommand(stream, properties, Seq("--feature", "metadata.version=20")))
- assertTrue(stream.toString().contains("3.8-IV0"),
+ assertTrue(stream.toString().contains("3.9-IV0"),
"Failed to find content in output: " + stream.toString())
}
diff --git a/metadata/src/test/java/org/apache/kafka/controller/PartitionChangeBuilderTest.java b/metadata/src/test/java/org/apache/kafka/controller/PartitionChangeBuilderTest.java
index cfeb963327c..be64ef547c3 100644
--- a/metadata/src/test/java/org/apache/kafka/controller/PartitionChangeBuilderTest.java
+++ b/metadata/src/test/java/org/apache/kafka/controller/PartitionChangeBuilderTest.java
@@ -126,7 +126,7 @@ public class PartitionChangeBuilderTest {
case (short) 1:
return MetadataVersion.IBP_3_7_IV2;
case (short) 2:
- return MetadataVersion.IBP_3_9_IV1;
+ return MetadataVersion.IBP_4_0_IV0;
default:
throw new RuntimeException("Unknown PartitionChangeRecord version " + version);
}
@@ -313,7 +313,7 @@ public class PartitionChangeBuilderTest {
* Test that shrinking the ISR doesn't increase the leader epoch in later MVs.
*/
@ParameterizedTest
- @ValueSource(strings = {"3.6-IV0", "3.7-IV2", "3.9-IV1"})
+ @ValueSource(strings = {"3.6-IV0", "3.7-IV2", "4.0-IV0"})
public void testNoLeaderEpochBumpOnIsrShrink(String metadataVersionString) {
MetadataVersion metadataVersion = MetadataVersion.fromVersionString(metadataVersionString);
testTriggerLeaderEpochBumpIfNeeded(
@@ -342,7 +342,7 @@ public class PartitionChangeBuilderTest {
* Test that shrinking the ISR does increase the leader epoch in later MVs when ZK migration is on.
*/
@ParameterizedTest
- @ValueSource(strings = {"3.6-IV0", "3.7-IV2", "3.9-IV1"})
+ @ValueSource(strings = {"3.6-IV0", "3.7-IV2", "4.0-IV0"})
public void testLeaderEpochBumpOnIsrShrinkWithZkMigration(String metadataVersionString) {
MetadataVersion metadataVersion = MetadataVersion.fromVersionString(metadataVersionString);
testTriggerLeaderEpochBumpIfNeeded(
@@ -358,7 +358,7 @@ public class PartitionChangeBuilderTest {
* Test that expanding the ISR doesn't increase the leader epoch.
*/
@ParameterizedTest
- @ValueSource(strings = {"3.4-IV0", "3.5-IV2", "3.6-IV0", "3.7-IV2", "3.9-IV1"})
+ @ValueSource(strings = {"3.4-IV0", "3.5-IV2", "3.6-IV0", "3.7-IV2", "4.0-IV0"})
public void testNoLeaderEpochBumpOnIsrExpansion(String metadataVersionString) {
MetadataVersion metadataVersion = MetadataVersion.fromVersionString(metadataVersionString);
testTriggerLeaderEpochBumpIfNeeded(
@@ -372,7 +372,7 @@ public class PartitionChangeBuilderTest {
* Test that expanding the ISR doesn't increase the leader epoch during ZK migration.
*/
@ParameterizedTest
- @ValueSource(strings = {"3.4-IV0", "3.5-IV2", "3.6-IV0", "3.7-IV2", "3.9-IV1"})
+ @ValueSource(strings = {"3.4-IV0", "3.5-IV2", "3.6-IV0", "3.7-IV2", "4.0-IV0"})
public void testNoLeaderEpochBumpOnIsrExpansionDuringMigration(String metadataVersionString) {
MetadataVersion metadataVersion = MetadataVersion.fromVersionString(metadataVersionString);
testTriggerLeaderEpochBumpIfNeeded(
@@ -389,7 +389,7 @@ public class PartitionChangeBuilderTest {
* always results in a leader epoch increase.
*/
@ParameterizedTest
- @ValueSource(strings = {"3.4-IV0", "3.5-IV2", "3.6-IV0", "3.7-IV2", "3.9-IV1"})
+ @ValueSource(strings = {"3.4-IV0", "3.5-IV2", "3.6-IV0", "3.7-IV2", "4.0-IV0"})
public void testLeaderEpochBumpOnNewReplicaSetDisjoint(String metadataVersionString) {
MetadataVersion metadataVersion = MetadataVersion.fromVersionString(metadataVersionString);
testTriggerLeaderEpochBumpIfNeeded(
diff --git a/metadata/src/test/java/org/apache/kafka/controller/QuorumControllerTest.java b/metadata/src/test/java/org/apache/kafka/controller/QuorumControllerTest.java
index 162f7835dfb..4a2d0d70168 100644
--- a/metadata/src/test/java/org/apache/kafka/controller/QuorumControllerTest.java
+++ b/metadata/src/test/java/org/apache/kafka/controller/QuorumControllerTest.java
@@ -378,7 +378,7 @@ public class QuorumControllerTest {
).
setSessionTimeoutMillis(OptionalLong.of(sessionTimeoutMillis)).
- setBootstrapMetadata(BootstrapMetadata.fromVersion(MetadataVersion.IBP_3_9_IV1, "test-provided bootstrap ELR enabled")).
+ setBootstrapMetadata(BootstrapMetadata.fromVersion(MetadataVersion.IBP_4_0_IV0, "test-provided bootstrap ELR enabled")).
build()
) {
ListenerCollection listeners = new ListenerCollection();
@@ -392,7 +392,7 @@ public class QuorumControllerTest {
new BrokerRegistrationRequestData().
setBrokerId(brokerId).
setClusterId(active.clusterId()).
- setFeatures(brokerFeatures(MetadataVersion.IBP_3_0_IV1, MetadataVersion.IBP_3_9_IV1)).
+ setFeatures(brokerFeatures(MetadataVersion.IBP_3_0_IV1, MetadataVersion.IBP_4_0_IV0)).
setIncarnationId(Uuid.randomUuid()).
setLogDirs(Collections.singletonList(Uuid.randomUuid())).
setListeners(listeners));
@@ -460,7 +460,7 @@ public class QuorumControllerTest {
new BrokerRegistrationRequestData().
setBrokerId(brokerToUncleanShutdown).
setClusterId(active.clusterId()).
- setFeatures(brokerFeatures(MetadataVersion.IBP_3_0_IV1, MetadataVersion.IBP_3_9_IV1)).
+ setFeatures(brokerFeatures(MetadataVersion.IBP_3_0_IV1, MetadataVersion.IBP_4_0_IV0)).
setIncarnationId(Uuid.randomUuid()).
setLogDirs(Collections.singletonList(Uuid.randomUuid())).
setListeners(listeners)).get();
@@ -473,7 +473,7 @@ public class QuorumControllerTest {
new BrokerRegistrationRequestData().
setBrokerId(lastKnownElr[0]).
setClusterId(active.clusterId()).
- setFeatures(brokerFeatures(MetadataVersion.IBP_3_0_IV1, MetadataVersion.IBP_3_9_IV1)).
+ setFeatures(brokerFeatures(MetadataVersion.IBP_3_0_IV1, MetadataVersion.IBP_4_0_IV0)).
setIncarnationId(Uuid.randomUuid()).
setLogDirs(Collections.singletonList(Uuid.randomUuid())).
setListeners(listeners)).get();
diff --git a/metadata/src/test/java/org/apache/kafka/metadata/PartitionRegistrationTest.java b/metadata/src/test/java/org/apache/kafka/metadata/PartitionRegistrationTest.java
index 81ebfe2878a..4a16596ddf0 100644
--- a/metadata/src/test/java/org/apache/kafka/metadata/PartitionRegistrationTest.java
+++ b/metadata/src/test/java/org/apache/kafka/metadata/PartitionRegistrationTest.java
@@ -287,7 +287,7 @@ public class PartitionRegistrationTest {
return Stream.of(
MetadataVersion.IBP_3_7_IV1,
MetadataVersion.IBP_3_7_IV2,
- MetadataVersion.IBP_3_9_IV1
+ MetadataVersion.IBP_4_0_IV0
).map(Arguments::of);
}
@@ -373,7 +373,7 @@ public class PartitionRegistrationTest {
setPartitionEpoch(0);
List<UnwritableMetadataException> exceptions = new ArrayList<>();
ImageWriterOptions options = new ImageWriterOptions.Builder().
- setMetadataVersion(MetadataVersion.IBP_3_9_IV1).
+ setMetadataVersion(MetadataVersion.IBP_4_0_IV0).
setLossHandler(exceptions::add).
build();
assertEquals(new ApiMessageAndVersion(expectRecord, (short) 2), partitionRegistration.toRecord(topicID, 0, options));
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 aa0a86da697..94dff4c91fa 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
@@ -205,20 +205,20 @@ public enum MetadataVersion {
// New version for the Kafka 3.8.0 release.
IBP_3_8_IV0(20, "3.8", "IV0", false),
+ // Support ListOffsetRequest v9 for KIP-1005.
+ IBP_3_9_IV0(21, "3.9", "IV0", 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.
// Please move this comment when updating the LATEST_PRODUCTION constant.
//
- // Support ListOffsetRequest v9 for KIP-1005.
- IBP_3_9_IV0(21, "3.9", "IV0", false),
-
// Add ELR related supports (KIP-966).
- IBP_3_9_IV1(22, "3.9", "IV1", true),
+ IBP_4_0_IV0(22, "4.0", "IV0", true),
// Bootstrap metadata version for version 1 of the GroupVersion feature (KIP-848) and transaction versions 1 and 2 (KIP-890)
- IBP_4_0_IV0(23, "4.0", "IV0", false);
+ IBP_4_0_IV1(23, "4.0", "IV1", false);
// NOTES when adding a new version:
// Update the default version in @ClusterTest annotation to point to the latest version
@@ -244,7 +244,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_3_8_IV0;
+ public static final MetadataVersion LATEST_PRODUCTION = IBP_3_9_IV0;
// If you change the value above please also update
// LATEST_STABLE_METADATA_VERSION version in tests/kafkatest/version.py
@@ -345,7 +345,7 @@ public enum MetadataVersion {
}
public boolean isElrSupported() {
- return this.isAtLeast(IBP_3_9_IV1);
+ return this.isAtLeast(IBP_4_0_IV0);
}
public boolean isKRaftSupported() {
@@ -422,8 +422,7 @@ public enum MetadataVersion {
}
public short fetchRequestVersion() {
- if (this.isAtLeast(IBP_4_0_IV0)) {
- // KAFKA-17018 will change this to IBP_3_9_IVX when it is available
+ if (this.isAtLeast(IBP_3_9_IV0)) {
return 17;
} else if (this.isAtLeast(IBP_3_7_IV4)) {
return 16;
diff --git a/server-common/src/main/java/org/apache/kafka/server/common/TestFeatureVersion.java b/server-common/src/main/java/org/apache/kafka/server/common/TestFeatureVersion.java
index 5d696a36482..4fffb8ec980 100644
--- a/server-common/src/main/java/org/apache/kafka/server/common/TestFeatureVersion.java
+++ b/server-common/src/main/java/org/apache/kafka/server/common/TestFeatureVersion.java
@@ -23,8 +23,8 @@ public enum TestFeatureVersion implements FeatureVersion {
TEST_0(0, MetadataVersion.MINIMUM_KRAFT_VERSION, Collections.emptyMap()),
// TEST_1 released right before MV 3.7-IVO was released, and it has no dependencies
TEST_1(1, MetadataVersion.IBP_3_7_IV0, Collections.emptyMap()),
- // TEST_2 released right before MV 3.9-IVO was released, and it depends on this metadata version
- TEST_2(2, MetadataVersion.IBP_3_9_IV0, Collections.singletonMap(MetadataVersion.FEATURE_NAME, MetadataVersion.IBP_3_9_IV0.featureLevel()));
+ // TEST_2 released right before MV 4.0-IVO was released, and it depends on this metadata version
+ TEST_2(2, MetadataVersion.IBP_4_0_IV0, Collections.singletonMap(MetadataVersion.FEATURE_NAME, MetadataVersion.IBP_4_0_IV0.featureLevel()));
private final short featureLevel;
private final MetadataVersion metadataVersionMapping;
diff --git a/server-common/src/test/java/org/apache/kafka/server/common/FeaturesTest.java b/server-common/src/test/java/org/apache/kafka/server/common/FeaturesTest.java
index ff14733bf8d..ca4107d1d59 100644
--- a/server-common/src/test/java/org/apache/kafka/server/common/FeaturesTest.java
+++ b/server-common/src/test/java/org/apache/kafka/server/common/FeaturesTest.java
@@ -123,7 +123,7 @@ public class FeaturesTest {
@EnumSource(MetadataVersion.class)
public void testDefaultTestVersion(MetadataVersion metadataVersion) {
short expectedVersion;
- if (!metadataVersion.isLessThan(MetadataVersion.IBP_3_9_IV0)) {
+ if (!metadataVersion.isLessThan(MetadataVersion.IBP_4_0_IV0)) {
expectedVersion = 2;
} else if (!metadataVersion.isLessThan(MetadataVersion.IBP_3_7_IV0)) {
expectedVersion = 1;
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 74decc2c56c..3908dd1cf6d 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
@@ -188,10 +188,12 @@ class MetadataVersionTest {
assertEquals(IBP_3_8_IV0, MetadataVersion.fromVersionString("3.8"));
assertEquals(IBP_3_8_IV0, MetadataVersion.fromVersionString("3.8-IV0"));
+ // 3.9-IV0 is the latest production version in the 3.9 line
+ assertEquals(IBP_3_9_IV0, MetadataVersion.fromVersionString("3.9"));
assertEquals(IBP_3_9_IV0, MetadataVersion.fromVersionString("3.9-IV0"));
- assertEquals(IBP_3_9_IV1, MetadataVersion.fromVersionString("3.9-IV1"));
assertEquals(IBP_4_0_IV0, MetadataVersion.fromVersionString("4.0-IV0"));
+ assertEquals(IBP_4_0_IV1, MetadataVersion.fromVersionString("4.0-IV1"));
}
@Test
@@ -253,8 +255,8 @@ class MetadataVersionTest {
assertEquals("3.7", IBP_3_7_IV4.shortVersion());
assertEquals("3.8", IBP_3_8_IV0.shortVersion());
assertEquals("3.9", IBP_3_9_IV0.shortVersion());
- assertEquals("3.9", IBP_3_9_IV1.shortVersion());
assertEquals("4.0", IBP_4_0_IV0.shortVersion());
+ assertEquals("4.0", IBP_4_0_IV1.shortVersion());
}
@Test
@@ -305,8 +307,8 @@ class MetadataVersionTest {
assertEquals("3.7-IV4", IBP_3_7_IV4.version());
assertEquals("3.8-IV0", IBP_3_8_IV0.version());
assertEquals("3.9-IV0", IBP_3_9_IV0.version());
- assertEquals("3.9-IV1", IBP_3_9_IV1.version());
assertEquals("4.0-IV0", IBP_4_0_IV0.version());
+ assertEquals("4.0-IV1", IBP_4_0_IV1.version());
}
@Test
@@ -374,7 +376,7 @@ class MetadataVersionTest {
@ParameterizedTest
@EnumSource(value = MetadataVersion.class)
public void testIsElrSupported(MetadataVersion metadataVersion) {
- assertEquals(metadataVersion.isAtLeast(IBP_3_9_IV1), metadataVersion.isElrSupported());
+ assertEquals(metadataVersion.isAtLeast(IBP_4_0_IV0), metadataVersion.isElrSupported());
}
@ParameterizedTest
diff --git a/tests/kafkatest/version.py b/tests/kafkatest/version.py
index 35d93c53703..4825a460395 100644
--- a/tests/kafkatest/version.py
+++ b/tests/kafkatest/version.py
@@ -125,7 +125,7 @@ DEV_BRANCH = KafkaVersion("dev")
DEV_VERSION = KafkaVersion("3.9.0-SNAPSHOT")
# This should match the LATEST_PRODUCTION version defined in MetadataVersion.java
-LATEST_STABLE_METADATA_VERSION = "3.8"
+LATEST_STABLE_METADATA_VERSION = "3.9-IV0"
# 0.8.2.x versions
V_0_8_2_1 = KafkaVersion("0.8.2.1")
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 46a64ad283c..9e01f290853 100644
--- a/tools/src/test/java/org/apache/kafka/tools/FeatureCommandTest.java
+++ b/tools/src/test/java/org/apache/kafka/tools/FeatureCommandTest.java
@@ -68,7 +68,7 @@ public class FeatureCommandTest {
assertEquals("Feature: kraft.version\tSupportedMinVersion: 0\t" +
"SupportedMaxVersion: 1\tFinalizedVersionLevel: 0\t", outputWithoutEpoch(features.get(0)));
assertEquals("Feature: metadata.version\tSupportedMinVersion: 3.0-IV1\t" +
- "SupportedMaxVersion: 4.0-IV0\tFinalizedVersionLevel: 3.3-IV1\t", outputWithoutEpoch(features.get(1)));
+ "SupportedMaxVersion: 4.0-IV1\tFinalizedVersionLevel: 3.3-IV1\t", outputWithoutEpoch(features.get(1)));
assertEquals("Feature: transaction.version\tSupportedMinVersion: 0\t" +
"SupportedMaxVersion: 2\tFinalizedVersionLevel: 0\t", outputWithoutEpoch(features.get(2)));
}
@@ -86,7 +86,7 @@ public class FeatureCommandTest {
assertEquals("Feature: kraft.version\tSupportedMinVersion: 0\t" +
"SupportedMaxVersion: 1\tFinalizedVersionLevel: 0\t", outputWithoutEpoch(features.get(0)));
assertEquals("Feature: metadata.version\tSupportedMinVersion: 3.0-IV1\t" +
- "SupportedMaxVersion: 4.0-IV0\tFinalizedVersionLevel: 3.7-IV0\t", outputWithoutEpoch(features.get(1)));
+ "SupportedMaxVersion: 4.0-IV1\tFinalizedVersionLevel: 3.7-IV0\t", outputWithoutEpoch(features.get(1)));
assertEquals("Feature: transaction.version\tSupportedMinVersion: 0\t" +
"SupportedMaxVersion: 2\tFinalizedVersionLevel: 0\t", outputWithoutEpoch(features.get(2)));
}
@@ -322,4 +322,4 @@ public class FeatureCommandTest {
"Can not disable metadata.version. Can't downgrade below 4%n" +
"quux can be disabled."), disableOutput);
}
-}
\ No newline at end of file
+}