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

voonhous pushed a commit to branch branch-1.2.x
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/branch-1.2.x by this push:
     new 060cf01ad709 fix(config): correct sinceVersion of 1.2.1 configs 
(#20056)
060cf01ad709 is described below

commit 060cf01ad7091c7b5a6babb7f8b973c578e04ec8
Author: voonhous <[email protected]>
AuthorDate: Fri Sep 25 09:48:13 2026 +0800

    fix(config): correct sinceVersion of 1.2.1 configs (#20056)
    
    Fourteen configs first shipped in 1.2.1 but carry sinceVersion 1.3.0,
    because they were cherry-picked from master before the label was
    updated. Label them 1.2.1. hoodie.metadata.index.partition.stats.enable
    has existed since 1.0.0, so restore that label.
---
 .../main/java/org/apache/hudi/client/CommitMetadataProperties.java  | 4 ++--
 .../main/java/org/apache/hudi/common/config/HoodieCommonConfig.java | 2 +-
 .../java/org/apache/hudi/common/config/HoodieMetadataConfig.java    | 6 +++---
 .../apache/hudi/common/table/view/FileSystemViewStorageConfig.java  | 2 +-
 .../src/main/java/org/apache/hudi/hive/HiveSyncConfigHolder.java    | 4 ++--
 .../java/org/apache/hudi/utilities/config/CloudSourceConfig.java    | 6 +++---
 .../java/org/apache/hudi/utilities/config/KinesisSourceConfig.java  | 6 +++---
 7 files changed, 15 insertions(+), 15 deletions(-)

diff --git 
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CommitMetadataProperties.java
 
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CommitMetadataProperties.java
index 3a7b79812c8e..1341b1cf8ca6 100644
--- 
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CommitMetadataProperties.java
+++ 
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/CommitMetadataProperties.java
@@ -83,7 +83,7 @@ public class CommitMetadataProperties {
           .key("hoodie.commit.metadata.engine.properties.embed.enable")
           .defaultValue(false)
           .markAdvanced()
-          .sinceVersion("1.3.0")
+          .sinceVersion("1.2.1")
           .withDocumentation("When enabled, engine-specific properties (e.g. 
spark.application.id, "
               + "spark.user, java.version) are embedded into commit metadata 
for debugging. "
               + "hudi.version and engine name are always embedded regardless 
of this flag.");
@@ -101,7 +101,7 @@ public class CommitMetadataProperties {
           .key("hoodie.write.config.keys.to.serialize.to.commit.metadata")
           .defaultValue(DEFAULT_WRITE_CONFIG_KEYS)
           .markAdvanced()
-          .sinceVersion("1.3.0")
+          .sinceVersion("1.2.1")
           .withDocumentation("Comma-separated list of write-config keys whose 
values are "
               + "serialized into the extraMetadata map of every commit (under 
the 'config.' "
               + "prefix). Set to empty to skip config-key serialization 
entirely. Avoid adding "
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieCommonConfig.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieCommonConfig.java
index 0eaf9533a737..a6106e95e136 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieCommonConfig.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieCommonConfig.java
@@ -87,7 +87,7 @@ public class HoodieCommonConfig extends HoodieConfig {
       .key("hoodie.write.timestamp.logical.type.overrides")
       .defaultValue("")
       .markAdvanced()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .withDocumentation("Per-field authority for the timestamp logical type, 
taking precedence over the "
           + "auto-inferred schema. Comma-separated 'field:type' pairs, where 
type is one of timestamp-micros, "
           + "timestamp-millis, local-timestamp-micros, local-timestamp-millis 
(case-insensitive). A field with an "
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java
index a99f3bb35963..6121bd250378 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java
@@ -199,7 +199,7 @@ public final class HoodieMetadataConfig extends 
HoodieConfig {
       .key(METADATA_PREFIX + ".skip.zero.size.files.on.initialize")
       .defaultValue(false)
       .markAdvanced()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .withDocumentation("When enabled, zero-size data files encountered while 
listing the data table during "
           + "metadata table initialization and restore sync are skipped 
instead of being recorded in the metadata "
           + "table. Skipped files remain on storage and are not tracked by the 
metadata table or the cleaner; "
@@ -250,7 +250,7 @@ public final class HoodieMetadataConfig extends 
HoodieConfig {
       .key(METADATA_PREFIX + ".index.partition.stats.enable")
       .defaultValue(true)
       .markAdvanced()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.0.0")
       .withDocumentation("Enable aggregating the column stats index to the 
partition level in the metadata table, "
           + "used to prune partitions during index lookups. Partition stats 
requires the column stats index "
           + "(" + METADATA_PREFIX + ".index.column.stats.enable) to be enabled 
and has no effect when column stats "
@@ -709,7 +709,7 @@ public final class HoodieMetadataConfig extends 
HoodieConfig {
       .key(METADATA_PREFIX + ".enable.detailed.metrics")
       .defaultValue(false)
       .markAdvanced()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .withDocumentation("Enables detailed metadata table metrics — 
per-metadata-partition file size and base/log "
           + "file counts. Emitting these requires building a 
HoodieTableFileSystemView for the metadata table on "
           + "the driver, which adds memory pressure at scale; leave disabled 
unless you need the breakdown.");
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java
index ae08886ed537..c98b41d094e7 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java
@@ -171,7 +171,7 @@ public class FileSystemViewStorageConfig extends 
HoodieConfig {
       .key("hoodie.filesystem.view.remote.response.charset")
       .defaultValue(StandardCharsets.ISO_8859_1.name())
       .markAdvanced()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .withDocumentation("Charset used for decoding HTTP responses from the 
timeline server. "
           + "Set to 'UTF-8' if partition paths or file paths contain non-ASCII 
characters (e.g. Unicode). "
           + "Default is ISO-8859-1 for backwards compatibility.");
diff --git 
a/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HiveSyncConfigHolder.java
 
b/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HiveSyncConfigHolder.java
index 84e2f7bae0e8..1c1ed1895ed6 100644
--- 
a/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HiveSyncConfigHolder.java
+++ 
b/hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/HiveSyncConfigHolder.java
@@ -126,7 +126,7 @@ public class HiveSyncConfigHolder {
       .key("hoodie.datasource.hive_sync.batching.enabled")
       .defaultValue(false)
       .markAdvanced()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .withDocumentation("Only applies to HiveQL sync mode; has no effect in 
HMS or JDBC mode. When true, "
           + "ADD, TOUCH, and SET_LOCATION partition statements are dispatched 
in parallel across a pool of "
           + "Hive Driver workers, with ADD and TOUCH additionally split into 
batches of "
@@ -145,7 +145,7 @@ public class HiveSyncConfigHolder {
       .key("hoodie.datasource.hive_sync.batching.threads")
       .defaultValue(4)
       .markAdvanced()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .withDocumentation("Number of worker threads used for parallel HiveQL 
partition dispatch when "
           + "`hoodie.datasource.hive_sync.batching.enabled` is true. The same 
value sizes both pools: the "
           + "Hive Driver workers used for ADD/TOUCH/SET_LOCATION and the 
metastore (Thrift) clients used "
diff --git 
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/CloudSourceConfig.java
 
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/CloudSourceConfig.java
index 69ab1753513c..2c56793c2f39 100644
--- 
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/CloudSourceConfig.java
+++ 
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/CloudSourceConfig.java
@@ -186,7 +186,7 @@ public class CloudSourceConfig extends HoodieConfig {
       .key(STREAMER_CONFIG_PREFIX + 
"source.cloud.data.include.source.path.field")
       .defaultValue(false)
       .markAdvanced()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .withDocumentation("When enabled, appends a nullable string column named 
_hoodie_cloud_source_path holding the "
           + "fully-qualified URI of the source file each record was read from, 
as returned by Spark's "
           + "input_file_name() (percent-encoded, e.g. 
s3a://bucket/dir/file%20name.json). A same-named column "
@@ -213,7 +213,7 @@ public class CloudSourceConfig extends HoodieConfig {
       .key(STREAMER_CONFIG_PREFIX + 
"source.cloud.data.check.file.exists.parallelism")
       .defaultValue(16)
       .markAdvanced()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .withDocumentation("Number of threads per Spark task used to check cloud 
object existence concurrently when "
           + ENABLE_EXISTS_CHECK.key() + " is enabled. Must be >= 1; 1 checks 
sequentially. All tasks on an executor "
           + "share one cached FileSystem client, so keep executor cores x this 
value within the client's connection "
@@ -223,7 +223,7 @@ public class CloudSourceConfig extends HoodieConfig {
       .key(STREAMER_CONFIG_PREFIX + 
"source.cloud.data.check.file.exists.partitions")
       .defaultValue(0)
       .markAdvanced()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .withDocumentation("Number of Spark partitions the cloud object 
existence checks are spread over when "
           + ENABLE_EXISTS_CHECK.key() + " is enabled; each partition checks 
with " + EXISTS_CHECK_PARALLELISM.key()
           + " threads. The default 0 sizes to the cluster (spark default 
parallelism, i.e. the registered executor "
diff --git 
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/KinesisSourceConfig.java
 
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/KinesisSourceConfig.java
index a9f3fd4688f9..c8dd7d54f628 100644
--- 
a/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/KinesisSourceConfig.java
+++ 
b/hudi-utilities/src/main/java/org/apache/hudi/utilities/config/KinesisSourceConfig.java
@@ -79,7 +79,7 @@ public class KinesisSourceConfig extends HoodieConfig {
   public static final ConfigProperty<String> KINESIS_ROLE_ARN = ConfigProperty
       .key(PREFIX + "role.arn")
       .noDefaultValue()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .markAdvanced()
       .withDocumentation("IAM role ARN to assume via STS when the Kinesis 
stream lives in a different AWS "
           + "account than the application. When set, and no static 
access/secret key is configured (static keys "
@@ -93,7 +93,7 @@ public class KinesisSourceConfig extends HoodieConfig {
   public static final ConfigProperty<String> KINESIS_ROLE_EXTERNAL_ID = 
ConfigProperty
       .key(PREFIX + "role.external.id")
       .noDefaultValue()
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .markAdvanced()
       .withDocumentation("External ID passed to sts:AssumeRole when assuming " 
+ PREFIX + "role.arn, for roles "
           + "whose trust policy carries an sts:ExternalId condition. Ignored 
when the role ARN is not set.");
@@ -101,7 +101,7 @@ public class KinesisSourceConfig extends HoodieConfig {
   public static final ConfigProperty<String> KINESIS_ROLE_SESSION_NAME = 
ConfigProperty
       .key(PREFIX + "role.session.name")
       .defaultValue("hudi-kinesis-source")
-      .sinceVersion("1.3.0")
+      .sinceVersion("1.2.1")
       .markAdvanced()
       .withDocumentation("STS role session name used when assuming " + PREFIX 
+ "role.arn. Shows up in the "
           + "target account's CloudTrail, so set it per pipeline when several 
jobs share one role.");

Reply via email to