bq. Dropping all but LTS on major version +1 to the above initiative.
On Thu, Mar 8, 2018 at 8:37 AM, Josh Elser <els...@apache.org> wrote: > Oof, more to do, but I think the list you put together is a good plan to > start. Dropping all but LTS on major version sounds good as well. > > Thanks for thinking about this already. > > > On 3/6/18 12:20 PM, Sean Busbey wrote: > >> Hi folks! >> >> Our ref guide section on Java versions[1] is starting to look dated, >> because the Oracle version of Java 9 hits end of public updates this >> month and we don't mention it at all. >> >> I'd like to discuss how we want to approach keeping HBase up-to-date >> on new Java versions. >> >> As background, the Java community is moving to a time-based release >> schedule where there is a new long term support (LTS) version every >> ~three years[2]. Between those, there are a series of feature releases >> that only have a short window of receiving updates. >> >> -- "Recommended" for running >> >> I think we should suggest folks rely on LTS releases of Java, wether >> from the OpenJDK project (which looks like it will be equivalent to >> the Oracle version) or a vender. >> >> That would mean updating our support matrix to call out Java 9 and >> Java 10 as "Not Supported" for current releases. >> >> -- Development changes >> >> The next LTS version of Java is slated to be Java 11, which won't be >> out until September 2018. I think we should aim for a minor release on >> whatever major branches are still active within a month of the GA date >> where we feel comfortable calling out Java 11 as supported. >> >> To that end, I think we would should do 2 things: >> >> 1) Work to make sure we can run through our test suite with either the >> release prior to the next LTS or an early access version of the >> upcoming LTS release before the GA date, ideally ~3 months before. >> That'd be a target of June 2018 for the planned GA date of Java 11. I >> expect that means abandoning our Java 9 specific efforts and starting >> in April/May to work on updates related to Java 10 (or 11 depending on >> when bits start shipping). >> >> 2) In the process of getting the above to work if we find we can't get >> a major release branch ready to go without violating our compatibility >> guidelines (especially wrt the existing supported java versions), we >> should cease making new minor releases for that major release branch. >> This could mean either just going to bugfix releases or it could mean >> declaring the branch EOM entirely. >> >> Note that the above doesn't necessarily require that we be able to >> build with a newer JDK version. That would certainly be simpler >> though; I don't think our current tooling makes it easy to run tests >> with a different JDK than is used to compile. >> >> -- Dropping of older versions >> >> I don't think we've codified anywhere when we drop Java version >> supports? (our guide merely says when we _could_.) I'm also not sure >> if we should write it down somewhere? If we can stick to the above and >> proactively add new versions as supported in minor releases, I think >> we'll be in a good position to drop everything but the latest LTS Java >> release with each HBase major release. Since this notion of LTS and >> non-LTS releases for Java is still relatively new, maybe that's a >> discussion we're better off having once HBase 3 is closer. >> >> [1]: http://hbase.apache.org/book.html#java >> [2]: http://mail.openjdk.java.net/pipermail/discuss/2017-Septembe >> r/004281.html >> >>