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

Reply via email to