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

Reply via email to