|
I think this is the right step and at the time of JavaFX 20, 1.5 years passed after the release of JDK 17 (and of course JavaFX 17), which should be enough time to upgrade to it. And even if some people can't upgrade to JDK 17 for whatever reason, running on JavaFX 19 for a bit more shouldn't be a problem for the most anyway.
As for the future, I'm also not sure what a good schedule could be. I think the most developers would want to always update to the newest JDK, but are sometimes blocked either by some external libraries or toolings. On the other hand also libraries sometimes need some time to adapt to the newest JDK.
Therefore, I would at least suggest to wait some time before upgrading as we did now. E.g. Updating to JDK 20 in JavaFX 21 might be too fast.
-- Marius Am 19.07.22, 15:45 schrieb Kevin Rushforth < [email protected]>:
Even though we build JavaFX binaries with JDK 18 as the boot JDK, the
latest version of JavaFX still runs with JDK 11 (and is capable of being
built using JDK 12 or later, and with some limitations, using JDK 11),
although it isn't tested with older JDK versions. In order for JavaFX to
be able to use newer JDK features, such as records, switch expressions,
text blocks, and so forth, we need to increase the minimum version of
the JDK that can run the latest JavaFX. Additionally, there is an
ongoing cost to keeping JavaFX buildable and runnable on older versions
of Java, and very little reason to continue to do so.
To this end, I propose to bump the minimum version of the JDK needed to
run JavaFX 20 to JDK 17. I filed JDK-8290530 [1] to track this. This
will not affect update releases of earlier versions of JavaFX (e.g.,
JavaFX 17.0.NN), which will continue to run with the same minimum JDK
that they run on today.
As a reminder, we only assure that JavaFX NN will run with JDK NN-1 or
later, although in practice, we haven't bumped the minimum required JDK
version in several releases. So, while JavaFX 19 is built using JDK 18
as the boot JDK, it produces class files that will run with JDK 11,
using "--source 11 --target 11". The proposed change discussed here
would update that in JavaFX 20 to "--source 17 --target 17".
NOTE: this will not be an invitation to do wholesale refactoring of
existing classes or methods to use newer language features (e.g., a PR
that turns a bunch of existing data classes into records would not be
welcome). Rather, this can be seen as enabling judicious use of new
features in new code, much as we did when we started allowing the use of
"var".
Absent a compelling reason to remain stuck in the past, I plan to send
out a pull request for this change next week.
Comments are welcome.
-- Kevin
[1] https://bugs.openjdk.org/browse/JDK-8290530
|