I'd say there are quite a few tasks aimed at 4.0. I just answered a thread about jute.maxbuffer error, which could be improved for example. Or better yet, throw jute out and use a standardized serialization library. But there's also the issue of separating client and server code. And I'm sure there's many more I can't recall right now.
But this is worth a separate vote thread, that's for sure. - Norbert On Fri, Jan 8, 2021 at 1:33 PM Andor Molnar <an...@apache.org> wrote: > Okay, let’s stay on JDK 8 with 3.7.0 release and do the transition in 4.0. > Not sure if we want 3.8 release or make the master 4.0 from now on. > > Andor > > > > > On 2021. Jan 6., at 22:35, Christopher <ctubb...@apache.org> wrote: > > > > I agree with Enrico on this point. If the ZK PMC is considering a 3.7 > > release, now would not be the right time to make this change, and it > would > > be better to make a change at the beginning of the next iteration. > > > > That said, I think switching to builds with JDK 11 and supporting JDK 8 > > "passively" is the right thing to do for 3.8, and switching to JDK 11 > fully > > would be the right thing to do if the PMC decides to do a major version > > bump to 4.0 instead of a 3.8. > > > > On Wed, Jan 6, 2021 at 1:20 PM Enrico Olivelli <eolive...@gmail.com> > wrote: > > > >> In my opinion we can stay on 8, we should change this kind of stuff at > the > >> beginning of a new iteration and not before the release. > >> IIRC We are not in a hurry, having a stable build process is a value. > >> > >> Enrico > >> > >> Il Mer 6 Gen 2021, 17:51 Damien Diederen <ddiede...@apache.org> ha > >> scritto: > >> > >>> > >>> Dear ZooKeeper team, > >>> > >>> Andor just reminded me of this JDK 11 vs. 8 discussion, for which we > did > >>> not reach a resolution. Do we want to make a move for the 3.7.0 > release? > >>> > >>> The original proposal, by Christopher, can be found here: > >>> > >>> > >>> > >> > https://mail-archives.apache.org/mod_mbox/zookeeper-dev/202010.mbox/%3ccal5zq9z2tnfawjz7etxpf91qmrovuwv+khnxgpsd_msekfp...@mail.gmail.com%3e > >>> > >>> I am explicitly replying to Christopher's nice and useful summary, > which > >>> you will find directly below. An archived copy can be found here: > >>> > >>> > >>> > >> > https://mail-archives.apache.org/mod_mbox/zookeeper-dev/202010.mbox/%3cCAL5zq9ao9-4S9bmzxaYJM8n8=aolxidz-0zohunvnayqei0...@mail.gmail.com%3e > >>> > >>> It contains three proposals, to which we can add the trivial one: > >>> > >>> 1. Compile/test with JDK 11, support JDK 8 "passively"; > >>> > >>> 2. Compile/test with JDK 11, test client only with JDK 8 (requires test > >>> suite adaptations); > >>> > >>> 3. Move to JDK 11 fully; > >>> > >>> 4. Postpone any change to 3.8 (or 4.0). > >>> > >>> Flavio wrote: > >>> > >>>> [Christopher] mentioned a PMC vote, and I don't think this should be a > >>>> closed vote, independent of how the conversation goes. > >>> > >>> Do we have a better idea of what we want? Or should we organize a > vote? > >>> > >>> Cheers, -D > >>> > >>> > >>> --8<--------------- original message ------------->8--- > >>> > >>> Christopher <ctubb...@apache.org> writes: > >>>> I'm happy that this discussion has been so lively! I just want to > >>>> emphasize a few things: > >>>> > >>>> I really do understand the desire to continue to support Java 8... I > >>>> get it. But all the conversations around this seem based on what > >>>> people are doing *today*. But, ZK 3.7 is *tomorrow's* version... a > >>>> *future* release... so it should be based more on reasonable > >>>> expectations for users in the future, and less based on what is > >>>> happening today. I suspect *most* people today are still using 3.4 > >>>> anyway (it was just so stable for so long...), but that shouldn't mean > >>>> the developers should hold back development on 3.5 and 3.6, any more > >>>> than today's users of 3.5/3.6 should hold back 3.7. > >>>> > >>>> Some of the opinions expressed in this discussion seem to propose a > >>>> scenario where users are going to be updating to "bleeding edge" > >>>> versions of ZooKeeper, but are going to insist on using Java 8. > >>>> Personally, I find this to be implausible. In my experience, people > >>>> either upgrade everything as soon as they are able to, or they upgrade > >>>> each thing individually, only when they are forced to. The first group > >>>> will be happy to move to Java 11 and ZK 3.7. The second group will > >>>> probably avoid 3.7 anyway, and are fine sticking with 3.6, but if they > >>>> had to update to 3.7, they'd also be fine updating to Java 11 if they > >>>> had to in order to use 3.7. I can't imagine the scenario where people > >>>> are eagerly choosing to upgrade to ZK 3.7, but miserly insisting on > >>>> using Java 8. Perhaps that scenario exists, but it's hard for me to > >>>> imagine. Even so, my proposal would still support even that group of > >>>> people. > >>>> > >>>> I think there are now effectively three proposals being discussed in > >>>> this thread: > >>>> > >>>> 1. (Christopher's original proposal) passively support Java 8 at > >>>> runtime by making JDK 11 the minimum requirement to build and test. > >>>> This scenario involves continuing to fix bugs, as they are discovered > >>>> and reported, that affect JDK 8, but passively, rather than > >>>> proactively. This proposal does *not* drop Java 8 support, but merely > >>>> de-emphasizes it in development of what will be 3.7 in the future, and > >>>> drops the requirement to do dedicated testing with Java 8. I think > >>>> this is low risk, because it is very unlikely that the ZK devs would > >>>> introduce a bug that would affect only Java 8 and the compiler > >>>> wouldn't catch it... because the cross-compilation features of newer > >>>> JDKs are really good. > >>>> > >>>> 2. (Enrico's alternate proposal) this variation of my proposal would > >>>> involve continuing to proactively support Java 8 by creating a > >>>> dedicated testing suite to test client code on Java 8. I think this is > >>>> a good option, but since it involves a significantly higher amount of > >>>> work than option 1, I think the cost-benefit analysis would show this > >>>> to be not worth the effort. Also, if it were implemented, it would > >>>> need to be done carefully to avoid requiring developers to have > >>>> concurrently installed both Java 8 and Java 11 in order to perform a > >>>> build, because requiring Java 8 at build time while developing would > >>>> be worse than we have today. > >>>> > >>>> 3. (Andor's preference) move to JDK 11 fully. This would provide no > >>>> support, passive or active, for Java 8 in ZK 3.7. To be honest, this > >>>> is my personal favorite, and is the simplest to implement and > >>>> communicate clearly to end users in release notes. The only reason I > >>>> proposed a passive support of Java 8 instead of this is because I was > >>>> trying to seek a compromise from the start. But, I think by far, this > >>>> is the best option for the next *future* release of ZK. If you wanted > >>>> to make the change even more visible to users, the version could even > >>>> be bumped to 4.0. > >>>> > >>>> If this were to come to a VOTE by the PMC, in order to make a final > >>>> decision, I would recommend they vote on option 3, and then if that > >>>> fails, vote on option 1, and if that fails, keep things the way they > >>>> are (because option 2 is more work). > >>>> > >>>> Christopher > >>>> > >>>> P.S. as for Hadoop on Java 11... I've been running Hadoop 3 on JDK 11 > >>>> and it works just fine there (as long as you add the missing runtime > >>>> jar for javax.activation:javax.activation-api:1.2.0 to its class path, > >>>> but that was fixed in Hadoop 3.3). > >>>> > >>>> On Wed, Oct 21, 2020 at 5:42 PM Tamas Penzes > >>>> <tam...@cloudera.com.invalid> wrote: > >>>>> > >>>>> Hi All, > >>>>> > >>>>> I've just talked with a Hadoop/HDFS developer who told me what I > >>> guessed. > >>>>> With Hadoop3 they have just dropped JDK7 support, dropping JDK8 would > >>> mean > >>>>> a release of Hadoop4. > >>>>> Since HADOOP-15338 is finished, they test with JDK8 and JDK11 both. > As > >>> of > >>>>> today most of the Hadoop users are still on Hadoop2, he doesn't > expect > >>>>> Hadoop4 soon. > >>>>> As many Apache components depend on Hadoop and ZooKeeper they won't > >>> hurry > >>>>> to JDK11 until they have to (they will probably go one-by-one very > >>> slowly), > >>>>> which means if Hadoop stays on JDK8, they would use the last ZK > >> version > >>>>> which works on JDK8. > >>>>> Do we want a ZK 3.4 again? > >>>>> > >>>>> Regards, Tamaas > >>>>> > >>>>> > >>>>> On Wed, Oct 21, 2020 at 11:23 PM Tamas Penzes <tam...@cloudera.com> > >>> wrote: > >>>>> > >>>>>> Hi All, > >>>>>> > >>>>>> Just to add my two cents. > >>>>>> > >>>>>> Upgrading to JDK11 looks inevitable sooner or later and I would > >>> definitely > >>>>>> not wait until 2030 or 2026 when the extended support of JDK8 ends. > >>>>>> But on the other side I have to agree with Enrico and Patrick that > >>> far too > >>>>>> many users are tied to JDK8 yet (not because they want to use JDK8, > >>> but > >>>>>> because they have to), some of them are components of the Hadoop > >>> ecosystem, > >>>>>> which would be a loss to tie them to 3.6.x for years. > >>>>>> Do we know the state of Hadoop? It builds with JDK8 at the moment, > >>> but do > >>>>>> we know what are their plans to go to JDK11? > >>>>>> When they move, we should move too, but I don't think it would be > >>> wise to > >>>>>> do it earlier. > >>>>>> > >>>>>> Christopher's option looks like the golden path, but it needs some > >>>>>> investment on the testing side as Enrico pointed it out. > >>>>>> Could we agree on it as a compromise? > >>>>>> > >>>>>> Regards, Tamaas > >>>>>> > >>>>>> On Wed, Oct 21, 2020 at 7:11 PM Brent <brentwritesc...@gmail.com> > >>> wrote: > >>>>>> > >>>>>>> I think I was reacting to Enrico's earlier comment of: > >>>>>>> > >>>>>>> " ZooKeeper client is used by tons of users and unfortunately many > >>>>>>> projects > >>>>>>> are still on JDK8, if we move ZooKeeper to JDK11 the risk is to > >> block > >>>>>>> users > >>>>>>> from the adoption, that is that we will see the world to stay on > >>> 3.6.x and > >>>>>>> we will have again a long lived release line, like 3.4." > >>>>>>> > >>>>>>> It's a matter of whether or not a long-lived release line is > >>>>>>> desirable/undesirable. If everyone is OK keeping 3.6.x up-to-date > >>>>>>> security/patch-wise (if not feature-wise) for the next N years, > >> then > >>>>>>> that's > >>>>>>> a potentially valid approach. I interpreted that comment as "a > >>> long-lived > >>>>>>> release line is undesirable", but no one explicitly said that, I > >>> just read > >>>>>>> it that way. > >>>>>>> > >>>>>>> ~Brent > >>>>>>> > >>>>>>> On Wed, Oct 21, 2020 at 9:49 AM Patrick Hunt <ph...@apache.org> > >>> wrote: > >>>>>>> > >>>>>>>> On Wed, Oct 21, 2020 at 9:03 AM Andor Molnar <an...@apache.org> > >>> wrote: > >>>>>>>> > >>>>>>>>> As far as I know Hbase, Solr and Kafka are already Java 11 > >> ready. > >>>>>>>>> > >>>>>>>>> IMHO contributors of those projects should also put efforts > >> into > >>>>>>> moving > >>>>>>>>> forward. > >>>>>>>>> > >>>>>>>>> We’re not saying that you _have_ to move to Java 11. > >>>>>>>>> Staying on Java 8? No problem, 3.6 is for you. > >>>>>>>>> Want the fancy new features of 3.7? Work on it on your side > >> too. > >>>>>>>>> > >>>>>>>>> > >>>>>>>> ppl want things like security fixes. I believe the highlighted > >>> downside > >>>>>>> is > >>>>>>>> that we would need to continue to maintain 3.6.x rather than > >>> allowing > >>>>>>>> users, and ourselves, to focus on trunk for production -"64 > >>> percent" > >>>>>>> would > >>>>>>>> be blocked. > >>>>>>>> > >>>>>>>> Patrick > >>>>>>>> > >>>>>>>> > >>>>>>>>> Andor > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>> On 2020. Oct 21., at 17:52, Enrico Olivelli < > >>> eolive...@gmail.com> > >>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>> Il giorno mer 21 ott 2020 alle ore 17:49 Andor Molnar < > >>>>>>>> an...@apache.org> > >>>>>>>>> ha > >>>>>>>>>> scritto: > >>>>>>>>>> > >>>>>>>>>>> Correct me if I'm wrong, but Oracle gets paid for extended > >>> support. > >>>>>>>>>>> Java 8 support until 2030 is not free of charge. > >>>>>>>>>>> > >>>>>>>>>>> "ZK may end up with a lot of users potentially locking > >>> themselves > >>>>>>> to > >>>>>>>>>>> 3.6.x for a while as Enrico mentioned." > >>>>>>>>>>> > >>>>>>>>>>> That's true. What's the downside of that which we should > >>> invest in > >>>>>>> to > >>>>>>>>>>> avoid? > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> I see ZooKeeper used in many many projects, all of the > >>>>>>>>>> HBase/Pulsar/Kafka/Solr ecosystem... > >>>>>>>>>> they will have to move to JDK11 in order to move to the new > >> ZK > >>>>>>> version > >>>>>>>>>> so probably they will stay on ZK 3.6 > >>>>>>>>>> > >>>>>>>>>> Probably with Java 17 LTS released the cards will change on > >> the > >>>>>>> table > >>>>>>>>>> > >>>>>>>>>> Enrico > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> Andor > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> On Wed, 2020-10-21 at 08:03 -0700, Brent wrote: > >>>>>>>>>>>> As a slightly different consideration, if you look at the > >>>>>>> Long-Term > >>>>>>>>>>>> Support > >>>>>>>>>>>> (LTS) roadmaps for Java, currently Java 8 is set to have > >> full > >>>>>>> support > >>>>>>>>>>>> until > >>>>>>>>>>>> 2030 from Oracle and at least 2026 from OpenJDK & Corretto: > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>> > >>> https://www.oracle.com/java/technologies/java-se-support-roadmap.html > >>>>>>>>>>>> https://en.wikipedia.org/wiki/Java_version_history > >>>>>>>>>>>> > >>>>>>>>>>>> My guess is that a number of companies are still heavily > >>> invested > >>>>>>> at > >>>>>>>>>>>> the > >>>>>>>>>>>> Java 8 level (I know a few) and with that kind of time > >>> horizon, > >>>>>>> they > >>>>>>>>>>>> have > >>>>>>>>>>>> no real motivation to upgrade for quite a while. If the > >>> recent > >>>>>>>>>>>> Python 2 > >>>>>>>>>>>> deprecation is anything to go by, they won't do it until > >>> they have > >>>>>>>>>>>> to. > >>>>>>>>>>>> > >>>>>>>>>>>> Not saying Java 8 isn't *very* old (2014 release it seems > >>> like?) > >>>>>>> and > >>>>>>>>>>>> I'm > >>>>>>>>>>>> not invested heavily either way, but this might suggest > >> that > >>> ZK > >>>>>>> may > >>>>>>>>>>>> end up > >>>>>>>>>>>> with a lot of users potentially locking themselves to 3.6.x > >>> for a > >>>>>>>>>>>> while as > >>>>>>>>>>>> Enrico mentioned. > >>>>>>>>>>>> > >>>>>>>>>>>> (Not a major contributor, but wanted to chime in since I > >>> just had > >>>>>>>>>>>> this > >>>>>>>>>>>> conversation with a bunch of people professionally > >> recently) > >>>>>>>>>>>> > >>>>>>>>>>>> Brent > >>>>>>>>>>>> > >>>>>>>>>>>> On Wed, Oct 21, 2020 at 2:07 AM Andor Molnar < > >>> an...@apache.org> > >>>>>>>>>>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>>> Thanks for the summary. > >>>>>>>>>>>>> > >>>>>>>>>>>>> I still vote for option 1). Move 3.7.0 to JDK 11 fully. > >>> Other > >>>>>>>>>>>>> projects > >>>>>>>>>>>>> will upgrade once they’re JDK11 compliant, otherwise they > >>> will > >>>>>>> stay > >>>>>>>>>>>>> on 3.5 > >>>>>>>>>>>>> or 3.6. Both version are quite recent in ZooKeeper-terms, > >> we > >>>>>>>>>>>>> already > >>>>>>>>>>>>> planned big changes for 3.7.0 and JDK 11 could be one of > >>> them. > >>>>>>>>>>>>> > >>>>>>>>>>>>> Don’t put extra burden on the ZK community to help others > >>> staying > >>>>>>>>>>>>> on > >>>>>>>>>>>>> ancient Java versions. > >>>>>>>>>>>>> > >>>>>>>>>>>>> Andor > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>>> On 2020. Oct 21., at 10:57, Enrico Olivelli < > >>>>>>> eolive...@gmail.com> > >>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Let me recap > >>>>>>>>>>>>>> - Christopher is proposing to move to JDK11 > >>>>>>>>>>>>>> - ZooKeeper client and server are bundled and coded and > >>> tested > >>>>>>>>>>>>>> together > >>>>>>>>>>>>> in > >>>>>>>>>>>>>> zookeeper-server > >>>>>>>>>>>>>> - Enrico is concerned about the need of testing ZooKeeper > >>> client > >>>>>>>>>>>>>> on JDK8 > >>>>>>>>>>>>>> (not a problem to move the server to JDK11) > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> ZooKeeper client is used by tons of users and > >>> unfortunately many > >>>>>>>>>>>>>> projects > >>>>>>>>>>>>>> are still on JDK8, if we move ZooKeeper to JDK11 the risk > >>> is to > >>>>>>>>>>>>>> block > >>>>>>>>>>>>> users > >>>>>>>>>>>>>> from the adoption, > >>>>>>>>>>>>>> that is that we will see the world to stay on 3.6.x and > >> we > >>> will > >>>>>>>>>>>>>> have > >>>>>>>>>>>>> again > >>>>>>>>>>>>>> a long lived release line, like 3.4. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Testing the client on JDK8 would be possible if we create > >>> some > >>>>>>>>>>>>>> kind of > >>>>>>>>>>>>>> additional module with system tests, then we can start > >> the > >>>>>>> server > >>>>>>>>>>>>>> on > >>>>>>>>>>>>> docker > >>>>>>>>>>>>>> on JDK11+ and start a client on JDK8 > >>>>>>>>>>>>>> with Maven toolchain it should possible to run surefire > >>> tests > >>>>>>>>>>>>>> using a > >>>>>>>>>>>>>> separate JVM. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> So in my vision 2 options: > >>>>>>>>>>>>>> 1) fully JDK11 - drop JDK8 at all > >>>>>>>>>>>>>> 2) build with JDK11 - server only on JDK11 - add system > >>> tests > >>>>>>>>>>>>>> with docker > >>>>>>>>>>>>>> and toolchains that ensure the ZooKeeper client (and all > >>>>>>>>>>>>>> dependencies) > >>>>>>>>>>>>>> still work on JDK8 > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> From my point of view about the ZooKeeper ecosystem > >> option > >>> 2) > >>>>>>>>>>>>>> will be far > >>>>>>>>>>>>>> better, but we need resources to work on a new test > >> suite. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Enrico > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Il giorno mer 21 ott 2020 alle ore 10:43 Andor Molnar < > >>>>>>>>>>>>>> an...@apache.org> > >>>>>>>>>>>>> ha > >>>>>>>>>>>>>> scritto: > >>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Tamas, Enrico, > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Sorry I don’t follow. Why do we have to test the client > >>> with > >>>>>>>>>>>>>>> JDK 8 in > >>>>>>>>>>>>>>> version 3.7.0? > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Andor > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> On 2020. Oct 20., at 22:29, Tamas Penzes < > >>>>>>>>>>>>>>>> tam...@cloudera.com.INVALID> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>> Hi Enrico, > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> Separating ZooKeeper client and server is a huge work, > >>> but we > >>>>>>>>>>>>>>>> might not > >>>>>>>>>>>>>>>> need it. > >>>>>>>>>>>>>>>> As you mentioned we have to test ZK client with Java 8, > >>> what > >>>>>>>>>>>>>>>> about > >>>>>>>>>>>>>>>> separating only the test cases which we need to run > >> with > >>>>>>>>>>>>>>>> Java8 too? > >>>>>>>>>>>>>>>> In Curator we have the ZK compatibility tests where we > >>> run a > >>>>>>>>>>>>>>>> limited > >>>>>>>>>>>>>>> amount > >>>>>>>>>>>>>>>> of Curator's jUnit tests with a different ZK version. > >>>>>>>>>>>>>>>> We might be able to do the same here, tag tests which > >> are > >>>>>>>>>>>>>>>> testing ZK > >>>>>>>>>>>>>>> client > >>>>>>>>>>>>>>>> and run them separately with Java 8. The only > >> limitation > >>> is > >>>>>>>>>>>>>>>> that these > >>>>>>>>>>>>>>>> tests must stay JDK8 compatible. > >>>>>>>>>>>>>>>> But from the tags we will see which ones are those. > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> What do you think? > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> Regards, Tamaas > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> On Sat, Oct 17, 2020 at 7:45 AM Enrico Olivelli < > >>>>>>>>>>>>>>>> eolive...@gmail.com> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>> Christopher > >>>>>>>>>>>>>>>>> I appreciate your idea and I also moved lots of my > >>> projects > >>>>>>>>>>>>>>>>> to work > >>>>>>>>>>>>> the > >>>>>>>>>>>>>>> way > >>>>>>>>>>>>>>>>> you are suggesting. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> We must run tests using real jdk8 to test the > >> Zookeeper > >>>>>>>>>>>>>>>>> client. We > >>>>>>>>>>>>> must > >>>>>>>>>>>>>>>>> ensure that Zookeeper works well, especially while > >>> dealing > >>>>>>>>>>>>>>>>> with > >>>>>>>>>>>>> security > >>>>>>>>>>>>>>>>> stuff. > >>>>>>>>>>>>>>>>> Currently the client is in the same module of the > >> server > >>>>>>>>>>>>>>>>> and it will > >>>>>>>>>>>>>>> take a > >>>>>>>>>>>>>>>>> good (huge) amount of work to separate them > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Enrico > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Il Ven 16 Ott 2020, 23:25 Christopher < > >>> ctubb...@apache.org> > >>>>>>>>>>>>>>>>> ha > >>>>>>>>>>>>> scritto: > >>>>>>>>>>>>>>>>>> Hi ZK Devs, > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> With recent advancements in Java (since Java 9), it > >> is > >>>>>>>>>>>>>>>>>> now generally > >>>>>>>>>>>>>>>>>> no longer necessary to require that software be > >>> developed > >>>>>>>>>>>>>>>>>> on an older > >>>>>>>>>>>>>>>>>> JDK in order to have confidence that it will run on > >> the > >>>>>>>>>>>>>>>>>> older version > >>>>>>>>>>>>>>>>>> of Java. This is because, as of Java 9, all JDK > >>> releases > >>>>>>>>>>>>>>>>>> have better > >>>>>>>>>>>>>>>>>> support for cross-compilation to older Java versions. > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> What this means is that developers can confidently > >> make > >>>>>>>>>>>>>>>>>> the build > >>>>>>>>>>>>>>>>>> requirements for a project higher than the Java > >> version > >>>>>>>>>>>>>>>>>> that will > >>>>>>>>>>>>>>>>>> actually be supported at runtime. > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> In fact, ZooKeeper already supports the necessary > >> flags > >>>>>>>>>>>>>>>>>> in its Maven > >>>>>>>>>>>>>>>>>> build configuration to ensure that it uses JDK 8 > >>>>>>>>>>>>>>>>>> compliance when > >>>>>>>>>>>>>>>>>> building on a newer JDK (I added this way back in > >>>>>>>>>>>>>>>>>> ZOOKEEPER-3739 / > >>>>>>>>>>>>>>>>>> https://github.com/apache/zookeeper/pull/1269) > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> So, I propose that we make JDK 11 the new minimum > >>> version > >>>>>>>>>>>>>>>>>> to *build* > >>>>>>>>>>>>>>>>>> ZooKeeper with. This would not change the runtime > >>>>>>>>>>>>>>>>>> requirement, which > >>>>>>>>>>>>>>>>>> would remain at JDK 8. > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> The only necessary change to make this happen would > >> be > >>> to > >>>>>>>>>>>>>>>>>> add the > >>>>>>>>>>>>>>>>>> minimum Java version to the maven-enforcer-plugin > >> (like > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>> > >>> > >> > https://github.com/apache/accumulo/blob/438f0efd34ef9d200bc8c7ecdd11d5dedb146519/pom.xml#L1162-L1164 > >>>>>>>>>>>>>>>>>> ) > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> This would allow ZooKeeper to to streamline its > >>>>>>>>>>>>>>>>>> development process a > >>>>>>>>>>>>>>>>>> little bit by reducing the amount of CI testing that > >> is > >>>>>>>>>>>>>>>>>> done as part > >>>>>>>>>>>>>>>>>> of the build. In other words, we can drop the CI > >> builds > >>>>>>>>>>>>>>>>>> for JDK 8, > >>>>>>>>>>>>>>>>>> which saves on build resources and time. The return > >> on > >>>>>>>>>>>>>>>>>> investment is > >>>>>>>>>>>>>>>>>> so low for the JDK 8 builds anyway, because of the > >>>>>>>>>>>>>>>>>> improved > >>>>>>>>>>>>>>>>>> cross-compilation in newer JDKs. So, there's not much > >>>>>>>>>>>>>>>>>> value in > >>>>>>>>>>>>>>>>>> building on JDK 8 anyway. > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> Of course, I am only recommending this for *new* > >>> release > >>>>>>>>>>>>>>>>>> lines, > >>>>>>>>>>>>>>>>>> starting with ZooKeeper 3.7.0/master branch, because > >> I > >>>>>>>>>>>>>>>>>> would not want > >>>>>>>>>>>>>>>>>> to change expectations for users who will build their > >>> own > >>>>>>>>>>>>>>>>>> 3.5 and 3.6 > >>>>>>>>>>>>>>>>>> versions as they continue to have patch versions > >>>>>>>>>>>>>>>>>> released. > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> What do you think? > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> Kind Regards, > >>>>>>>>>>>>>>>>>> Christopher > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>> > >>> > >> > >