+1 to move to jdk17 both for client and server I would use 3.10 as there are no breaking changes in any protocol or sisk format. We have always been pretty good at keeping backward and forward compatibility.
Upgrading to 4.x may seem a big leap for users, and you usually are very afraid of touching foundational libraries and services like ZK. Upgrading the required jdk is not enough for such a big bump I will be happy to review the PRs Enrico Il Ven 9 Gen 2026, 06:47 Christopher <[email protected]> ha scritto: > Yes, I did offer. I'm sorry I haven't had time to work on it yet. I > think I may have time next week to help, if somebody else doesn't do > it first. > > On Thu, Jan 8, 2026 at 7:30 PM Andor Molnár <[email protected]> wrote: > > > > Personally I’m waiting for somebody who has experience with Maven to put > together a patch against the master branch with the proposed JDK/JRE > changes. > > > > As far as I remember Christopher has offered help. > > > > Regards, > > > > Andor > > > > > > > > > > > On Jan 8, 2026, at 15:59, Li Wang <[email protected]> wrote: > > > > > > Happy New Year! > > > > > > Just wonder if there is any update on the target date/timeframe for > the new > > > 4.0.0/3.10 release? > > > > > > Thanks, > > > > > > Li > > > > > > > > > On Tue, Sep 23, 2025 at 12:31 AM Andor Molnar <[email protected]> > wrote: > > > > > >> Thanks Christopher, would you please open a PR with the proposed > changes > > >> for the master branch? > > >> > > >> > > >> > > >> > > >>> On Sep 19, 2025, at 19:50, Christopher <[email protected]> wrote: > > >>> > > >>> Sounds good to me. I can help with the maven changes, too. > > >>> > > >>> On Fri, Sep 19, 2025, 11:54 Andor Molnar <[email protected]> wrote: > > >>> > > >>>> Hi all, > > >>>> > > >>>> Since our household chores have been finished with recent 3.9 and > 3.8 > > >>>> version, I think we can get back to this topic. > > >>>> > > >>>> Looking at the tremendous amount of work that Kezhu is doing on > master > > >>>> with client jar separations, I tend to cut 4.0.0 from master once > > >>>> everything is done. If that’d be the case we could make a leap and > make > > >> JDK > > >>>> 17 the minimum runtime and compile versions for the master branch. > wdyt? > > >>>> > > >>>> Once the change is merged to master, we'll backport it to > branch-3.9 as > > >>>> follows: > > >>>> > > >>>> * minimum JDK for building: 17 > > >>>> * minimum JRE for running: 8 (no change) > > >>>> > > >>>> This is completely aligned with Christopher’s suggestion except we > won’t > > >>>> touch the branch-3.8 as it’s going to be EoL’d in 6 months after the > > >>>> release of 4.0.0. > > >>>> > > >>>> Regards, > > >>>> Andor > > >>>> > > >>>> p.s. Due to my little Maven experience I won’t be able to make the > PRs > > >>>> myself, so I’ll ask sb to volunteer. > > >>>> > > >>>> > > >>>> > > >>>> > > >>>>> On Aug 20, 2025, at 20:59, Christopher <[email protected]> > wrote: > > >>>>> > > >>>>> It looks like that Confluence page is pretty close to Semver 2.0's > > >>>>> definition (semver.org). > > >>>>> I was confused by the use of the word "major" to refer to 3.10 > earlier > > >> in > > >>>>> this thread. By the definition there, it'd be a "minor" release. > > >>>>> > > >>>>> Since the version numbering is based on API changes, and not > dependency > > >>>>> requirements, it is permissible to update dependencies > substantially, > > >>>>> without breaking any documented goal. However, I still think going > to > > >> 17 > > >>>> in > > >>>>> a 3.x minor release is a bit too much for existing 3.x users who > are > > >>>> trying > > >>>>> to stay up-to-date on 3.x. I think 11 is less disruptive for a > minor > > >>>>> version bump. But, I also think it would be okay to release 4.0 > from > > >> the > > >>>>> master branch instead of 3.10, and make bigger, more disruptive > > >> changes. > > >>>> My > > >>>>> main concern is whether users on 3.x will be properly prepared for > the > > >>>>> risks of disruptive changes. If the version is called 3.10, they > may > > >>>> think > > >>>>> it to be low-risk, but if it is called 4.0, they will recognize it > as > > >>>>> riskier and can prepare for it. Users tend to infer a lot about the > > >> risk > > >>>>> level from the name of the version, and a major version number > change > > >>>>> communicates bigger risk that users may need to prepare for. > > >>>>> > > >>>>> In any case, I certainly don't feel too strongly about it. > Although my > > >>>>> preference would be to have 11 as the runtime minimum for 3.10, I > would > > >>>>> prefer 17 rather than staying on 8. My preferences are: > > >>>>> > > >>>>> * minimum JDK for building all active branches (3.9 and later): 17 > > >>>>> * minimum JRE for running 3.9: 8 (no change) > > >>>>> * minimum JRE for running 3.10: 11 > 17 > 8 > > >>>>> * minimum JRE for running a future 4.x: 17 > > >>>>> > > >>>>> On Wed, Aug 20, 2025 at 6:38 PM Patrick Hunt <[email protected]> > wrote: > > >>>>> > > >>>>>> FYI here's what documented for the project: > > >>>>>> > > >>>>>> > > >>>> > > >> > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=24193438#Roadmap-ReleaseNumbering > > >>>>>> I personally think about it along these lines: "Upgrading between > > >> major > > >>>>>> releases will generally require changes to user code". > > >>>>>> The "annually" - I guess that was aspirational. :-) > > >>>>>> > > >>>>>> Regards, > > >>>>>> > > >>>>>> Patrick > > >>>>>> > > >>>>>> On Tue, Aug 19, 2025 at 5:24 PM Christopher <[email protected]> > > >>>> wrote: > > >>>>>> > > >>>>>>> I think most people interpret Java/maven version numbers (x.y.z) > as: > > >>>>>>> x = major > > >>>>>>> y = minor > > >>>>>>> z = patch/bugfix > > >>>>>>> > > >>>>>>> I think it's confusing when you say 3.10 is a "major" version. > What > > >>>> would > > >>>>>>> you call 4.0.0? A "supremely major" release, perhaps? It's fine > to > > >>>> treat > > >>>>>> a > > >>>>>>> minor release as a substantial change, but for communication, I > think > > >>>>>> it's > > >>>>>>> still a minor release unless you bump the "major" portion of the > > >>>> version. > > >>>>>>> > > >>>>>>> I like the changes that you're planning, but I think they might > be > > >>>>>>> significant enough to call it a "major" version and bump to > 4.0.0. > > >>>> There > > >>>>>>> doesn't need to be a 3.10... you can just rename it anytime > before it > > >>>> is > > >>>>>>> released. > > >>>>>>> > > >>>>>>> > > >>>>>>> On Tue, Aug 19, 2025 at 2:46 PM Andor Molnar <[email protected]> > > >> wrote: > > >>>>>>> > > >>>>>>>> We agreed on that we cut 3.10.0 from the master branch as new > major > > >>>>>>>> release of ZooKeeper. There’s no plan for 4.0.0 right now. > > >>>>>>>> > > >>>>>>>> Bumping minimum JDK version to JDK 17 is for 3.10.0 only. > > >>>>>>>> > > >>>>>>>> I suggested JDK 17, because I’d like to do a major refactoring > to > > >>>>>> upgrade > > >>>>>>>> Jetty to the latest (12.1) version and it requires Java 17 in > the > > >>>>>>> runtime. > > >>>>>>>> I know it sounds like a big jump, but consider that Java 11 is > > >> already > > >>>>>>>> outdated. (EoS was Sept 2023) > > >>>>>>>> > > >>>>>>>> Every version of Jetty including and earlier than 11 is already > EoL, > > >>>> so > > >>>>>>> we > > >>>>>>>> don’t benefit too much from a JDK 11 upgrade. > > >>>>>>>> > > >>>>>>>> ZooKeeper 3.9.x will be supported and stay the stable version of > > >>>> Apache > > >>>>>>>> ZooKeeper for a long long time, so people running on Java 8 and > 11 > > >> are > > >>>>>>>> still covered. > > >>>>>>>> > > >>>>>>>> Best, > > >>>>>>>> Andor > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>>>> On Aug 19, 2025, at 13:18, Christopher <[email protected]> > > >> wrote: > > >>>>>>>>> > > >>>>>>>>> I have reservations about bumping the minimum runtime Java > version > > >> to > > >>>>>>>>> 17, because I have applications that use ZooKeeper client code > that > > >>>>>>>>> run Java 11. I think a more modest change would be to bump the > > >>>>>>>>> required build version to 17, but keep the target version at > 11. If > > >>>>>>>>> this is being considered for 4.0.0 only, then I'm okay with > just > > >>>>>> going > > >>>>>>>>> to 17 for the runtime version as well. I think my existing > > >>>>>>>>> applications that run on java 11 can continue to use 3.x. > > >>>>>>>>> > > >>>>>>>>> On Mon, Aug 18, 2025 at 8:44 AM Kezhu Wang <[email protected]> > > >>>>>> wrote: > > >>>>>>>>>> > > >>>>>>>>>> Hi all, > > >>>>>>>>>> > > >>>>>>>>>> +1 to upgrade to JDK 17 > > >>>>>>>>>> > > >>>>>>>>>> Ideally, I would suggest using different jdk versions for > client > > >> and > > >>>>>>>>>> server to not push client usage just like kafka[1] and > pulsar[2]. > > >>>>>> But > > >>>>>>>>>> given the fact that we don't have a slim client jar[3], so +1 > to > > >>>>>> this. > > >>>>>>>>>> > > >>>>>>>>>> +1 to call next release from master as 3.10.0 > > >>>>>>>>>> > > >>>>>>>>>> I think most of the code changes in master since 3.9 were > expected > > >>>>>> to > > >>>>>>>>>> be shipped in 3.10.0. One can confirm this in > zookeeperAdmin.md. I > > >>>>>>>>>> don't think it is worth bumping to 4.x near its release. > > >>>>>>>>>> > > >>>>>>>>>> I expect 4.x to be a planned version to do some ambitious > tasks > > >> and > > >>>>>>>>>> probably in a not backward compatible way such as > > >> ZOOKEEPER-233[3], > > >>>>>>>>>> ZOOKEEPER-835[4] or ZOOKEEPER-22[5]. Also, there is 4.0.0 in > > >>>>>> jira[6]. > > >>>>>>>>>> > > >>>>>>>>>> I do think bumping to JDK 17 could also be considered as a > > >> breaking > > >>>>>>>>>> change, but that could be trivial for dependants to solve and > not > > >>>>>>>>>> touching zookeeper related codes. I would prefer new > > >>>>>> features(probably > > >>>>>>>>>> along with breaking changes) from our side in major releases. > > >>>>>>>>>> > > >>>>>>>>>> [1]: > https://kafka.apache.org/40/documentation/compatibility.html > > >>>>>>>>>> [2]: > > >>>>>>>> > > >>>>>>> > > >>>>>> > > >>>> > > >> > https://github.com/apache/pulsar?tab=readme-ov-file#pulsar-runtime-java-version-recommendation > > >>>>>>>>>> [3]: https://issues.apache.org/jira/browse/ZOOKEEPER-233 > > >>>>>>>>>> [4]: https://issues.apache.org/jira/browse/ZOOKEEPER-835 > > >>>>>>>>>> [5]: https://issues.apache.org/jira/browse/ZOOKEEPER-22 > > >>>>>>>>>> [6]: > > >>>>>>>> > https://issues.apache.org/jira/projects/ZOOKEEPER/versions/12313382 > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> On Sun, Aug 10, 2025 at 9:34 AM Andor Molnar < > [email protected]> > > >>>>>>> wrote: > > >>>>>>>>>>> > > >>>>>>>>>>> What tech debt do you mean exactly? > > >>>>>>>>>>> > > >>>>>>>>>>> I'm happy either way, don't have strong opinion, we can stay > at > > >>>>>> 3.x.x > > >>>>>>>>>>> versioning. > > >>>>>>>>>>> > > >>>>>>>>>>> Andor > > >>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>>>>> On 8/9/25 06:40, tison wrote: > > >>>>>>>>>>>> Or instead, from a different perspective, if we call a 4.0, > can > > >> we > > >>>>>>>> pay back > > >>>>>>>>>>>> some tech debt just for compatibility? > > >>>>>>>>>>>> > > >>>>>>>>>>>> Best, > > >>>>>>>>>>>> tison. > > >>>>>>>>>>>> > > >>>>>>>>>>>> > > >>>>>>>>>>>> tison <[email protected]>于2025年8月9日 周六18:30写道: > > >>>>>>>>>>>> > > >>>>>>>>>>>>> +1 for JDK17 > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> -0 for 4.0. Bumping JDK version doesn't break APIs and > > >> contracts. > > >>>>>>> So > > >>>>>>>> I'd > > >>>>>>>>>>>>> prefer 3.10. 4.0 may give a signal of a big break change > but it > > >>>>>>>> isn't. > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> Best, > > >>>>>>>>>>>>> tison. > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> > > >>>>>>>>>>>>> Li Wang <[email protected]>于2025年8月9日 周六08:51写道: > > >>>>>>>>>>>>> > > >>>>>>>>>>>>>> That's awesome. Thanks for driving this, Andor! > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> After releasing 3.9.4 I’d like to announce EoL of the > 3.8.x > > >>>>>>> release > > >>>>>>>> line > > >>>>>>>>>>>>>>> and create a new minor/major off the master branch. > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> Does this mean the next major version (i.e. 4.0.0/3.10.0) > will > > >>>>>> be > > >>>>>>>> released > > >>>>>>>>>>>>>> soon, as we need to have a new current release before > > >> announcing > > >>>>>>>> EoL of > > >>>>>>>>>>>>>> the > > >>>>>>>>>>>>>> 3.8.x release? > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> Given the 3.9.4 release is in progress, any rough idea on > when > > >>>>>> the > > >>>>>>>> next > > >>>>>>>>>>>>>> major version will be? > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> what if we rather call the new release 4.0.0 > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> +1 for calling it 4.0.0. Looks like we have been on 3.x > for > > >>>>>> about > > >>>>>>>> 17 years > > >>>>>>>>>>>>>> already. > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> what if we make two steps forward instead of one and let > Java > > >> 17 > > >>>>>>> to > > >>>>>>>> be the > > >>>>>>>>>>>>>>> minimum requirement > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> +1 for Java 17 > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> Best, > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> Li > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> On Fri, Aug 8, 2025 at 2:38 PM Patrick Hunt < > [email protected] > > >>> > > >>>>>>>> wrote: > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> Thanks for driving this Andor! I think what you are > saying > > >>>>>> makes > > >>>>>>>> sense, > > >>>>>>>>>>>>>>> will be interested to see what other ppl think. > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> Regards, > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> Patrick > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> On Fri, Aug 8, 2025 at 2:27 PM Andor Molnar < > > >> [email protected]> > > >>>>>>>> wrote: > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> Hi Li, > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> The topic comes up every so often on the Dev list, so > let’s > > >>>>>>> bring > > >>>>>>>> it > > >>>>>>>>>>>>>> up > > >>>>>>>>>>>>>>>> again. After releasing 3.9.4 I’d like to announce EoL > of the > > >>>>>>> 3.8.x > > >>>>>>>>>>>>>>> release > > >>>>>>>>>>>>>>>> line and create a new minor/major off the master > branch. I’d > > >>>>>>> like > > >>>>>>>> to > > >>>>>>>>>>>>>> drop > > >>>>>>>>>>>>>>>> Java 8 support in that release and make Java 11 as > minimum > > >>>>>>>> requirement > > >>>>>>>>>>>>>>> for > > >>>>>>>>>>>>>>>> ZooKeeper. > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> * In which case, what if we rather call the new release > > >> 4.0.0? > > >>>>>>>>>>>>>>>> * Additionally what if we make two steps forward > instead of > > >>>>>> one > > >>>>>>>> and > > >>>>>>>>>>>>>> let > > >>>>>>>>>>>>>>>> Java 17 to be the minimum requirement? With that, we > could > > >>>>>>> upgrade > > >>>>>>>>>>>>>> Jetty > > >>>>>>>>>>>>>>> to > > >>>>>>>>>>>>>>>> the latest actively supported version. > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> Please share your thoughts. > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> Andor > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> On May 7, 2025, at 13:16, Li Wang <[email protected]> > > >> wrote: > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> Hello, > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> Does anyone know when 3.10.0 is planned to be released? > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> Thanks > > >>>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>>> Li > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>>> > > >>>>>>>>>>>>>>> > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>> > > >>>>>>>>>>>> > > >>>>>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>> > > >>>>>> > > >>>> > > >>>> > > >> > > >> > > >
