So Java 21 deprecates, but does not eliminate, Java 8 compatibility. You get an unavoidable warning. To support Java 21, a LTS Java release, we either need to
(a) turn off fatal warnings for Java and Scala compilation when compiling with Java 21. or (b) we need to set the release compatibility higher. Our choices here are Java 11, 17, or 21. or (c) don't support Java21 officially yet I suggest (c) is the right thing, but our next release should be Daffodil 4.0.0 and it should require Java 11 across the board, eliminating Java 8. Java 8 is still in use by some, but is clearly past what anyone wants to support any more. A few comments people can agree or disagree with. 1) We should avoid Daffodil releases that require two different sets of Class files - one for say, Java 8, and one for a more modern JVM. 2) Requiring a new JVM beyond Java 8 is a big deal, and motivates a bump to version 4.0.0 of Daffodil. 3) Java 21 is new now, so while we can put in changes to eventually support it, we are not forced to support it yet. It also requires Scala 2.12.18 for example, which we're now compiling with. 4) In general, I think we've not moved major versions often enough to signal the incompatibilities. Support for Java 17 required using Scala 2.12.15 at least, and that was probably enough to motivate a major release number bump. Certainly the package renaming from Daffodil 3.4.0 to Daffodil 3.5.0 was a mistake and should have been a bump of major version to 4.0.0 5) We should "in effect" deprecate 3.5.0 and suggest people jump to 4.0.0 instead, and that means releasing 4.0.0 very soon. 3.5.0 should be our last release which supports Java 8 JVMs. Thoughts? Mike Beckerle Apache Daffodil PMC | daffodil.apache.org OGF DFDL Workgroup Co-Chair | www.ogf.org/ogf/doku.php/standards/dfdl/dfdl Owl Cyber Defense | www.owlcyberdefense.com