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
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>> 
>> 

Reply via email to