All,

The release managers have bumped-up their tool chains to Java 17 or later for all supported releases. Tomcat 11 requires Java 21. Tomcat 8.5.x only requires Java 11.

But the documented Java versions for each release are actually:

Tomcat 11 - Java 21
Tomcat 10 - Java 11
Tomcat  9 - Java 8
Tomcat  8 - Java 7

Theoretically, anyone ought to be able to build Tomcat with the minimum-required Java version for that branch. There are some practical reasons why you can't build Tomcat 8.5.x with Java 7 but those have more to do with supporting versions of Java *after* 7 than anything else.

I'd like to be able to allow anyone to build their Tomcat from source using our tooling (e.g. ant-based build) and the minimum Java version (with one exception: No support for Java 7 for builds).

Take Tomcat 9.0.x for example. The ant-based build will complain if you are using Java 11 to build, because the build tools demand the use of Java 17. If you simply change the "required version" from 17 to 11, the build works perfectly fine.

I honestly can't remember why we switched everything from Java 11 to Java 17 for Tomcat 9.0.x, but the point is that it works. We may still want to do official releases using Java 17 or 21 or whatever, but *regular users* ought to be able to build from source without too much trouble.

I'm wondering if we could do something like the following:

1. Change build.java.version to be the *actual* minimum supported JDK for the build. This would be the lowest version of Java known to successfully compile the package. I would argue this should be set to the "Minimum Java Version" for that release.

2. Introduce a new release.java.version to be set to the minimum supported JDK for a *release* build. This can be set to whatever the release managers deem appropriate.

3. During "ant pre-release", we take the release.java.version setting and copy it into the build.properties.release file like this:

build.java.version=${release.java.version}

Then, when a release-build is performed, it will require the (likely) later version of Java. But that will still allow non-release-managers to build locally using potentially older versions of Java.

WDYT?

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to