Hi all,
TL;DR Oracle has started revving the JDK version much faster, and we need an agreed upon plan. Well, we probably should has this discussion this already by now, but here we are. Oracle announced plans to release updated JDK version every six months, and each new version immediate supercedes the previous in all ways: no updates/security fixes to previous versions is the main thing, and previous versions are EOL'd immediately. In addition, Oracle has planned parallel LTS versions that will live for three years, and then superceded by the next LTS; but not immediately EOL'd from what I can tell. Please see [1, 2] for Oracle's offical comments about this change ([3] was particularly useful, imo), [4] and many other postings on the internet for discussion/commentary. We have a jira [5] where Robert Stupp did most of the work to get us onto Java 9 (thanks, Robert), but then the announcement of the JDK version changes happened last fall after Robert had done much of the work on the ticket. Here's an initial proposal of how to move forward. I don't suspect it's complete, but a decent place to start a conversation. 1) receommend OracleJDK over OpenJDK. IIUC from [3], the OpenJDK will release every six months, and the OracleJDK will release every three years. Thus, the OracleJDK is the LTS version, and it just comes from a snapshot of one of those OpenJDK builds. 2) always release cassandra on a LTS version. I don't think we can reasonably expect operators to update the JDK every six months, on time. Further, if there are breaking changes to the JDK, we don't want to have to update established c* versions due to those changes, every six months. 3) keep trunk on the lasest jdk version, assumming we release a major cassandra version close enough to a LTS release. Currently that seems reasonable for cassandra 4.0 to be released with java 11 (18.9 LTS) support. Perhaps we can evaluate this over time. Once we agree on a path forward, *it is impreative that we publish the decision to the docs* so we can point contributors and operators there, instead of rehashing the same conversation. I look forward to a lively discussion. Thanks! -Jason [1] http://www.oracle.com/technetwork/java/eol-135779.html [2] https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se [3] https://www.oracle.com/java/java9-screencasts.html?bcid=5582439790001&playerType=single-social&size=events [4] http://blog.joda.org/2018/02/java-9-has-six-weeks-to-live.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+StephenColebournesBlog+%28Stephen+Colebourne%27s+blog%29 [5] https://issues.apache.org/jira/browse/CASSANDRA-9608