I've read the various comments so far and so have weighed those and my
view is that
it is about time to move on from JDK11 and think a policy of making the
minimum an LTS is a
reasonable position - so JDK 17 LTS is what comes out of that today.
What to do in future (ie what is the policy) is a separate question
OpenJDK LTS releases will be every two years in future, so there is a
reasonable argument that
is too frequent to bump the FX minimum without a really compelling reason.
Also consider that FX 20 will GA 4 1/2 years after FX 11 and the next
JDK LTS will be 21 ..
just 6 months later .. we surely aren't going to bump the minimum again
immediately.
So we should not have a policy of the "latest LTS" should always be the
minimum - just that it should
be "some" LTS
And perhaps we skip every other LTS or at the very least we don't bump
until the LTS has been available for 1 year ..
-phil.
PS I agree this should never be an invitation for code churn with no
conceivable benefit to the users of the platform.
On 7/19/22 6:44 AM, Kevin Rushforth wrote:
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