Keep remaining connector source attachments and release checks module-local
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Stale
- Tech stack
- java
- Domain
- build-system, testing
Research direction
Start with PR #645 at final candidate 1c5c08c2fcc0687d72db2949521fda7f7e3f05a6, then inspect the Iceberg and Doris module source configuration and the release artifact/source attachment checker. Run the host-only release and source checks for Flink 1.18/JDK 11 and Flink 2.2/JDK 17. Done means full hosted qualification completes and the combined PR is merged; keep the issue open until it ships.
Written by the indexing model from the issue text.
Description
Reproduced problem
At PR #645 head 0ffb67562, the real Flink 2.2/JDK 17 release source attachment for Iceberg contains 70 Java files although the module owns only 40. The extra 30 files come from the inherited root compatibility source directory, for example tech.streamfusion.compat.FlinkCompat and tech.streamfusion.planner.NativeCanonicalSinkExecNode. They belong to core and are not packaged in Iceberg's executable JAR.
Iceberg and Doris already store implementations locally, but still inherit the root host source directory and rely on compiler/Javadoc/source filters. Doris's source filter currently prevents the same leak; it does not remove the accidental source-root dependency. Separately, the release artifact guard does not compare Iceberg/Doris classes with their local sources and omits Hudi from its checked release-module set, even though Hudi is shipped in the Flink 1.18 archive.
This is a source-publication and build-validation gap, not an observed SQL result mismatch. The current Iceberg, Doris and Hudi binary class/SPI ownership checks pass when invoked directly.
Solution
- Disable the inherited root compatibility source execution in common-only Iceberg and Doris modules. Remove obsolete production compiler/Javadoc/source include filters; retain their existing host/JDK gates and opt-in test-source profiles.
- Check source attachments against the exact selected module source paths and bytes. Reject missing, foreign, stale, wrong-host or duplicate Java inputs and executable/native payloads. Keep binary class/SPI checks and missing-module fallback unchanged.
- Extend the real release guard to Iceberg and Doris on Flink 2.2 and Hudi on Flink 1.18, retaining Java-only native-payload checks and existing deployment identities.
- Verify clean release/source/Javadoc builds, unchanged binary class/SPI/native contents and focused local connector tests.
- Complete full hosted qualification and merge the combined PR.
Append focused commits to PR #645 so the final module-boundary qualification includes these previously missed artifacts. Do not change Java packages, JNI/DSO ownership, SQL admission, native execution contracts or checkpoint/recovery assertions. Core/runtime source consolidation remains separate work.
Implementation and validation
Implemented in two focused commits appended to PR #645: 43d0aaeb3 removes accidental root source inheritance and 1c5c08c2f extends actual-artifact/source-attachment validation. Final candidate: 1c5c08c2fcc0687d72db2949521fda7f7e3f05a6.
Clean unsigned release/source/Javadoc builds and complete host-only artifact/consumer-POM/loader checks pass on Flink 1.18/JDK 11 and Flink 2.2/JDK 17. Iceberg now publishes exactly 40 owned Java sources, Doris 18 and Hudi 25. The new checker rejects the actual pre-fix Iceberg source JAR's 30 foreign sources. All five ownership regression test methods pass, including both-host negative controls.
All 155 Iceberg/Doris/Hudi binary class/SPI/native entries remain byte-identical. All 316 focused Doris/Iceberg tests and 13 Hudi tests pass without skips, including missing-stock-connector fallback, native sink readback, checkpoint/rescaling recovery, stock/native Hudi reader restoration and batch/cancellation ownership. Strict docs pass. No SQL algorithm, admission, deployment identity or native library ownership changed.
Hosted checks for this exact final head:
Keep this issue open until the change ships; queued/running hosted checks are not reported as passed.
- Dominant language
- Java
- Stars
- 157
- Forks
- 13
- Avg merge
- 7h 56m
- Merged PRs (30d)
- 153
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from datafusion-contrib/StreamFusion
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
datafusion-contrib/StreamFusion#653 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
datafusion-contrib/StreamFusion#187 ·
Maintainers usually reply within 1 day
-
Widen native Kafka source admission: metadata, non-raw keys, Canal include filters, nested CDCPossibly taken @Flanderzz claimed this 15 days ago. Open
Difficulty 5/5 Over a week Newbie friendliness 20/100
datafusion-contrib/StreamFusion#657 ·
Maintainers usually reply within 1 day
-
Native JSON decode diverges from Flink on quoted booleans, dates, negative zero and message boundariesPossibly taken @Flanderzz claimed this 15 days ago. Open
Difficulty 5/5 Over a week Newbie friendliness 10/100
datafusion-contrib/StreamFusion#656 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
datafusion-contrib/StreamFusion#655 ·
Maintainers usually reply within 1 day
All issues in datafusion-contrib/StreamFusion
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
SasanLabs/VulnerableApp#912 ·
Maintainers usually reply within 1 day
-
area/build area/events area/storage area/storage/kafkasql area/storage/sql
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Apicurio/apicurio-registry#11079 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
OpenAEV-Platform/openaev#9139 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
desktop edt not responding
Difficulty 2/5 1-3 hours Newbie friendliness 78/100