Might be worth coming up with a proposal (ie review all the existing 4.x jira and other wish list and put a "proposal" wiki page together for 4.0?)
An option is start with a couple of proposals pages under our wiki page[1] whether or not we process the major bump it helps memorize ideas and consensus of our community discussions and can be fast referred to. Best, tison. [1] https://cwiki.apache.org/confluence/display/HADOOP2/ZooKeeper Patrick Hunt <ph...@apache.org> 于2019年10月2日周三 下午11:40写道: > On Wed, Oct 2, 2019 at 2:22 AM Enrico Olivelli <eolive...@gmail.com> > wrote: > > > If we release a 3.6.0-beta, shall the master point to 3.6.x ? or will we > > bump the version to 4.0.0 or 3.7.0 ? > > are we creating a branch-3.6, will it be open for new features/refactors > ? > > > > > Major version change means "not backward compatible". We've been at Apache > for > 10 years and never had to do this. Is it justified? ie what changes > would we make. I can think of a few; update the API to address some long > standing painpoints - ie version numbers are 32 bit ->64, fix the "epoch > overlaps zxid" which is a major PITA IMO, no checksum in the messages, > replace jute with protobuf, etc... > > That's going to break alot of downstreams. As such it would make sense to > have 3.7... while 4.0 was in play? Or keep b/w compat and address the > things I mentioned above (doable but more costly and time consuming, less > clean, etc...) > > Depends what we want to accomplish. Given the uptick in community activity > it might be a great time to try. Might be worth coming up with a proposal > (ie review all the existing 4.x jira and other wish list and put a > "proposal" wiki page together for 4.0?) > > > > Ideally once we cut a major release we move all the development and all > of > > the new features to master branch = next major release. > > > > In BookKeeper we have a concept of "latest stable" and "last released": > > - master branch -> not ready for production, not released yet > > - last released (3.6.0 in our case) -> latest and greatest, no blocker > > issues, it can be used in production, maybe not yet widespread, no more > API > > changes, allow minor improvements backported from master branch > > - latest stable (3.5.6) in out case-> last point release of latest > release > > branch, the branch has been around for some time and it is proven to be > > stable in production, only critical fixes accepted > > > > So I am leaning toward a 3.6.0 release, it is simpler for users (every > > role) to understand. > > People know that as soon as a major release is cut some issue may be > > encountered, this is why many companies wait to move to next major > version > > only after one or two point releases are available. > > > > btw I can live with a 3.6.0-beta, but with some constraint on a release > > within a couple of months, ZooKeeper community is more and more active, > it > > is becoming simpler to commit patches and cut releases. > > > > > Yes. Make it short whatever you do. But providing an "onramp" sounds like a > reasonable approach to me. > > Regards, > > Patrick > > > > I will also be happy to drive this release as RM, whatever path we decide > > as a community > > > > Enrico > > > > > > > > > > > > > > Il giorno mer 2 ott 2019 alle ore 11:04 Norbert Kalmar > > <nkal...@cloudera.com.invalid> ha scritto: > > > > > So if I understand this, "3.6.0-beta" (let's cut the 1 here as maybe no > > > need for a second beta?) and after a fixed time (say about 3 month) > > > "3.6.0-beta2" OR "3.6.0" if it seems fit (vote on it again). > > > This sounds good to me, +1 (non-binding). > > > > > > Regards, > > > Norbert > > > > > > On Wed, Oct 2, 2019 at 10:54 AM Andor Molnar <an...@apache.org> wrote: > > > > > > > Hi, > > > > > > > > I second Pat’s suggestion about release in beta for a fixed period > and > > > > after that follow Norbert’s versioning scheme: 3.6.0-beta1, > > 3.6.0-beta2, > > > … > > > > , 3.6.0 > > > > > > > > Regards, > > > > Andor > > > > > > > > > > > > > > > > > > > > > On 2019. Oct 2., at 2:23, Michael Han <h...@apache.org> wrote: > > > > > > > > > > I am leaning towards release master as 3.6.0 as well, not with any > > > > suffix. > > > > > We don't have any pending unstable API for 3.6 (like dynamic > > > > > reconfiguration to 3.5) that justify the added overheads of using a > > non > > > > > standard, ZooKeeper specific versioning scheme for master branch. > > > > > > > > > > See > > > > > > > > > > > > > > > http://zookeeper-user.578899.n2.nabble.com/Question-about-3-5-0-stability-and-versioning-td7580927.html > > > > > for > > > > > some context on why the decision was made and the complains. > > > > > > > > > > > > > > > On Tue, Oct 1, 2019 at 7:11 AM Patrick Hunt <ph...@apache.org> > > wrote: > > > > > > > > > >> Enrico these are good ideas, thoughts below: > > > > >> > > > > >> On Tue, Oct 1, 2019 at 6:09 AM Norbert Kalmar > > > > <nkal...@cloudera.com.invalid > > > > >>> > > > > >> wrote: > > > > >> > > > > >>> Hi, > > > > >>> > > > > >>> 3.5 had a lot of new features that wasn't really finalized, so > API > > > > >> changed > > > > >>> until stable 3.5 (3.5.5). But I don't think this is the case with > > > > 3.6.0, > > > > >> we > > > > >>> have complete and pretty much finalized features as far as I can > > > tell. > > > > >>> Also, it did confuse me that with the beta and alpha releases on > > 3.5 > > > > >> minor > > > > >>> version jumped as well. So if we want to stick with alpha/beta > > > > qualifier, > > > > >>> let's keep it at 3.6.0-alpha and 3.6.0-beta (not like > 3.6.2-beta). > > > > >>> > > > > >>> > > > > >> That is a good point Norbert. We did try to say "alpha/beta is > > > unstable" > > > > >> (apis/code/etc...). That worked fairly well, but we were in that > > state > > > > for > > > > >> so long that people started using it in production and then got > > upset > > > > when > > > > >> we did change the APIs (whatever). As such I would say this is > only > > > > >> partially successful. Perhaps it would have been more successful > if > > we > > > > had > > > > >> limited the beta time down more, however folks kept increasing the > > > scope > > > > >> (by committing new features to 3.5 rather than trunk) and that > ended > > > up > > > > >> continually pushing out the dates. > > > > >> > > > > >> > > > > >>> I don't know any change that would justify an "alpha" version, so > > > > maybe a > > > > >>> beta would be better? But I'm also just fine releasing just > > "3.6.0". > > > > >> Bugfix > > > > >>> version is zero, everyone pretty much knows what that means :) > > > > >>> > > > > >> > > > > >> Perhaps a limited "beta" to allow folks to bang on it, then a > > planned > > > > move > > > > >> to "stable"? You could say we'll release it as beta for 3 months > > then > > > > move > > > > >> to stable if there are no major issues. The problem with just > > > releasing > > > > >> straight to stable is that many folks won't try it out from source > > and > > > > >> would only try a binary. > > > > >> > > > > >> Patrick > > > > >> > > > > >> > > > > >>> > > > > >>> So I lean toward leaving alpha and beta out of the version. > > > > >>> > > > > >>> Regards, > > > > >>> Norbert > > > > >>> > > > > >>> On Tue, Oct 1, 2019 at 2:34 PM Enrico Olivelli < > > eolive...@gmail.com> > > > > >>> wrote: > > > > >>> > > > > >>>> Hi, > > > > >>>> We are close to a release for 3.6.0, currently master branch is > > full > > > > of > > > > >>>> important features and important refactors. > > > > >>>> > > > > >>>> On the VOTE thread for 3.5.6 it came out that we could release > > 3.6.0 > > > > as > > > > >>>> "ALPHA", here are my thoughts. > > > > >>>> > > > > >>>> I think we have at least these kind of "users": > > > > >>>> - Companies that run the Server on the most recent "stable" > > release > > > > >>>> - Companies that running a ZooKeeper cluster just because > another > > > > >> system > > > > >>>> depends on it (HBase, Kafka,Solr, Pulsar....) > > > > >>>> - Library maintainers (Kafka, BookKeeper, HBase), they depend > on a > > > > >>> version > > > > >>>> of the client or on some feature of the server > > > > >>>> - Application developers > > > > >>>> - Big companies that maintain their own forks and/or are using > the > > > > >>> "master" > > > > >>>> version > > > > >>>> > > > > >>>> With my library maintainer hat I feel I cannot depend on some > > > "ALPHA" > > > > >>>> version of ZooKeeper client and make my users setup an ALPHA > > > version > > > > >> of > > > > >>>> the server. > > > > >>>> It happened on BookKeeper for instance, we started to depend on > ZK > > > 3.5 > > > > >>> but > > > > >>>> as it was BETA so we needed to revert back to 3.4. > > > > >>>> I think that some similar story happened in Kafka, now that we > > have > > > > 3.5 > > > > >>>> with SSL support users are going to migrate. > > > > >>>> > > > > >>>> If there is no blocker issue on 3.6.0 I feel we should dare to > > > release > > > > >> it > > > > >>>> as "stable", we can always suggest users and companies to try > out > > > > >> current > > > > >>>> master and give feedback. > > > > >>>> > > > > >>>> I am new to this story of tagging as "ALPHA"/"BETA" on > ZooKeeper, > > > but > > > > >> as > > > > >>> an > > > > >>>> user and library maintainer I suffered a lot that '-ALPHA' and > > > '-BETA' > > > > >>>> suffixes. > > > > >>>> I know that ZooKeeper is the core of most of the other systems > and > > > we > > > > >>>> should not suggest to use something that it is "experimental", > but > > > as > > > > >> far > > > > >>>> as I know we are taking great care about being backward > compatible > > > and > > > > >>>> about the quality of our code base. > > > > >>>> > > > > >>>> Other opinions ? > > > > >>>> > > > > >>>> Enrico > > > > >>>> > > > > >>> > > > > >> > > > > > > > > > > > > > >