Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
255 commits
Select commit Hold shift + click to select a range
08584da
feat(flink): Wire Flink 2.1 nested Parquet readers into the Hudi read…
skywalker0618 May 8, 2026
f0bf5eb
refactor(flink): Remove legacy Parquet nested readers superseded by F…
skywalker0618 May 9, 2026
2765654
docs: Document muttley package as internal/optional for OSS users (#1…
shangxinli May 10, 2026
b85f1cc
perf: Reduce unnecessary FSDataOutputStream#hsync to enhance append p…
TheR1sing3un May 10, 2026
062e4c6
fix(flink): add Apache license header to muttley/README.md (#18713)
shangxinli May 10, 2026
5355924
feat: add variant type adapter for Flink (#18702)
danny0405 May 11, 2026
a3272bd
chore: migrate the flink ITs run to flink2.1 (#18717)
danny0405 May 12, 2026
64974eb
feat(utilities): add Spark/HoodieStreamer validators for pre-commit v…
shangxinli May 17, 2026
9023d94
[MINOR] Fix typos in comments and assertion messages (#18763)
shangxinli May 18, 2026
4171751
fix(flink): enforce Parquet VARIANT annotation in Flink schema conver…
kbuci May 19, 2026
dbfafbc
feat(spark): add restore_to_instant stored procedure (#18696)
mahsoodebrahim May 19, 2026
8f74fda
feat(spark): add show_inflight_commits and cleanup_stale_inflight_com…
mahsoodebrahim May 19, 2026
88b4e85
chore: add spark4.1 and flink2.1 profile entries to RC bundle validat…
yihua May 21, 2026
18cddb5
fix(flink): fix disable table service not effective in hudi-flink (#1…
fhan688 May 21, 2026
a15bc7b
feat(flink): Backport Flink 2.1 Dremel nested Parquet reader rewrite …
skywalker0618 May 26, 2026
532edf3
chore: Fix stale zip file for variant backward compatibility test (#1…
cshuo May 26, 2026
9c3137a
chore: Add release information for Apache Hudi 1.2.0 (#18831)
yihua May 26, 2026
c7be772
fix(spark): Add options for archive procedure (#18437)
fhan688 May 26, 2026
4d06094
fix: RLI bootstrap fails due to NPE with cleaner table service (#18836)
lokeshj1703 May 26, 2026
3e3d0b8
chore: Fix Flink CI Maven profile arguments (#18845)
cshuo May 26, 2026
d24332a
[MINOR] Handle cancellation error with HoodieMetadataTableValidator (…
lokeshj1703 May 26, 2026
6834874
docs: Update DOAP file to include 0.15.1 (#18838)
voonhous May 27, 2026
fbb5c1f
feat(trino): [RFC-105] Trino Hudi Connector — Shim/Bundle Refactor (#…
yihua May 27, 2026
aa53446
feat(flink): add lance format for Flink append only table (#18741)
danny0405 May 27, 2026
ab60e09
refactor(flink): Refactor RowData writer factory to use HoodieSchema …
cshuo May 28, 2026
f690a22
fix(cli): Fix the typo in show-inflight CLI command (#18868)
yihua May 28, 2026
0655deb
perf(streamer): fold validate() error-table WriteStatus sums into one…
Davis-Zhang-Onehouse May 28, 2026
1263c29
fix(hudi-sync): Fix Hive test temp directory cleanup with JUnit TempD…
fhan688 May 31, 2026
8568c47
fix(flink): set canonical base path in Hive sync config (#18884)
fhan688 Jun 1, 2026
0cd87c4
fix(flink): fix data loss in stream read from earliest (#18848)
fhan688 Jun 1, 2026
9c94936
fix(spark): fix MOR bulk insert commit operation error (#18878)
fhan688 Jun 1, 2026
d1b9e3f
feat(utilities): migrate HoodieStreamerWriteStatusValidator into pre-…
shangxinli Jun 1, 2026
6a65c1e
fix: Fix NPE due to race condition while handling rocksdb handles (#1…
lokeshj1703 Jun 1, 2026
6572fe0
fix(flink): Trigger a failover after pending instants recommitted for…
cshuo Jun 2, 2026
0471c31
refactor: Add Lombok annotations to hudi-utilities (Part 1) (#17823)
voonhous Jun 2, 2026
7bc38af
refactor: Add Lombok Builders (#17781)
voonhous Jun 2, 2026
5cdfefe
fix(spark): align CTAS partition fields by table partition order (#18…
fhan688 Jun 3, 2026
7c8020b
fix(ci): Flink version corresponds to used in Docker image, resolutio…
geserdugarov Jun 3, 2026
920d63c
refactor: Add Lombok annotations to hudi-utilities (Part 3) (#17877)
voonhous Jun 3, 2026
7b457ef
refactor: Add Lombok annotations to hudi-common module (part 3) (#17825)
voonhous Jun 3, 2026
32c564a
refactor: Add Lombok Builder annotation to HoodieLogFormat (#17785)
voonhous Jun 3, 2026
8d0358e
chore(docker): silence Dockerfile lint warnings across image set (#18…
voonhous Jun 4, 2026
d36f87f
refactor(core): Unify record key/index key splitting and extraction (…
cshuo Jun 4, 2026
da2e4ef
fix(streamer): Use checkpoint V1 for non-incremental streamer sources…
yihua Jun 4, 2026
e3e003b
fix(flink): Use the execution mode without rocksdb cache by default ……
cshuo Jun 5, 2026
e3b86c3
chore: [MINOR] Update DOAP with 0.14.2 Release (#18924)
danny0405 Jun 6, 2026
bdbb493
fix(flink): avoid repeated timeline reload for unchanged lookup table…
fhan688 Jun 9, 2026
622ad78
fix(common): Close log writer output stream on append failure (#18909)
fhan688 Jun 9, 2026
f1259ca
fix(metrics): NPE handling when hudi metrics is disabled (#18947)
HuangZhenQiu Jun 9, 2026
e142c40
feat(flink): Backport Flink 2.1 Dremel nested Parquet reader to hudi-…
cshuo Jun 10, 2026
b414c9c
fix(clustering): retain missing partitions in selected/regex incremen…
fhan688 Jun 10, 2026
c778418
fix(flink): Close write client properly in DefaultCleanHandler (#18940)
cshuo Jun 11, 2026
ed2f11b
feat(flink): Backport Flink 2.1 Dremel nested Parquet reader to hudi-…
cshuo Jun 11, 2026
abae8aa
feat(flink): Backport Flink 2.1 Dremel nested Parquet reader to hudi-…
cshuo Jun 11, 2026
1025464
docs: RFC-106 - Record Level and Secondary Index Support for Flink Wr…
danny0405 Jun 11, 2026
69642da
perf(clean): Avoid extra getPathInfo RPC per file during clean execut…
voonhous Jun 11, 2026
94ceafb
fix(spark): catch HoodieSchemaNotFoundException in 3-arg DefaultSourc…
lokeshj1703 Jun 12, 2026
50198ac
refactor: Add Lombok annotations to hudi-common module (part 7) (#18944)
voonhous Jun 12, 2026
9b112cd
fix(flink): relocate org.apache.flink.dropwizard (#18982)
ericyuan915 Jun 12, 2026
cce4bbe
feat: add more metrics for delta streamer (#18085)
prashantwason Jun 12, 2026
aca664d
feat: Add HUDI version and engine properties to commit metadata (#18183)
prashantwason Jun 12, 2026
d330799
Fix NPE in getInputFileSlices when RO path filter returns empty parti…
prashantwason Jun 12, 2026
73ec481
fix: Isolate classloader-aware parallel execution in HoodiePreCommitV…
ashokkumar-allu Jun 13, 2026
df35de4
perf(spark): Resolve drop-partition-columns projection once per write…
voonhous Jun 13, 2026
87b86fe
fix(spark): strip _hoodie_* meta columns from CDC before/after images…
ad1happy2go Jun 13, 2026
fc56bed
perf(spark): Parse bucket index hash-field config once instead of per…
voonhous Jun 13, 2026
1588e02
perf(metadata): Parse RLI instant time once per batch instead of per …
voonhous Jun 13, 2026
23d5090
test(trino): de-flake TestHudi*FileOperations by disabling async tabl…
wombatu-kun Jun 14, 2026
7097670
perf(metadata): Avoid per-record enum-array clone and string parse wh…
voonhous Jun 14, 2026
4159a94
[MINOR] Cap UT_FT_10 Azure install to -T 2 to avoid flaky compiler he…
wombatu-kun Jun 16, 2026
e2af6db
refactor(metadata): Replace misused stream reduce with a plain for-lo…
voonhous Jun 16, 2026
d994e06
perf(io): Derive log file size from AppendResult on append-handle clo…
voonhous Jun 16, 2026
b38994a
refactor: Add Lombok annotations to hudi-common module (part 8) (#18957)
voonhous Jun 16, 2026
c2681b2
[MINOR] Wait for ZK connection in lock provider to de-flake direct-ma…
wombatu-kun Jun 16, 2026
969a7e8
fix(flink): fix the mor small file record size estimation (#18991)
danny0405 Jun 16, 2026
a6bf0f6
perf(kafka-connect): reuse AvroConvertor across records in the connec…
wombatu-kun Jun 16, 2026
d53340c
fix(spark): Propagate merge configs to file group reader during clust…
ad1happy2go Jun 16, 2026
4f4229f
perf(kafka-connect): memoize file id per partition path in the connec…
wombatu-kun Jun 16, 2026
98ad512
perf(kafka-connect): use a pre-sized ArrayList when flushing buffered…
wombatu-kun Jun 16, 2026
71cef99
chore(test): document macOS-specific consistency-guard slowness in cl…
voonhous Jun 16, 2026
5d81ce4
perf(metadata): Resolve column-stats field schemas once per collectio…
voonhous Jun 16, 2026
8e08db3
test(hadoop-mr): enable rollback case in HoodieRealtimeRecordReader.t…
oglego Jun 17, 2026
9b701ca
feat(flink): Support writing out-of-line BLOB columns (#18958)
kbuci Jun 17, 2026
a64cefc
fix(flink): reuse the preceeding avg size if there is no eligible est…
danny0405 Jun 17, 2026
15dd083
test(flink): de-flake testStreamReadMorTableWithCompactionFromEarlies…
wombatu-kun Jun 17, 2026
783a993
test(flink): retry short CollectSink reads to de-flake stream-read IT…
wombatu-kun Jun 18, 2026
38f524b
test(trino): de-flake TestHudi*FileOperations by asserting only synch…
wombatu-kun Jun 18, 2026
5223271
fix: prevent heartbeat timer from being permanently killed by slow or…
prashantwason Jun 22, 2026
d42b416
perf: Add dedicated batch size config for LSM timeline migration on u…
cshuo Jun 24, 2026
ff1a69c
test(clean): Cover tests executing pending clean before scheduling a …
suryaprasanna Jun 24, 2026
af0fbfe
test(spark): de-flake TestHoodieClientMultiWriter early-conflict dete…
voonhous Jun 25, 2026
3e671a2
fix(test): close TestingServer + write clients on all exit paths in T…
nsivabalan Jun 26, 2026
1fc9745
[MINOR] Guard detailed metadata size metrics with a config (#18803)
nsivabalan Jun 26, 2026
340deed
test(metadata): Add test coverage for deferred RLI init and bulk_inse…
nsivabalan Jun 26, 2026
2396fb0
fix(spark): support consistent hashing clustering on non-partitioned …
ad1happy2go Jun 26, 2026
5023643
chore(integ-test): bump trino-jdbc 390 to 481 (#19073)
voonhous Jun 26, 2026
964d366
Fix typo in PartitionTTLStrategyType#getPartitionTTLStrategyClassName…
wangxianghu Jun 26, 2026
e2467a4
fix: Skip missing properties files gracefully in DFSPropertiesConfigu…
nsivabalan Jun 26, 2026
e70f830
[HUDI-18827] Fix per-task write token for MOR (table v6) rollback log…
nsivabalan Jun 26, 2026
796104c
fix(spark): reject INSERT_OVERWRITE when overlapping with pending clu…
nsivabalan Jun 26, 2026
4570ecd
fix(streamer): override all deserialize() overloads in KafkaAvroSchem…
nsivabalan Jun 26, 2026
fbd3202
fix(spark): preserve Spark's native unresolved-column errors in Hoodi…
nada-attia Jun 27, 2026
4ce7ef8
[MINOR] Forward spark.hoodie.* SparkConf to write path (parity with r…
prashantwason Jun 27, 2026
a29a488
fix(partition-ttl): Fix the integer overflow issue when TTL exceeded …
wangxianghu Jun 29, 2026
4a2c490
perf(common): Avoid per-record HoodieSchema rebuilds on Avro read/mer…
voonhous Jun 30, 2026
d35272a
test(flink): de-flake testLookupJoin lookup-join IT (#19093)
wombatu-kun Jun 30, 2026
d7c5a22
fix(partition-ttl): Fix IllegalArgumentException in KeepByTimeStrateg…
wangxianghu Jun 30, 2026
a132f0a
feat(spark): add repair_orphan_files stored procedure (#19121)
mahsoodebrahim Jul 1, 2026
f17346a
fix: remove the dependency to flink-table-planner (#19131)
danny0405 Jul 2, 2026
605d2e4
chore(glue-sync): Ignore EntityNotFoundException when dropping Glue p…
wangxianghu Jul 3, 2026
6efa252
fix(storage-format): return all records when scanning multi-block nat…
yihua Jul 3, 2026
2acbe65
fix(build): restore imports dropped by earlier cherry-picks
voonhous Aug 5, 2026
f0fa7a1
refactor(spark): consolidate the vendored AvroUtils fork into hudi-sp…
yihua Jul 3, 2026
8327a72
refactor(spark): share Spark 4.x partition-values and mapping classes…
yihua Jul 3, 2026
0ba508d
refactor(spark): dedup catalyst utils and analysis rules across Spark…
yihua Jul 3, 2026
ec8e678
refactor(spark): consolidate duplicated small utils across Spark vers…
yihua Jul 3, 2026
49736bf
refactor: Retire leftover Avro Schema usages in AvroSchemaUtils and L…
voonhous Jul 3, 2026
a91e444
refactor: Migrate reconcileSchema/reconcileSchemaRequirements to Hood…
voonhous Jul 3, 2026
5906248
perf(common): replace BitSet with a fixed word array in the ported bl…
yihua Jul 3, 2026
2d84d0c
test: handle expected OCC conflict in concurrent Java writer test (#1…
yihua Jul 3, 2026
98598d6
refactor(flink): use SLF4J parameterized logging instead of string co…
voonhous Jul 4, 2026
185bfae
refactor(hadoop-mr): use SLF4J parameterized logging instead of strin…
voonhous Jul 4, 2026
eb67451
refactor(hadoop-common): use SLF4J parameterized logging instead of s…
voonhous Jul 4, 2026
f059079
refactor(common): use SLF4J parameterized logging instead of string c…
voonhous Jul 4, 2026
4007c39
fix(spark): correct self-recursive equals in ProcedureParameterImpl (…
yihua Jul 4, 2026
71c368d
refactor(cli): use SLF4J parameterized logging instead of string conc…
voonhous Jul 4, 2026
75c587b
test(spark): add streaming source and writer support coverage (#19166)
yihua Jul 4, 2026
fd3823a
refactor(spark): use SLF4J parameterized logging instead of string co…
voonhous Jul 4, 2026
16cdb7d
refactor(aws): use SLF4J parameterized logging instead of string conc…
voonhous Jul 4, 2026
51d1c8a
refactor(utilities): use SLF4J parameterized logging instead of strin…
voonhous Jul 4, 2026
6f8b046
refactor(examples): use SLF4J parameterized logging instead of string…
voonhous Jul 4, 2026
18a2eb8
fix(spark): make export_instants desc ordering work (#19172)
yihua Jul 5, 2026
ab746b3
refactor(sync): use SLF4J parameterized logging instead of string con…
voonhous Jul 5, 2026
5241c48
refactor(client): use SLF4J parameterized logging instead of string c…
voonhous Jul 5, 2026
81fff77
refactor(io): use SLF4J parameterized logging instead of string conca…
voonhous Jul 5, 2026
dc7eff4
test(trino): de-flake testRecordLevelFileSkipping by setting the reco…
wombatu-kun Jul 7, 2026
82c8fd9
fix(flink): avoid AIOOBE in NestedColumnReader across the read batch …
ericyuan915 Jul 7, 2026
ac17e61
test(integ-test): add Testcontainers E2E for VECTOR/BLOB/VARIANT Hive…
voonhous Jul 8, 2026
c0cde80
fix(spark): demote spurious per-write INFO logs to debug (#19170)
yihua Jul 8, 2026
53c2bc7
test(client): cover low-coverage small classes across hudi-client (#1…
yihua Jul 8, 2026
177f67d
test(integ-test): add Spark 4.1.1 stack to hive-sync E2E matrix (#19216)
voonhous Jul 8, 2026
ad88cb3
fix(bundle): shade parquet-variant into common bundle includes for Sp…
voonhous Jul 9, 2026
24bd11b
test(spark): add extended SQL parser coverage for index DDL and Hudi …
yihua Jul 9, 2026
6165502
fix(spark): read Lance BLOB columns in <=512-row chunks to avoid lanc…
vinothchandar Jul 10, 2026
a8d8868
fix(common): name the offending expression in BindVisitor's unsupport…
wombatu-kun Jul 10, 2026
51ebdf9
refactor(spark): consolidate the vendored 3.x Avro serde forks into h…
yihua Jul 10, 2026
133eee3
fix(flink): prevent data loss on global failover for streaming writes…
Joy-2000 Jul 10, 2026
4c1b2a4
fix(build): import OperationConverter from its release-branch package
voonhous Aug 5, 2026
68b134c
fix(spark): read INLINE blobs as CONTENT on internal write-side Lance…
voonhous Jul 11, 2026
4436850
fix(build): import lock result enums from their release-branch package
voonhous Aug 5, 2026
9049cc5
fix(build): import Spark Metadata/StructField types in TestHoodieSpar…
voonhous Aug 5, 2026
04b5c0e
Remove spaces around partition columns (#18423)
linliu-code Jul 11, 2026
0068f21
fix: align log4j2 and slf4j versions to resolve IntelliJ test failure…
suryaprasanna Jul 13, 2026
b57870f
fix(spark): match the staged table, not LogicalWriteInfo, in BasicSta…
wombatu-kun Jul 13, 2026
d1d385e
test(spark): cover the legacy parquet read path with file-group reade…
yihua Jul 13, 2026
2576cec
fix: reuse Inflater/Deflater in BitCaskDiskMap to avoid JDK8 finalize…
vamsikarnika Jul 14, 2026
05957b8
fix: Improve error message for conflict resolution (#18119)
vinishjail97 Jul 15, 2026
e6a28c8
fix(flink): remove the Source V2 read teardown race via materialized …
wombatu-kun Jul 17, 2026
814c294
docs: claim RFC-108 Multi-dataset incremental reads in Hudi Streamer …
ashokkumar-allu Jul 17, 2026
f32a5fe
fix(test): stabilize flaky testReattemptOfFailedClusteringCommit (#19…
lokeshj1703 Jul 17, 2026
ff09856
test(common): add log-format reader and scanner coverage (#19223)
yihua Jul 19, 2026
ab4a6d6
fix(metadata-table): add config to skip zero-size data files on MDT i…
nada-attia Jul 19, 2026
3760a3c
fix(build): use CURRENT_VERSION for the inline log-format header on r…
voonhous Aug 6, 2026
d8d3699
fix(hive-sync): sync column and partition column comments to HMS (#19…
rangareddy Jul 20, 2026
513d273
test(spark): add unit coverage for Spark row, schema and sort utiliti…
yihua Jul 20, 2026
eaa2af6
test(common): add unit coverage for config and utility classes (#19220)
yihua Jul 20, 2026
7cdc03e
test(client): add unit coverage for client utilities and services (#1…
yihua Jul 20, 2026
128e962
fix(hive-sync): close proxied IMetaStoreClient in HoodieHiveSyncClien…
skywalker0618 Jul 21, 2026
a3bdfcc
fix(flink): avoid reusing split reader functions across fetchers (#19…
cshuo Jul 21, 2026
6ff2463
fix(build): import HoodieStorageUtils from its release-branch package
voonhous Aug 6, 2026
0d279d7
test(common): add unit coverage for metrics reporters and schema util…
yihua Jul 21, 2026
6e8d46d
fix(hive-sync): fix partition-value parsing on '=' and pushdown compa…
wombatu-kun Jul 21, 2026
46468ab
fix: relax existing column to nullable in reconcileSchema when source…
vamsikarnika Jul 22, 2026
55a0957
fix(hive-sync): set HMS table createTime in seconds instead of millis…
wombatu-kun Jul 22, 2026
9d4c603
chore: upload Flink integration-test coverage (#19343)
danny0405 Jul 22, 2026
0311b3b
fix: do not fall back to timeline server markers on transient HDFS fa…
vamshipasunuru1 Jul 22, 2026
d08d653
refactor(spark): share the Spark 3.x legacy parquet file format via a…
yihua Jul 22, 2026
4236e70
fix(build): move TestSparkValueMetadataUtils to the release-branch st…
voonhous Aug 6, 2026
d63a00d
[HUDI-18060] Improve error message when ordering field value is null …
prashantwason Jul 22, 2026
4b60819
fix(hive-sync): keep HMS lock heartbeat alive and release its thread …
wombatu-kun Jul 22, 2026
ef9a7f3
fix(utilities): guard Source.releaseResources() against transient RDD…
niks002 Jul 22, 2026
696fe6c
chore(utilities): add SQS backlog / in-flight visibility to S3 events…
Davis-Zhang-Onehouse Jul 22, 2026
f69f68e
fix(reader): derive pre-v9 CDC delete markers from the effective payl…
lokeshj1703 Jul 22, 2026
028357b
test(common): add LSM file group read path coverage (#19347)
danny0405 Jul 23, 2026
b375651
fix(flink): make hudi-flink-bundle built with flink-bundle-shade-hive…
skywalker0618 Jul 23, 2026
1c9fd00
fix: Handle map/array-nested leaf columns in column stats collection …
vinishjail97 Jul 23, 2026
a03241d
test(spark): Fix flaky TestSparkFilterHelper by giving it its own Spa…
wombatu-kun Jul 23, 2026
500ccc9
docs(docker): document build_docker_images.sh flags (#18687)
201573 Jul 23, 2026
a828431
fix(metadata-table): follow-ups for the zero-size file skip (#18611) …
voonhous Jul 23, 2026
a51b3a4
fix(flink): normalize row logical conversions and improve coverage (#…
danny0405 Jul 23, 2026
67b1072
fix(flink): deduplicate delete keys and cover write paths (#19354)
danny0405 Jul 23, 2026
349bbe0
fix(timeline-service): fail marker creation requests when marker flus…
yihua Jul 24, 2026
a96c592
test(hudi-client): improve metadata table writer coverage (#19363)
cshuo Jul 24, 2026
3c3a76d
chore(deps): bump io.airlift:aircompressor from 0.27 to 2.0.3 (#18247)
dependabot[bot] Jul 24, 2026
8199b6b
chore(deps): bump org.apache.thrift:libthrift (#18910)
dependabot[bot] Jul 24, 2026
278fc83
chore(deps): bump org.apache.commons:commons-configuration2 (#18801)
dependabot[bot] Jul 24, 2026
4ac33dd
fix(hive-sync): stop the HMS lock heartbeat once the metastore drops …
wombatu-kun Jul 24, 2026
64aac8b
fix(record-index-bootstrap): sort record index keys by UTF-8 bytes to…
nada-attia Jul 24, 2026
ef9e70e
perf(flink): Parse bucket index hash-field config once instead of per…
voonhous Jun 17, 2026
b5a36f7
fix(build): use log4j-slf4j2-impl in hudi-flink1.17.x
voonhous Aug 6, 2026
36fc3a2
fix: Fix lock expiration metric (#18492)
linliu-code Jul 26, 2026
74d1097
feat(trino): Migrate the Trino-Hudi connector into the Hudi repo (RFC…
voonhous Jul 26, 2026
db4710e
feat(hive-sync): batch and parallelize HiveQL partition operations (#…
nsivabalan Jul 27, 2026
56b9330
fix(hive-sync): drop the unreachable HMS lock timeout-recovery path (…
wombatu-kun Jul 27, 2026
43fd161
fix(metadata): correct index definition lookup and improve mdt read c…
cshuo Jul 28, 2026
71072a6
fix(common): load single archived instant details (#19385)
danny0405 Jul 28, 2026
1e02ba5
fix(schema): gate timestamp-precision change behind a per-field verdi…
yihua Jul 28, 2026
b3c7115
fix(build): drop duplicate MetricRegistry import in TestHoodieIncrSource
voonhous Aug 6, 2026
07da1c5
fix(reader): give the file group reader schema handler the merged rec…
wombatu-kun Jul 28, 2026
63f32d8
fix(hive-sync): stop HiveDriverPool from swallowing a failed SQL batc…
wombatu-kun Jul 29, 2026
dd454cd
feat(trino): resolve merge-required columns from the table schema (#1…
voonhous Jul 29, 2026
b60d76f
fix(client): fix NPE in schema conflict resolution on commits with nu…
yihua Jul 29, 2026
7b1f070
test(flink): improve streamer config and schema provider coverage (#1…
danny0405 Jul 29, 2026
1f92b19
feat(release): add a JDK 25 staging path for org.apache.hudi:hudi-tri…
voonhous Jul 30, 2026
0ee5be7
test(trino): add MoR read tests for delete markers, custom payloads a…
voonhous Jul 30, 2026
233bf0d
feat(client): enrich write commit callback message and fire it for ta…
codope Jul 31, 2026
abea033
perf(common): avoid UTF-8 allocations in string comparator (#19414)
cshuo Jul 31, 2026
f96c7c1
fix(hive-sync): make skip_ro_suffix take precedence over sync_snapsho…
yihua Jul 31, 2026
2599498
fix(utilities): include metadata table index-init instants in the rec…
Davis-Zhang-Onehouse Jul 31, 2026
bc19235
fix(trino): read uncompacted MDT HFILE log deltas and guard index pru…
voonhous Aug 1, 2026
c31aa56
fix(flink): rethrow StreamWriteOperatorCoordinator start() failures (…
Joy-2000 Aug 2, 2026
793f22c
fix(trino): remap pushed-down predicate columns to physical file ordi…
wombatu-kun Aug 2, 2026
99c77c7
test(java-client): cover both marker types with the embedded timeline…
rangareddy Aug 3, 2026
ad9682c
fix(metrics): explain how to enable the CloudWatch reporter when hudi…
rangareddy Aug 3, 2026
0559153
fix(timeline): do not NPE on archived instants without a completion t…
rangareddy Aug 3, 2026
544d5f8
perf(trino): cache decimal Avro schema in HudiAvroSerializer instead …
voonhous Aug 3, 2026
b55a86a
fix(meta-sync): advance last commit time synced when it trails the ac…
yihua Aug 3, 2026
37f7d88
fix(fs): stop depending on the optional FileSystem#getScheme() (#19470)
rangareddy Aug 3, 2026
2df42de
fix(schema): require a per-field override to promote a bare long to a…
yihua Aug 4, 2026
f6832a5
fix(trino): report real block size and slice splits solely by target_…
voonhous Aug 4, 2026
37cf01d
perf(trino): drop the decimal schema cache and memoize prefilled valu…
voonhous Aug 4, 2026
392d763
fix(flink): close CDC image spillable maps on failures (#19482)
danny0405 Aug 4, 2026
662fd5f
fix(build): import Lazy from its release-branch package in HoodieHado…
voonhous Aug 6, 2026
ea9dda0
fix(metrics): do not drop the whole CloudWatch batch on one unmappabl…
rangareddy Aug 4, 2026
a85860f
test(trino): add a Trino E2E testcontainers pipeline for the RFC-105 …
voonhous Aug 6, 2026
aaec911
fix(flink): close lookup reader after cache reload attempts (#19503)
danny0405 Aug 6, 2026
a7f7aaf
fix(spark): preserve the Avro fixed-size decimal width in the Spark r…
yihua Aug 6, 2026
c96f992
fix(metrics): route the reflection failures a CloudWatch skew actuall…
rangareddy Aug 6, 2026
339438f
fix(build): import schema internal types from their release-branch pa…
voonhous Aug 7, 2026
7a082ae
fix(ci): drop the changes-gate residue that kept Java CI from starting
voonhous Aug 7, 2026
3b8f0ec
fix(client): report completed timeline action in clustering callback …
codope Aug 6, 2026
9fd9089
fix(common): throw IllegalStateException from the checkState message-…
voonhous Aug 7, 2026
f4e3ed2
fix(build): point the Trino module poms at this branch's version
voonhous Aug 7, 2026
4ba73aa
perf(flink): use a shared work-stealing split pool for Source V2 boun…
ericyuan915 Aug 7, 2026
a7ad642
test(metadata): drop the file-slice half of wrapsMetadataReaderAndFil…
voonhous Aug 7, 2026
4079baf
fix(trino): port the connector to this branch's package layout and me…
voonhous Aug 7, 2026
e94717d
fix(flink): preserve Avro fixed decimal widths in Parquet writes (#19…
cshuo Aug 6, 2026
91a6969
test(flink): mock FlinkAppendHandle for the MOR routing assertions
voonhous Aug 7, 2026
aa1c968
fix(trino): derive stats-index columns when no index definition exists
voonhous Aug 7, 2026
31d35b0
fix(trino): emit Utf8 for Avro string fields so MoR merges compare
voonhous Aug 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
161 changes: 118 additions & 43 deletions .github/workflows/bot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
include:
- scalaProfile: "scala-2.12"
sparkProfile: "spark3.5"
flinkProfile: "flink1.18"
flinkProfile: "flink2.1"

steps:
- uses: actions/checkout@v5
Expand Down Expand Up @@ -126,7 +126,7 @@ jobs:
include:
- scalaProfile: "scala-2.12"
sparkProfile: "spark3.5"
flinkProfile: "flink1.18"
flinkProfile: "flink2.1"

steps:
- uses: actions/checkout@v5
Expand Down Expand Up @@ -178,7 +178,7 @@ jobs:
include:
- scalaProfile: "scala-2.12"
sparkProfile: "spark3.5"
flinkProfile: "flink1.18"
flinkProfile: "flink2.1"

env:
UT_MODULES: >-
Expand Down Expand Up @@ -563,7 +563,7 @@ jobs:
include:
- scalaProfile: "scala-2.12"
sparkProfile: "spark3.5"
flinkProfile: "flink1.20"
flinkProfile: "flink2.1"

steps:
- uses: actions/checkout@v5
Expand All @@ -580,14 +580,14 @@ jobs:
SPARK_PROFILE: ${{ matrix.sparkProfile }}
FLINK_PROFILE: ${{ matrix.flinkProfile }}
run:
mvn clean install -T 2 -D"$SCALA_PROFILE" -D"$SPARK_PROFILE" -D"FLINK_PROFILE" -DskipTests=true -Phudi-platform-service $MVN_ARGS -am -pl hudi-hadoop-mr,hudi-client/hudi-java-client
mvn clean install -T 2 -D"$SCALA_PROFILE" -D"$SPARK_PROFILE" -D"$FLINK_PROFILE" -DskipTests=true -Phudi-platform-service $MVN_ARGS -am -pl hudi-hadoop-mr,hudi-client/hudi-java-client
- name: UT - hudi-hadoop-mr and hudi-client/hudi-java-client
env:
SCALA_PROFILE: ${{ matrix.scalaProfile }}
SPARK_PROFILE: ${{ matrix.sparkProfile }}
FLINK_PROFILE: ${{ matrix.flinkProfile }}
run:
mvn test -Punit-tests -fae -D"$SCALA_PROFILE" -D"$SPARK_PROFILE" -D"FLINK_PROFILE" -pl hudi-hadoop-mr,hudi-client/hudi-java-client $MVN_ARGS -Djacoco.skip=false
mvn test -Punit-tests -fae -D"$SCALA_PROFILE" -D"$SPARK_PROFILE" -D"$FLINK_PROFILE" -pl hudi-hadoop-mr,hudi-client/hudi-java-client $MVN_ARGS -Djacoco.skip=false
- name: Generate merged coverage report
if: always()
run: ./scripts/jacoco/generate_merged_coverage_report.sh $GITHUB_WORKSPACE
Expand Down Expand Up @@ -938,19 +938,30 @@ jobs:
FLINK_PROFILE: ${{ matrix.flinkProfile }}
FLINK_AVRO_VERSION: ${{ matrix.flinkAvroVersion }}
FLINK_PARQUET_VERSION: ${{ matrix.flinkParquetVersion }}
if: ${{ endsWith(env.FLINK_PROFILE, '1.20') }}
if: ${{ endsWith(env.FLINK_PROFILE, '2.1') }}
run: |
mvn clean install -T 2 -Pintegration-tests -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -pl hudi-flink-datasource/hudi-flink -am -Davro.version="$FLINK_AVRO_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION" -DskipTests=true $MVN_ARGS
mvn verify -Pintegration-tests -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -Davro.version="$FLINK_AVRO_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION" $FLINK_IT_FILTER1 -pl hudi-flink-datasource/hudi-flink $MVN_ARGS
mvn verify -Pintegration-tests -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -Davro.version="$FLINK_AVRO_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION" $FLINK_IT_FILTER1 -pl hudi-flink-datasource/hudi-flink $MVN_ARGS -Djacoco.skip=false
- name: Generate merged coverage report
if: always() && endsWith(matrix.flinkProfile, '2.1')
run: ./scripts/jacoco/generate_merged_coverage_report.sh $GITHUB_WORKSPACE
- name: Upload coverage to Codecov
if: always() && endsWith(matrix.flinkProfile, '2.1')
uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5
with:
files: ./jacoco-report.xml
disable_search: true
flags: flink-integration-tests
token: ${{ secrets.CODECOV_TOKEN }}

test-flink-2:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- flinkProfile: "flink1.20"
- flinkProfile: "flink2.1"
flinkAvroVersion: "1.11.4"
flinkParquetVersion: '1.13.1'
flinkParquetVersion: '1.15.2'
steps:
- uses: actions/checkout@v5
- name: Set up JDK 11
Expand All @@ -974,30 +985,41 @@ jobs:
FLINK_PROFILE: ${{ matrix.flinkProfile }}
FLINK_AVRO_VERSION: ${{ matrix.flinkAvroVersion }}
FLINK_PARQUET_VERSION: ${{ matrix.flinkParquetVersion }}
if: ${{ endsWith(env.FLINK_PROFILE, '1.20') }}
if: ${{ endsWith(env.FLINK_PROFILE, '2.1') }}
run: |
mvn clean install -T 2 -Pintegration-tests -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -pl hudi-flink-datasource/hudi-flink -am -Davro.version="$FLINK_AVRO_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION" -DskipTests=true $MVN_ARGS
mvn verify -Pintegration-tests -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -Davro.version="$FLINK_AVRO_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION" $FLINK_IT_FILTER2 -pl hudi-flink-datasource/hudi-flink $MVN_ARGS
mvn verify -Pintegration-tests -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -Davro.version="$FLINK_AVRO_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION" $FLINK_IT_FILTER2 -pl hudi-flink-datasource/hudi-flink $MVN_ARGS -Djacoco.skip=false
- name: Generate merged coverage report
if: always() && endsWith(matrix.flinkProfile, '2.1')
run: ./scripts/jacoco/generate_merged_coverage_report.sh $GITHUB_WORKSPACE
- name: Upload coverage to Codecov
if: always() && endsWith(matrix.flinkProfile, '2.1')
uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5
with:
files: ./jacoco-report.xml
disable_search: true
flags: flink-integration-tests
token: ${{ secrets.CODECOV_TOKEN }}

docker-java17-test:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- scalaProfile: 'scala-2.13'
flinkProfile: 'flink1.20'
flinkProfile: 'flink2.1'
sparkProfile: 'spark3.5'
sparkRuntime: 'spark3.5.0'
- scalaProfile: 'scala-2.12'
flinkProfile: 'flink1.20'
flinkProfile: 'flink2.1'
sparkProfile: 'spark3.5'
sparkRuntime: 'spark3.5.0'
- scalaProfile: 'scala-2.13'
flinkProfile: 'flink1.20'
flinkProfile: 'flink2.1'
sparkProfile: 'spark4.0'
sparkRuntime: 'spark4.0.0'
- scalaProfile: 'scala-2.13'
flinkProfile: 'flink1.20'
flinkProfile: 'flink2.1'
sparkProfile: 'spark4.1'
sparkRuntime: 'spark4.1.1'

Expand Down Expand Up @@ -1074,7 +1096,7 @@ jobs:
mvn clean package -T 2 -D"$SCALA_PROFILE" -D"$SPARK_PROFILE" -D"$FLINK_PROFILE" -DdeployArtifacts=true -DskipTests=true $MVN_ARGS
# TODO remove the sudo below. It's a needed workaround as detailed in HUDI-5708.
sudo chown -R "$USER:$(id -g -n)" hudi-platform-service/hudi-metaserver/target/generated-sources
mvn package -T 2 -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -DdeployArtifacts=true -DskipTests=true $MVN_ARGS -pl packaging/hudi-flink-bundle -am -Davro.version="$FLINK_AVRO_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION"
mvn package -T 2 -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -DdeployArtifacts=true -DskipTests=true $MVN_ARGS -pl packaging/hudi-flink-bundle -am -Davro.version="$FLINK_AVRO_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION"
fi
- name: IT - Bundle Validation - OpenJDK 11
env:
Expand Down Expand Up @@ -1201,7 +1223,7 @@ jobs:
matrix:
include:
- sparkProfile: 'spark3.5'
flinkProfile: 'flink1.20'
flinkProfile: 'flink2.1'
sparkArchive: 'spark-3.5.3/spark-3.5.3-bin-hadoop3.tgz'
steps:
- uses: actions/checkout@v5
Expand Down Expand Up @@ -1251,6 +1273,81 @@ jobs:
rm -f $GITHUB_WORKSPACE/$SPARK_ARCHIVE
mvn verify $SCALA_PROFILE -D"$SPARK_PROFILE" -Pintegration-tests -pl !hudi-flink-datasource/hudi-flink $MVN_ARGS

integration-tests-hive-sync:
# Testcontainers-based E2E hive sync coverage for Hudi's custom logical types
# (VECTOR, BLOB) and the Spark 4.0+ VARIANT type. Runs the integ2 testcontainers
# suite (ITTestCustomTypeHiveSync) against a real Hive metastore on Spark 3.5.3,
# 4.0.2, and 4.1.1 stacks.
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- sparkProfile: 'spark3.5'
scalaProfile: '-Dscala-2.12 -Dscala.binary.version=2.12'
flinkProfile: 'flink1.20'
jdkVersion: '11'
composePrefix: 'docker-compose_hadoop284_hive2310_spark353'
sparkAdhocImage: 'apachehudi/hudi-hadoop_2.8.4-hive_2.3.10-sparkadhoc_3.5.3:latest'
- sparkProfile: 'spark4.0'
scalaProfile: '-Dscala-2.13 -Dscala.binary.version=2.13'
flinkProfile: 'flink1.20'
jdkVersion: '17'
composePrefix: 'docker-compose_hadoop340_hive2310_spark402'
sparkAdhocImage: 'apachehudi/hudi-hadoop_3.4.0-hive_2.3.10-sparkadhoc_4.0.2:latest'
- sparkProfile: 'spark4.1'
scalaProfile: '-Dscala-2.13 -Dscala.binary.version=2.13'
flinkProfile: 'flink1.20'
jdkVersion: '17'
composePrefix: 'docker-compose_hadoop340_hive2310_spark411'
sparkAdhocImage: 'apachehudi/hudi-hadoop_3.4.0-hive_2.3.10-sparkadhoc_4.1.1:latest'
steps:
- uses: actions/checkout@v5
- name: Set up JDK ${{ matrix.jdkVersion }}
uses: actions/setup-java@v5
with:
java-version: ${{ matrix.jdkVersion }}
distribution: 'temurin'
architecture: x64
cache: maven
- name: Free disk space
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /usr/local/share/boost
docker system prune --all --force --volumes
- name: Pre-pull compose images (fails fast if not published)
env:
SPARK_ADHOC_IMAGE: ${{ matrix.sparkAdhocImage }}
run: |
# Surface missing Spark 4.0.2 images before the 15-minute Maven install.
# The remaining images in the compose stack are pulled by docker-compose at
# test time.
docker pull "$SPARK_ADHOC_IMAGE"
- name: Build and install Hudi artifacts
env:
SPARK_PROFILE: ${{ matrix.sparkProfile }}
FLINK_PROFILE: ${{ matrix.flinkProfile }}
SCALA_PROFILE: ${{ matrix.scalaProfile }}
run:
mvn clean install -T 2 $SCALA_PROFILE -D"$SPARK_PROFILE" -D"$FLINK_PROFILE" -Pintegration-tests -DskipTests=true -Ddocker.compose.skip=true $MVN_ARGS
- name: Run integ2 testcontainers suite
env:
SPARK_PROFILE: ${{ matrix.sparkProfile }}
SCALA_PROFILE: ${{ matrix.scalaProfile }}
COMPOSE_PREFIX: ${{ matrix.composePrefix }}
run: |
# -DskipITs=false overrides the spark4.0 profile's skipITs=true default
# (see root pom.xml). Without it, failsafe skips all ITs on the spark4.0 matrix row.
mvn verify $SCALA_PROFILE -D"$SPARK_PROFILE" -Pintegration-tests \
-pl hudi-integ-test \
-DskipITs=false \
-Ddocker.compose.skip=true \
-Dit.test='ITTestCustomTypeHiveSync' \
-Dspark.docker.compose.prefix=$COMPOSE_PREFIX \
$MVN_ARGS

build-spark-java17:
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -1297,9 +1394,9 @@ jobs:
matrix:
include:
- scalaProfile: "scala-2.12"
flinkProfile: "flink1.20"
flinkProfile: "flink2.1"
flinkAvroVersion: '1.11.4'
flinkParquetVersion: '1.13.1'
flinkParquetVersion: '1.15.2'
steps:
- uses: actions/checkout@v5
- name: Set up JDK 17
Expand All @@ -1316,33 +1413,11 @@ jobs:
FLINK_AVRO_VERSION: ${{ matrix.flinkAvroVersion }}
FLINK_PARQUET_VERSION: ${{ matrix.flinkParquetVersion }}
run:
mvn clean install -T 2 -Djava17 -Djava.version=17 -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -pl hudi-examples/hudi-examples-flink -am -Davro.version="$FLINK_AVRO_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION" -DskipTests=true $MVN_ARGS
mvn clean install -T 2 -Djava17 -Djava.version=17 -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -pl hudi-examples/hudi-examples-flink -am -Davro.version="$FLINK_AVRO_VERSION" -Dparquet.version="$FLINK_PARQUET_VERSION" -DskipTests=true $MVN_ARGS
- name: Quickstart Test
env:
SCALA_PROFILE: ${{ matrix.scalaProfile }}
FLINK_PROFILE: ${{ matrix.flinkProfile }}
run:
mvn test -Punit-tests -Djava17 -Djava.version=17 -D"$SCALA_PROFILE" -D"$FLINK_PROFILE" -pl hudi-examples/hudi-examples-flink $MVN_ARGS

test-hudi-trino-plugin:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up JDK 23
uses: actions/setup-java@v5
with:
# Note: We are not caching here again, as we want to use the .m2 repository populated by
# the previous step
java-version: '23'
distribution: 'temurin'
architecture: x64
cache: maven
- name: Build hudi-trino-plugin with JDK 23
working-directory: ./hudi-trino-plugin
run:
mvn clean install -DskipTests
- name: Test hudi-trino-plugin with JDK 23
working-directory: ./hudi-trino-plugin
run:
mvn test -Dapi.version=1.44
Loading
Loading