Hi dev I'd like to propose dropping mixed-format Flink 1.16 and 1.17 support, and adding Flink 1.19 and 1.20 support instead. This would move Amoro's mixed-format Flink support window from 1.16/1.17/1.18 to 1.18/1.19/1.20.
Background ---------- Amoro's mixed-format Flink modules maintain compatibility with three Flink versions at a time. Flink 1.16 has already reached End of Life in the Flink community, and Iceberg's multi-engine support matrix no longer covers it. I've already opened an issue (#4128) and a PR (#4132) to remove Flink 1.16 modules. Why drop Flink 1.17 as well? ----------------------------- The main motivation is to unblock upgrading to newer Iceberg versions (1.7+). 1. Shared common module: amoro-mixed-flink-common is compiled once and shared across all Flink version modules. Since iceberg-flink-1.17 was dropped in Iceberg 1.7.0, Flink 1.17 must stay on Iceberg 1.6.1. This means the common module cannot adopt any Iceberg 1.7+ APIs — effectively blocking the upgrade for all Flink versions. 2. JDK 17 compatibility: Flink 1.17 only supports JDK 8 and 11, while Flink 1.18+ has experimental JDK 17 support. If the project eventually moves toward JDK 17, Flink 1.17 would become an additional blocker. 3. Flink 1.17 EOL: Flink 1.17 was released in March 2023 and has not received a patch release since 1.17.2 (November 2023). While not formally declared EOL, it is no longer actively maintained. Proposed plan ------------- 1. Drop Flink 1.16 and 1.17 mixed-format modules 2. Add Flink 1.19 and 1.20 mixed-format modules 3. Keep the 3-version support window: 1.18 / 1.19 / 1.20 4. Update documentation and CI accordingly This change would be scoped to the mixed-format modules only. The Iceberg upgrade itself would follow as a separate effort after the 0.9.0 release. Any thoughts or concerns? Looking forward to the discussion. Thanks, Jiwon Park
