Re: reconfig APIs

2017-02-11 Thread Michael Han
> > ZooKeeperAdmin which as previously stated is the right thing to do in
>>> long
>>> > term. If we decide to maintain backward API compatibility for
>>> 3.5.3-beta
>>> > release, we could add reconfig API back to ZooKeeper but mark it as
>>> > deprecated, then remove the API in next major release (3.6 or 4.x).
>>> >
>>> >
>>> > On Thu, Dec 8, 2016 at 8:27 AM, Patrick Hunt <ph...@apache.org> wrote:
>>> >
>>> >> I've only seen a few questions about versioning come up on the ZK
>>> lists,
>>> >> they were quickly responded to with pointers to the process. iirc we
>>> based
>>> >> our versioning scheme on what Hadoop was/is using. Additionally if we
>>> don't
>>> >> allow for alpha time it will further slow progress as there will be no
>>> >> opportunity to adjust things like APIs once they are committed and
>>> >> generally available for people to "kick the tires".
>>> >>
>>> >> I'll leave it up to the rest of the community to state their
>>> opinions, but
>>> >> as i have stated imo it would be a mistake to revert this change.
>>> Jordan
>>> >> has raised a reasonable concern - I consider this a blocker for
>>> 3.5.3-alpha
>>> >> until it is resolved.
>>> >>
>>> >> Patrick
>>> >>
>>> >> On Thu, Dec 8, 2016 at 1:46 AM, Jordan Zimmerman <
>>> >> jor...@jordanzimmerman.com
>>> >>> wrote:
>>> >>
>>> >>>> I think people understand what alpha means.
>>> >>>
>>> >>> With respect, the ZooKeeper team has used “alpha” in a novel way
>>> that is
>>> >>> sowing considerable confusion. I wrote emails about this a while
>>> back.
>>> >> But,
>>> >>> here again, is another case where the non-standard usage of “alpha”
>>> will
>>> >>> cause confusion. To reiterate: someone who sees "3.5.2-alpha” will
>>> think
>>> >>> that there will eventually be a “3.5.2-beta” and finally a “3.5.2”
>>> >> release
>>> >>> version. But, with ZooKeeper there will never be a “3.5.2” release.
>>> In
>>> >>> fact, the “-alpha” label is mis-located. The real version is
>>> >>> “3.5.?-alpha1”, “3.5.?-alpha2”, etc. There’s an important implication
>>> >> here.
>>> >>> If a ZooKeeper user who doesn’t follow the mailing lists, etc. sees
>>> >>> “3.5.2-alpha” and “3.5.3-alpha” they will mentally see these as two
>>> >>> different releases. What ZOOKEEPER-2014 has done is remove an
>>> existing
>>> >> API
>>> >>> from what appears to be a released version 3.5.2 (which never really
>>> >>> existed). This change violates semantic versioning. For external
>>> users,
>>> >> the
>>> >>> version after “3.5.2” should be “4.x.x” as it has breaking changes.
>>> >>>
>>> >>>> It's not about style, there were a number of concerns addressed in
>>> that
>>> >>>> patch.
>>> >>>
>>> >>> The auth issues are very real ones. The issues in ZOOKEEPER-2014 can
>>> be
>>> >>> addressed completely without moving the reconfig() methods to a new
>>> >> class.
>>> >>> It may be useful to move APIs around for clarity, etc. but these
>>> breaking
>>> >>> changes should be for a version that signals breaking changes -
>>> 4.x.x or
>>> >>> something. i.e. moving the reconfig() APIs is orthogonal to the
>>> concerns
>>> >> of
>>> >>> ZOOKEEPER-2014 and should be a separate Jira issue.
>>> >>>
>>> >>>> I think people understand what alpha means. There may be some short
>>> >> term
>>> >>>> impact for a few, but a significant benefit over the long term.
>>> >>>
>>> >>> Again with respect - 3.5.0-alpha was made available in Maven Central
>>> >>> August 2014 - over 2 years ago. Regardless of the ZooKeeper team’s
>>> >> intent,
>>> >>> this is NOT an alpha in users’ minds. This is a released library
>>> that is
>>> >> in
>>> >>> production in major organizati

Re: reconfig APIs

2017-02-04 Thread Michael Han
ly if we
>> don't
>> >> allow for alpha time it will further slow progress as there will be no
>> >> opportunity to adjust things like APIs once they are committed and
>> >> generally available for people to "kick the tires".
>> >>
>> >> I'll leave it up to the rest of the community to state their opinions,
>> but
>> >> as i have stated imo it would be a mistake to revert this change.
>> Jordan
>> >> has raised a reasonable concern - I consider this a blocker for
>> 3.5.3-alpha
>> >> until it is resolved.
>> >>
>> >> Patrick
>> >>
>> >> On Thu, Dec 8, 2016 at 1:46 AM, Jordan Zimmerman <
>> >> jor...@jordanzimmerman.com
>> >>> wrote:
>> >>
>> >>>> I think people understand what alpha means.
>> >>>
>> >>> With respect, the ZooKeeper team has used “alpha” in a novel way that
>> is
>> >>> sowing considerable confusion. I wrote emails about this a while back.
>> >> But,
>> >>> here again, is another case where the non-standard usage of “alpha”
>> will
>> >>> cause confusion. To reiterate: someone who sees "3.5.2-alpha” will
>> think
>> >>> that there will eventually be a “3.5.2-beta” and finally a “3.5.2”
>> >> release
>> >>> version. But, with ZooKeeper there will never be a “3.5.2” release. In
>> >>> fact, the “-alpha” label is mis-located. The real version is
>> >>> “3.5.?-alpha1”, “3.5.?-alpha2”, etc. There’s an important implication
>> >> here.
>> >>> If a ZooKeeper user who doesn’t follow the mailing lists, etc. sees
>> >>> “3.5.2-alpha” and “3.5.3-alpha” they will mentally see these as two
>> >>> different releases. What ZOOKEEPER-2014 has done is remove an existing
>> >> API
>> >>> from what appears to be a released version 3.5.2 (which never really
>> >>> existed). This change violates semantic versioning. For external
>> users,
>> >> the
>> >>> version after “3.5.2” should be “4.x.x” as it has breaking changes.
>> >>>
>> >>>> It's not about style, there were a number of concerns addressed in
>> that
>> >>>> patch.
>> >>>
>> >>> The auth issues are very real ones. The issues in ZOOKEEPER-2014 can
>> be
>> >>> addressed completely without moving the reconfig() methods to a new
>> >> class.
>> >>> It may be useful to move APIs around for clarity, etc. but these
>> breaking
>> >>> changes should be for a version that signals breaking changes - 4.x.x
>> or
>> >>> something. i.e. moving the reconfig() APIs is orthogonal to the
>> concerns
>> >> of
>> >>> ZOOKEEPER-2014 and should be a separate Jira issue.
>> >>>
>> >>>> I think people understand what alpha means. There may be some short
>> >> term
>> >>>> impact for a few, but a significant benefit over the long term.
>> >>>
>> >>> Again with respect - 3.5.0-alpha was made available in Maven Central
>> >>> August 2014 - over 2 years ago. Regardless of the ZooKeeper team’s
>> >> intent,
>> >>> this is NOT an alpha in users’ minds. This is a released library that
>> is
>> >> in
>> >>> production in major organizations. The ZooKeeper team should realize
>> this
>> >>> and adjust their thinking about the “alpha” tag. For Apache Curator,
>> >> we’re
>> >>> now put in a position where the reconfig() APIs have disappeared. In
>> >> order
>> >>> to maintain our own internal semantic versioning we will have to
>> >> consider a
>> >>> third branch of Curator (we currently have a ZooKeeper 3.4.x
>> compatible
>> >>> version and a ZooKeeper 3.5.x compatible version). It would be
>> awesome if
>> >>> we didn’t have to do this.
>> >>>
>> >>> -Jordan
>> >>>
>> >>>> On Dec 7, 2016, at 7:16 PM, Patrick Hunt <ph...@apache.org> wrote:
>> >>>>
>> >>>> It's not about style, there were a number of concerns addressed in
>> that
>> >>>> patch. We didn't take the change lightly, we've been discussing it
>> over
>> >>>> jira and the mailing list over the past two years.
>> >>>

Re: reconfig APIs

2017-01-05 Thread Michael Han
t;> sowing considerable confusion. I wrote emails about this a while back.
> >> But,
> >>> here again, is another case where the non-standard usage of “alpha”
> will
> >>> cause confusion. To reiterate: someone who sees "3.5.2-alpha” will
> think
> >>> that there will eventually be a “3.5.2-beta” and finally a “3.5.2”
> >> release
> >>> version. But, with ZooKeeper there will never be a “3.5.2” release. In
> >>> fact, the “-alpha” label is mis-located. The real version is
> >>> “3.5.?-alpha1”, “3.5.?-alpha2”, etc. There’s an important implication
> >> here.
> >>> If a ZooKeeper user who doesn’t follow the mailing lists, etc. sees
> >>> “3.5.2-alpha” and “3.5.3-alpha” they will mentally see these as two
> >>> different releases. What ZOOKEEPER-2014 has done is remove an existing
> >> API
> >>> from what appears to be a released version 3.5.2 (which never really
> >>> existed). This change violates semantic versioning. For external users,
> >> the
> >>> version after “3.5.2” should be “4.x.x” as it has breaking changes.
> >>>
> >>>> It's not about style, there were a number of concerns addressed in
> that
> >>>> patch.
> >>>
> >>> The auth issues are very real ones. The issues in ZOOKEEPER-2014 can be
> >>> addressed completely without moving the reconfig() methods to a new
> >> class.
> >>> It may be useful to move APIs around for clarity, etc. but these
> breaking
> >>> changes should be for a version that signals breaking changes - 4.x.x
> or
> >>> something. i.e. moving the reconfig() APIs is orthogonal to the
> concerns
> >> of
> >>> ZOOKEEPER-2014 and should be a separate Jira issue.
> >>>
> >>>> I think people understand what alpha means. There may be some short
> >> term
> >>>> impact for a few, but a significant benefit over the long term.
> >>>
> >>> Again with respect - 3.5.0-alpha was made available in Maven Central
> >>> August 2014 - over 2 years ago. Regardless of the ZooKeeper team’s
> >> intent,
> >>> this is NOT an alpha in users’ minds. This is a released library that
> is
> >> in
> >>> production in major organizations. The ZooKeeper team should realize
> this
> >>> and adjust their thinking about the “alpha” tag. For Apache Curator,
> >> we’re
> >>> now put in a position where the reconfig() APIs have disappeared. In
> >> order
> >>> to maintain our own internal semantic versioning we will have to
> >> consider a
> >>> third branch of Curator (we currently have a ZooKeeper 3.4.x compatible
> >>> version and a ZooKeeper 3.5.x compatible version). It would be awesome
> if
> >>> we didn’t have to do this.
> >>>
> >>> -Jordan
> >>>
> >>>> On Dec 7, 2016, at 7:16 PM, Patrick Hunt <ph...@apache.org> wrote:
> >>>>
> >>>> It's not about style, there were a number of concerns addressed in
> that
> >>>> patch. We didn't take the change lightly, we've been discussing it
> over
> >>>> jira and the mailing list over the past two years.
> >>>>
> >>>> I think people understand what alpha means. There may be some short
> >> term
> >>>> impact for a few, but a significant benefit over the long term.
> >>>>
> >>>> Patrick
> >>>>
> >>>> On Dec 7, 2016 9:24 AM, "Jordan Zimmerman" <
> jor...@jordanzimmerman.com
> >>>
> >>>> wrote:
> >>>>
> >>>>> I read through the issue and disagree about the decision to move the
> >>> APIs
> >>>>> out. That was a stylistic choice that breaks client code. I realize
> >> that
> >>>>> 3.5.x has been advertised as an alpha but you must realize that most
> >> of
> >>> the
> >>>>> world is using it in production. These APIs have now been published.
> >>> This
> >>>>> will create a real headache for Curator which is why I’ve created
> >>>>> https://issues.apache.org/jira/browse/ZOOKEEPER-2642 <
> >>>>> https://issues.apache.org/jira/browse/ZOOKEEPER-2642> - I hope we
> can
> >>>>> move these APIs back into ZooKeeper.java.
> >>>>>
> >>>>> -Jordan
> >>>>>

Re: reconfig APIs

2016-12-09 Thread Arshad Mohammad
; >>> that there will eventually be a “3.5.2-beta” and finally a “3.5.2”
> >> release
> >>> version. But, with ZooKeeper there will never be a “3.5.2” release. In
> >>> fact, the “-alpha” label is mis-located. The real version is
> >>> “3.5.?-alpha1”, “3.5.?-alpha2”, etc. There’s an important implication
> >> here.
> >>> If a ZooKeeper user who doesn’t follow the mailing lists, etc. sees
> >>> “3.5.2-alpha” and “3.5.3-alpha” they will mentally see these as two
> >>> different releases. What ZOOKEEPER-2014 has done is remove an existing
> >> API
> >>> from what appears to be a released version 3.5.2 (which never really
> >>> existed). This change violates semantic versioning. For external users,
> >> the
> >>> version after “3.5.2” should be “4.x.x” as it has breaking changes.
> >>>
> >>>> It's not about style, there were a number of concerns addressed in
> that
> >>>> patch.
> >>>
> >>> The auth issues are very real ones. The issues in ZOOKEEPER-2014 can be
> >>> addressed completely without moving the reconfig() methods to a new
> >> class.
> >>> It may be useful to move APIs around for clarity, etc. but these
> breaking
> >>> changes should be for a version that signals breaking changes - 4.x.x
> or
> >>> something. i.e. moving the reconfig() APIs is orthogonal to the
> concerns
> >> of
> >>> ZOOKEEPER-2014 and should be a separate Jira issue.
> >>>
> >>>> I think people understand what alpha means. There may be some short
> >> term
> >>>> impact for a few, but a significant benefit over the long term.
> >>>
> >>> Again with respect - 3.5.0-alpha was made available in Maven Central
> >>> August 2014 - over 2 years ago. Regardless of the ZooKeeper team’s
> >> intent,
> >>> this is NOT an alpha in users’ minds. This is a released library that
> is
> >> in
> >>> production in major organizations. The ZooKeeper team should realize
> this
> >>> and adjust their thinking about the “alpha” tag. For Apache Curator,
> >> we’re
> >>> now put in a position where the reconfig() APIs have disappeared. In
> >> order
> >>> to maintain our own internal semantic versioning we will have to
> >> consider a
> >>> third branch of Curator (we currently have a ZooKeeper 3.4.x compatible
> >>> version and a ZooKeeper 3.5.x compatible version). It would be awesome
> if
> >>> we didn’t have to do this.
> >>>
> >>> -Jordan
> >>>
> >>>> On Dec 7, 2016, at 7:16 PM, Patrick Hunt <ph...@apache.org> wrote:
> >>>>
> >>>> It's not about style, there were a number of concerns addressed in
> that
> >>>> patch. We didn't take the change lightly, we've been discussing it
> over
> >>>> jira and the mailing list over the past two years.
> >>>>
> >>>> I think people understand what alpha means. There may be some short
> >> term
> >>>> impact for a few, but a significant benefit over the long term.
> >>>>
> >>>> Patrick
> >>>>
> >>>> On Dec 7, 2016 9:24 AM, "Jordan Zimmerman" <
> jor...@jordanzimmerman.com
> >>>
> >>>> wrote:
> >>>>
> >>>>> I read through the issue and disagree about the decision to move the
> >>> APIs
> >>>>> out. That was a stylistic choice that breaks client code. I realize
> >> that
> >>>>> 3.5.x has been advertised as an alpha but you must realize that most
> >> of
> >>> the
> >>>>> world is using it in production. These APIs have now been published.
> >>> This
> >>>>> will create a real headache for Curator which is why I’ve created
> >>>>> https://issues.apache.org/jira/browse/ZOOKEEPER-2642 <
> >>>>> https://issues.apache.org/jira/browse/ZOOKEEPER-2642> - I hope we
> can
> >>>>> move these APIs back into ZooKeeper.java.
> >>>>>
> >>>>> -Jordan
> >>>>>
> >>>>>> On Dec 7, 2016, at 5:54 PM, Patrick Hunt <ph...@apache.org> wrote:
> >>>>>>
> >>>>>> It's discussed in more depth in the JIRA iirc, but basically;
> >>>>>> ZooKeeper.java provides client

Re: reconfig APIs

2016-12-08 Thread Jordan Zimmerman
version 3.5.2 (which never really
>>> existed). This change violates semantic versioning. For external users,
>> the
>>> version after “3.5.2” should be “4.x.x” as it has breaking changes.
>>> 
>>>> It's not about style, there were a number of concerns addressed in that
>>>> patch.
>>> 
>>> The auth issues are very real ones. The issues in ZOOKEEPER-2014 can be
>>> addressed completely without moving the reconfig() methods to a new
>> class.
>>> It may be useful to move APIs around for clarity, etc. but these breaking
>>> changes should be for a version that signals breaking changes - 4.x.x or
>>> something. i.e. moving the reconfig() APIs is orthogonal to the concerns
>> of
>>> ZOOKEEPER-2014 and should be a separate Jira issue.
>>> 
>>>> I think people understand what alpha means. There may be some short
>> term
>>>> impact for a few, but a significant benefit over the long term.
>>> 
>>> Again with respect - 3.5.0-alpha was made available in Maven Central
>>> August 2014 - over 2 years ago. Regardless of the ZooKeeper team’s
>> intent,
>>> this is NOT an alpha in users’ minds. This is a released library that is
>> in
>>> production in major organizations. The ZooKeeper team should realize this
>>> and adjust their thinking about the “alpha” tag. For Apache Curator,
>> we’re
>>> now put in a position where the reconfig() APIs have disappeared. In
>> order
>>> to maintain our own internal semantic versioning we will have to
>> consider a
>>> third branch of Curator (we currently have a ZooKeeper 3.4.x compatible
>>> version and a ZooKeeper 3.5.x compatible version). It would be awesome if
>>> we didn’t have to do this.
>>> 
>>> -Jordan
>>> 
>>>> On Dec 7, 2016, at 7:16 PM, Patrick Hunt <ph...@apache.org> wrote:
>>>> 
>>>> It's not about style, there were a number of concerns addressed in that
>>>> patch. We didn't take the change lightly, we've been discussing it over
>>>> jira and the mailing list over the past two years.
>>>> 
>>>> I think people understand what alpha means. There may be some short
>> term
>>>> impact for a few, but a significant benefit over the long term.
>>>> 
>>>> Patrick
>>>> 
>>>> On Dec 7, 2016 9:24 AM, "Jordan Zimmerman" <jor...@jordanzimmerman.com
>>> 
>>>> wrote:
>>>> 
>>>>> I read through the issue and disagree about the decision to move the
>>> APIs
>>>>> out. That was a stylistic choice that breaks client code. I realize
>> that
>>>>> 3.5.x has been advertised as an alpha but you must realize that most
>> of
>>> the
>>>>> world is using it in production. These APIs have now been published.
>>> This
>>>>> will create a real headache for Curator which is why I’ve created
>>>>> https://issues.apache.org/jira/browse/ZOOKEEPER-2642 <
>>>>> https://issues.apache.org/jira/browse/ZOOKEEPER-2642> - I hope we can
>>>>> move these APIs back into ZooKeeper.java.
>>>>> 
>>>>> -Jordan
>>>>> 
>>>>>> On Dec 7, 2016, at 5:54 PM, Patrick Hunt <ph...@apache.org> wrote:
>>>>>> 
>>>>>> It's discussed in more depth in the JIRA iirc, but basically;
>>>>>> ZooKeeper.java provides client APIs, reconfig is an admiistrative
>> API.
>>>>>> 
>>>>>> Patrick
>>>>>> 
>>>>>> On Wed, Dec 7, 2016 at 8:48 AM, Jordan Zimmerman <
>>>>> jor...@jordanzimmerman.com
>>>>>>> wrote:
>>>>>> 
>>>>>>> I understand the need to make the methods require proper auth but
>>>>> there's
>>>>>>> no reason to move it to a different class that I can see. Am I
>> missing
>>>>>>> something?
>>>>>>> 
>>>>>>> 
>>>>>>> Jordan Zimmerman
>>>>>>> 
>>>>>>>> On Dec 7, 2016, at 4:37 PM, Patrick Hunt <ph...@apache.org> wrote:
>>>>>>>> 
>>>>>>>> This problem has been a long standing blocker issue for 3.5 and
>>>>>>> identified
>>>>>>>> early on as something that would need to change. This has been one
>> of
>>>>> the
>>>>>>>> reasons why 3.5 has stayed in alpha - because we allow non-backward
>>>>>>>> compatible changes to new APIs in alpha and we knew we would have
>> to
>>>>> fix
>>>>>>>> this. The description/comments of ZOOKEEPER-2014 does a good job
>>>>>>>> documenting why this had to change.
>>>>>>>> 
>>>>>>>> Patrick
>>>>>>>> 
>>>>>>>> On Wed, Dec 7, 2016 at 3:18 AM, Jordan Zimmerman <
>>>>>>> jor...@jordanzimmerman.com
>>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>>> OK - I found the offending issue: ZOOKEEPER-2014
>>>>>>>>> 
>>>>>>>>> What is the benefit/logic of moving the reconfig() variants into a
>>> new
>>>>>>>>> class? I can see if this was done from the start but you have now
>>>>> broken
>>>>>>>>> Curator in a fairly serious non-backward compatible way for a
>> minor
>>>>>>>>> documenting benefit. Does anyone object to me reversing this?
>>>>>>>>> 
>>>>>>>>> -Jordan
>>>>>>>>> 
>>>>>>>>>> On Dec 7, 2016, at 11:37 AM, Jordan Zimmerman <
>>>>>>>>> jor...@jordanzimmerman.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> Hi,
>>>>>>>>>> 
>>>>>>>>>> I was compiling Curator against the ZK master and noticed that
>> the
>>>>>>>>> reconfig APIs are gone/changed. Can anyone point me at the issues
>>> for
>>>>>>> this
>>>>>>>>> and/or the discussion why this breaking change was made?
>>>>>>>>>> 
>>>>>>>>>> -Jordan
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
>> 
> 
> 
> 
> -- 
> Cheers
> Michael.



Re: reconfig APIs

2016-12-08 Thread Michael Han
Thanks Jordan for raising the concern. It's a reasonable concern with good
intention to make user's life easier, which is important to the project.

There are two separate issues we need to reach a consensus here:

* Move reconfig API
The details of why the decision was made is documented in ZOOKEEPER-2014
JIRA, but just to recap, the API is moved because it's the right thing to
do in long term, which yield a cleaner interface design for ZooKeeper
client API. In future, we might also want to clean up other APIs (i.e. move
quota related APIs over as well.) as well. While seemingly stylish as it
might look like, I believe a clean API is also important for a project's
usability / adoption. From the discussions so far I think everyone either
agree with this, or have no strong opinion against it, so I consider this
question is solved.

* Backward compatibility between releases
Since we decide refactor reconfig API, the question is when. The reconfig
API was removed from ZOOKEEPER-2014 (which targets 3.5.3 alpha) because of
the definition of alpha / beta releases in the context of ZooKeeper project
(I'm not saying this is right or wrong, simply state a fact up to date): an
alpha release implies that we allow backward incompatible changes, and a
beta release implies that the APIs are locked down and none backward
compatible change. Given this definition, it is perfectly legitimate to
move API around w/o considering compatibility. Now what Jordan pointed out
regarding definition of 'alpha' combined with some old discussion threads I
found in user list indicate that our definition of 'alpha', and 'beta' is
none standard and could cause confusions. So I think we should try reach a
consensus on whether we stick with current definition of 'alpha' and 'beta'
release during 3.5.3 release cycle, or adopt something else.

With all these said, I think options are:
* Do nothing, stick with current alpha / beta definition.
* Try redefine what 'alpha' and 'beta' means in the context of ZooKeeper
and then go from there in 3.5.3 release cycle.

In any cases, I'd like to propose we keep the reconfig API in
ZooKeeperAdmin which as previously stated is the right thing to do in long
term. If we decide to maintain backward API compatibility for 3.5.3-beta
release, we could add reconfig API back to ZooKeeper but mark it as
deprecated, then remove the API in next major release (3.6 or 4.x).


On Thu, Dec 8, 2016 at 8:27 AM, Patrick Hunt <ph...@apache.org> wrote:

> I've only seen a few questions about versioning come up on the ZK lists,
> they were quickly responded to with pointers to the process. iirc we based
> our versioning scheme on what Hadoop was/is using. Additionally if we don't
> allow for alpha time it will further slow progress as there will be no
> opportunity to adjust things like APIs once they are committed and
> generally available for people to "kick the tires".
>
> I'll leave it up to the rest of the community to state their opinions, but
> as i have stated imo it would be a mistake to revert this change. Jordan
> has raised a reasonable concern - I consider this a blocker for 3.5.3-alpha
> until it is resolved.
>
> Patrick
>
> On Thu, Dec 8, 2016 at 1:46 AM, Jordan Zimmerman <
> jor...@jordanzimmerman.com
> > wrote:
>
> > > I think people understand what alpha means.
> >
> > With respect, the ZooKeeper team has used “alpha” in a novel way that is
> > sowing considerable confusion. I wrote emails about this a while back.
> But,
> > here again, is another case where the non-standard usage of “alpha” will
> > cause confusion. To reiterate: someone who sees "3.5.2-alpha” will think
> > that there will eventually be a “3.5.2-beta” and finally a “3.5.2”
> release
> > version. But, with ZooKeeper there will never be a “3.5.2” release. In
> > fact, the “-alpha” label is mis-located. The real version is
> > “3.5.?-alpha1”, “3.5.?-alpha2”, etc. There’s an important implication
> here.
> > If a ZooKeeper user who doesn’t follow the mailing lists, etc. sees
> > “3.5.2-alpha” and “3.5.3-alpha” they will mentally see these as two
> > different releases. What ZOOKEEPER-2014 has done is remove an existing
> API
> > from what appears to be a released version 3.5.2 (which never really
> > existed). This change violates semantic versioning. For external users,
> the
> > version after “3.5.2” should be “4.x.x” as it has breaking changes.
> >
> > > It's not about style, there were a number of concerns addressed in that
> > > patch.
> >
> > The auth issues are very real ones. The issues in ZOOKEEPER-2014 can be
> > addressed completely without moving the reconfig() methods to a new
> class.
> > It may be useful to move APIs around for clarity, etc. but these breaking
> > changes sho

Re: reconfig APIs

2016-12-08 Thread Patrick Hunt
I've only seen a few questions about versioning come up on the ZK lists,
they were quickly responded to with pointers to the process. iirc we based
our versioning scheme on what Hadoop was/is using. Additionally if we don't
allow for alpha time it will further slow progress as there will be no
opportunity to adjust things like APIs once they are committed and
generally available for people to "kick the tires".

I'll leave it up to the rest of the community to state their opinions, but
as i have stated imo it would be a mistake to revert this change. Jordan
has raised a reasonable concern - I consider this a blocker for 3.5.3-alpha
until it is resolved.

Patrick

On Thu, Dec 8, 2016 at 1:46 AM, Jordan Zimmerman <jor...@jordanzimmerman.com
> wrote:

> > I think people understand what alpha means.
>
> With respect, the ZooKeeper team has used “alpha” in a novel way that is
> sowing considerable confusion. I wrote emails about this a while back. But,
> here again, is another case where the non-standard usage of “alpha” will
> cause confusion. To reiterate: someone who sees "3.5.2-alpha” will think
> that there will eventually be a “3.5.2-beta” and finally a “3.5.2” release
> version. But, with ZooKeeper there will never be a “3.5.2” release. In
> fact, the “-alpha” label is mis-located. The real version is
> “3.5.?-alpha1”, “3.5.?-alpha2”, etc. There’s an important implication here.
> If a ZooKeeper user who doesn’t follow the mailing lists, etc. sees
> “3.5.2-alpha” and “3.5.3-alpha” they will mentally see these as two
> different releases. What ZOOKEEPER-2014 has done is remove an existing API
> from what appears to be a released version 3.5.2 (which never really
> existed). This change violates semantic versioning. For external users, the
> version after “3.5.2” should be “4.x.x” as it has breaking changes.
>
> > It's not about style, there were a number of concerns addressed in that
> > patch.
>
> The auth issues are very real ones. The issues in ZOOKEEPER-2014 can be
> addressed completely without moving the reconfig() methods to a new class.
> It may be useful to move APIs around for clarity, etc. but these breaking
> changes should be for a version that signals breaking changes - 4.x.x or
> something. i.e. moving the reconfig() APIs is orthogonal to the concerns of
> ZOOKEEPER-2014 and should be a separate Jira issue.
>
> > I think people understand what alpha means. There may be some short term
> > impact for a few, but a significant benefit over the long term.
>
> Again with respect - 3.5.0-alpha was made available in Maven Central
> August 2014 - over 2 years ago. Regardless of the ZooKeeper team’s intent,
> this is NOT an alpha in users’ minds. This is a released library that is in
> production in major organizations. The ZooKeeper team should realize this
> and adjust their thinking about the “alpha” tag. For Apache Curator, we’re
> now put in a position where the reconfig() APIs have disappeared. In order
> to maintain our own internal semantic versioning we will have to consider a
> third branch of Curator (we currently have a ZooKeeper 3.4.x compatible
> version and a ZooKeeper 3.5.x compatible version). It would be awesome if
> we didn’t have to do this.
>
> -Jordan
>
> > On Dec 7, 2016, at 7:16 PM, Patrick Hunt <ph...@apache.org> wrote:
> >
> > It's not about style, there were a number of concerns addressed in that
> > patch. We didn't take the change lightly, we've been discussing it over
> > jira and the mailing list over the past two years.
> >
> > I think people understand what alpha means. There may be some short term
> > impact for a few, but a significant benefit over the long term.
> >
> > Patrick
> >
> > On Dec 7, 2016 9:24 AM, "Jordan Zimmerman" <jor...@jordanzimmerman.com>
> > wrote:
> >
> >> I read through the issue and disagree about the decision to move the
> APIs
> >> out. That was a stylistic choice that breaks client code. I realize that
> >> 3.5.x has been advertised as an alpha but you must realize that most of
> the
> >> world is using it in production. These APIs have now been published.
> This
> >> will create a real headache for Curator which is why I’ve created
> >> https://issues.apache.org/jira/browse/ZOOKEEPER-2642 <
> >> https://issues.apache.org/jira/browse/ZOOKEEPER-2642> - I hope we can
> >> move these APIs back into ZooKeeper.java.
> >>
> >> -Jordan
> >>
> >>> On Dec 7, 2016, at 5:54 PM, Patrick Hunt <ph...@apache.org> wrote:
> >>>
> >>> It's discussed in more depth in the JIRA iirc, but basically;
> >>> ZooKeep

Re: reconfig APIs

2016-12-08 Thread Jordan Zimmerman
> I think people understand what alpha means.

With respect, the ZooKeeper team has used “alpha” in a novel way that is sowing 
considerable confusion. I wrote emails about this a while back. But, here 
again, is another case where the non-standard usage of “alpha” will cause 
confusion. To reiterate: someone who sees "3.5.2-alpha” will think that there 
will eventually be a “3.5.2-beta” and finally a “3.5.2” release version. But, 
with ZooKeeper there will never be a “3.5.2” release. In fact, the “-alpha” 
label is mis-located. The real version is “3.5.?-alpha1”, “3.5.?-alpha2”, etc. 
There’s an important implication here. If a ZooKeeper user who doesn’t follow 
the mailing lists, etc. sees “3.5.2-alpha” and “3.5.3-alpha” they will mentally 
see these as two different releases. What ZOOKEEPER-2014 has done is remove an 
existing API from what appears to be a released version 3.5.2 (which never 
really existed). This change violates semantic versioning. For external users, 
the version after “3.5.2” should be “4.x.x” as it has breaking changes.

> It's not about style, there were a number of concerns addressed in that
> patch.

The auth issues are very real ones. The issues in ZOOKEEPER-2014 can be 
addressed completely without moving the reconfig() methods to a new class. It 
may be useful to move APIs around for clarity, etc. but these breaking changes 
should be for a version that signals breaking changes - 4.x.x or something. 
i.e. moving the reconfig() APIs is orthogonal to the concerns of ZOOKEEPER-2014 
and should be a separate Jira issue.

> I think people understand what alpha means. There may be some short term
> impact for a few, but a significant benefit over the long term.

Again with respect - 3.5.0-alpha was made available in Maven Central August 
2014 - over 2 years ago. Regardless of the ZooKeeper team’s intent, this is NOT 
an alpha in users’ minds. This is a released library that is in production in 
major organizations. The ZooKeeper team should realize this and adjust their 
thinking about the “alpha” tag. For Apache Curator, we’re now put in a position 
where the reconfig() APIs have disappeared. In order to maintain our own 
internal semantic versioning we will have to consider a third branch of Curator 
(we currently have a ZooKeeper 3.4.x compatible version and a ZooKeeper 3.5.x 
compatible version). It would be awesome if we didn’t have to do this.

-Jordan

> On Dec 7, 2016, at 7:16 PM, Patrick Hunt <ph...@apache.org> wrote:
> 
> It's not about style, there were a number of concerns addressed in that
> patch. We didn't take the change lightly, we've been discussing it over
> jira and the mailing list over the past two years.
> 
> I think people understand what alpha means. There may be some short term
> impact for a few, but a significant benefit over the long term.
> 
> Patrick
> 
> On Dec 7, 2016 9:24 AM, "Jordan Zimmerman" <jor...@jordanzimmerman.com>
> wrote:
> 
>> I read through the issue and disagree about the decision to move the APIs
>> out. That was a stylistic choice that breaks client code. I realize that
>> 3.5.x has been advertised as an alpha but you must realize that most of the
>> world is using it in production. These APIs have now been published. This
>> will create a real headache for Curator which is why I’ve created
>> https://issues.apache.org/jira/browse/ZOOKEEPER-2642 <
>> https://issues.apache.org/jira/browse/ZOOKEEPER-2642> - I hope we can
>> move these APIs back into ZooKeeper.java.
>> 
>> -Jordan
>> 
>>> On Dec 7, 2016, at 5:54 PM, Patrick Hunt <ph...@apache.org> wrote:
>>> 
>>> It's discussed in more depth in the JIRA iirc, but basically;
>>> ZooKeeper.java provides client APIs, reconfig is an admiistrative API.
>>> 
>>> Patrick
>>> 
>>> On Wed, Dec 7, 2016 at 8:48 AM, Jordan Zimmerman <
>> jor...@jordanzimmerman.com
>>>> wrote:
>>> 
>>>> I understand the need to make the methods require proper auth but
>> there's
>>>> no reason to move it to a different class that I can see. Am I missing
>>>> something?
>>>> 
>>>> 
>>>> Jordan Zimmerman
>>>> 
>>>>> On Dec 7, 2016, at 4:37 PM, Patrick Hunt <ph...@apache.org> wrote:
>>>>> 
>>>>> This problem has been a long standing blocker issue for 3.5 and
>>>> identified
>>>>> early on as something that would need to change. This has been one of
>> the
>>>>> reasons why 3.5 has stayed in alpha - because we allow non-backward
>>>>> compatible changes to new APIs in alpha and we knew we would have to
>> fix
>>>>

Re: reconfig APIs

2016-12-07 Thread Patrick Hunt
It's not about style, there were a number of concerns addressed in that
patch. We didn't take the change lightly, we've been discussing it over
jira and the mailing list over the past two years.

I think people understand what alpha means. There may be some short term
impact for a few, but a significant benefit over the long term.

Patrick

On Dec 7, 2016 9:24 AM, "Jordan Zimmerman" <jor...@jordanzimmerman.com>
wrote:

> I read through the issue and disagree about the decision to move the APIs
> out. That was a stylistic choice that breaks client code. I realize that
> 3.5.x has been advertised as an alpha but you must realize that most of the
> world is using it in production. These APIs have now been published. This
> will create a real headache for Curator which is why I’ve created
> https://issues.apache.org/jira/browse/ZOOKEEPER-2642 <
> https://issues.apache.org/jira/browse/ZOOKEEPER-2642> - I hope we can
> move these APIs back into ZooKeeper.java.
>
> -Jordan
>
> > On Dec 7, 2016, at 5:54 PM, Patrick Hunt <ph...@apache.org> wrote:
> >
> > It's discussed in more depth in the JIRA iirc, but basically;
> > ZooKeeper.java provides client APIs, reconfig is an admiistrative API.
> >
> > Patrick
> >
> > On Wed, Dec 7, 2016 at 8:48 AM, Jordan Zimmerman <
> jor...@jordanzimmerman.com
> >> wrote:
> >
> >> I understand the need to make the methods require proper auth but
> there's
> >> no reason to move it to a different class that I can see. Am I missing
> >> something?
> >>
> >> 
> >> Jordan Zimmerman
> >>
> >>> On Dec 7, 2016, at 4:37 PM, Patrick Hunt <ph...@apache.org> wrote:
> >>>
> >>> This problem has been a long standing blocker issue for 3.5 and
> >> identified
> >>> early on as something that would need to change. This has been one of
> the
> >>> reasons why 3.5 has stayed in alpha - because we allow non-backward
> >>> compatible changes to new APIs in alpha and we knew we would have to
> fix
> >>> this. The description/comments of ZOOKEEPER-2014 does a good job
> >>> documenting why this had to change.
> >>>
> >>> Patrick
> >>>
> >>> On Wed, Dec 7, 2016 at 3:18 AM, Jordan Zimmerman <
> >> jor...@jordanzimmerman.com
> >>>> wrote:
> >>>
> >>>> OK - I found the offending issue: ZOOKEEPER-2014
> >>>>
> >>>> What is the benefit/logic of moving the reconfig() variants into a new
> >>>> class? I can see if this was done from the start but you have now
> broken
> >>>> Curator in a fairly serious non-backward compatible way for a minor
> >>>> documenting benefit. Does anyone object to me reversing this?
> >>>>
> >>>> -Jordan
> >>>>
> >>>>> On Dec 7, 2016, at 11:37 AM, Jordan Zimmerman <
> >>>> jor...@jordanzimmerman.com> wrote:
> >>>>>
> >>>>> Hi,
> >>>>>
> >>>>> I was compiling Curator against the ZK master and noticed that the
> >>>> reconfig APIs are gone/changed. Can anyone point me at the issues for
> >> this
> >>>> and/or the discussion why this breaking change was made?
> >>>>>
> >>>>> -Jordan
> >>>>
> >>>>
> >>
>
>


Re: reconfig APIs

2016-12-07 Thread Jordan Zimmerman
I read through the issue and disagree about the decision to move the APIs out. 
That was a stylistic choice that breaks client code. I realize that 3.5.x has 
been advertised as an alpha but you must realize that most of the world is 
using it in production. These APIs have now been published. This will create a 
real headache for Curator which is why I’ve created 
https://issues.apache.org/jira/browse/ZOOKEEPER-2642 
<https://issues.apache.org/jira/browse/ZOOKEEPER-2642> - I hope we can move 
these APIs back into ZooKeeper.java. 

-Jordan

> On Dec 7, 2016, at 5:54 PM, Patrick Hunt <ph...@apache.org> wrote:
> 
> It's discussed in more depth in the JIRA iirc, but basically;
> ZooKeeper.java provides client APIs, reconfig is an admiistrative API.
> 
> Patrick
> 
> On Wed, Dec 7, 2016 at 8:48 AM, Jordan Zimmerman <jor...@jordanzimmerman.com
>> wrote:
> 
>> I understand the need to make the methods require proper auth but there's
>> no reason to move it to a different class that I can see. Am I missing
>> something?
>> 
>> 
>> Jordan Zimmerman
>> 
>>> On Dec 7, 2016, at 4:37 PM, Patrick Hunt <ph...@apache.org> wrote:
>>> 
>>> This problem has been a long standing blocker issue for 3.5 and
>> identified
>>> early on as something that would need to change. This has been one of the
>>> reasons why 3.5 has stayed in alpha - because we allow non-backward
>>> compatible changes to new APIs in alpha and we knew we would have to fix
>>> this. The description/comments of ZOOKEEPER-2014 does a good job
>>> documenting why this had to change.
>>> 
>>> Patrick
>>> 
>>> On Wed, Dec 7, 2016 at 3:18 AM, Jordan Zimmerman <
>> jor...@jordanzimmerman.com
>>>> wrote:
>>> 
>>>> OK - I found the offending issue: ZOOKEEPER-2014
>>>> 
>>>> What is the benefit/logic of moving the reconfig() variants into a new
>>>> class? I can see if this was done from the start but you have now broken
>>>> Curator in a fairly serious non-backward compatible way for a minor
>>>> documenting benefit. Does anyone object to me reversing this?
>>>> 
>>>> -Jordan
>>>> 
>>>>> On Dec 7, 2016, at 11:37 AM, Jordan Zimmerman <
>>>> jor...@jordanzimmerman.com> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I was compiling Curator against the ZK master and noticed that the
>>>> reconfig APIs are gone/changed. Can anyone point me at the issues for
>> this
>>>> and/or the discussion why this breaking change was made?
>>>>> 
>>>>> -Jordan
>>>> 
>>>> 
>> 



Re: reconfig APIs

2016-12-07 Thread Patrick Hunt
It's discussed in more depth in the JIRA iirc, but basically;
ZooKeeper.java provides client APIs, reconfig is an admiistrative API.

Patrick

On Wed, Dec 7, 2016 at 8:48 AM, Jordan Zimmerman <jor...@jordanzimmerman.com
> wrote:

> I understand the need to make the methods require proper auth but there's
> no reason to move it to a different class that I can see. Am I missing
> something?
>
> 
> Jordan Zimmerman
>
> > On Dec 7, 2016, at 4:37 PM, Patrick Hunt <ph...@apache.org> wrote:
> >
> > This problem has been a long standing blocker issue for 3.5 and
> identified
> > early on as something that would need to change. This has been one of the
> > reasons why 3.5 has stayed in alpha - because we allow non-backward
> > compatible changes to new APIs in alpha and we knew we would have to fix
> > this. The description/comments of ZOOKEEPER-2014 does a good job
> > documenting why this had to change.
> >
> > Patrick
> >
> > On Wed, Dec 7, 2016 at 3:18 AM, Jordan Zimmerman <
> jor...@jordanzimmerman.com
> >> wrote:
> >
> >> OK - I found the offending issue: ZOOKEEPER-2014
> >>
> >> What is the benefit/logic of moving the reconfig() variants into a new
> >> class? I can see if this was done from the start but you have now broken
> >> Curator in a fairly serious non-backward compatible way for a minor
> >> documenting benefit. Does anyone object to me reversing this?
> >>
> >> -Jordan
> >>
> >>> On Dec 7, 2016, at 11:37 AM, Jordan Zimmerman <
> >> jor...@jordanzimmerman.com> wrote:
> >>>
> >>> Hi,
> >>>
> >>> I was compiling Curator against the ZK master and noticed that the
> >> reconfig APIs are gone/changed. Can anyone point me at the issues for
> this
> >> and/or the discussion why this breaking change was made?
> >>>
> >>> -Jordan
> >>
> >>
>


Re: reconfig APIs

2016-12-07 Thread Jordan Zimmerman
I understand the need to make the methods require proper auth but there's no 
reason to move it to a different class that I can see. Am I missing something?


Jordan Zimmerman

> On Dec 7, 2016, at 4:37 PM, Patrick Hunt <ph...@apache.org> wrote:
> 
> This problem has been a long standing blocker issue for 3.5 and identified
> early on as something that would need to change. This has been one of the
> reasons why 3.5 has stayed in alpha - because we allow non-backward
> compatible changes to new APIs in alpha and we knew we would have to fix
> this. The description/comments of ZOOKEEPER-2014 does a good job
> documenting why this had to change.
> 
> Patrick
> 
> On Wed, Dec 7, 2016 at 3:18 AM, Jordan Zimmerman <jor...@jordanzimmerman.com
>> wrote:
> 
>> OK - I found the offending issue: ZOOKEEPER-2014
>> 
>> What is the benefit/logic of moving the reconfig() variants into a new
>> class? I can see if this was done from the start but you have now broken
>> Curator in a fairly serious non-backward compatible way for a minor
>> documenting benefit. Does anyone object to me reversing this?
>> 
>> -Jordan
>> 
>>> On Dec 7, 2016, at 11:37 AM, Jordan Zimmerman <
>> jor...@jordanzimmerman.com> wrote:
>>> 
>>> Hi,
>>> 
>>> I was compiling Curator against the ZK master and noticed that the
>> reconfig APIs are gone/changed. Can anyone point me at the issues for this
>> and/or the discussion why this breaking change was made?
>>> 
>>> -Jordan
>> 
>> 


Re: reconfig APIs

2016-12-07 Thread Patrick Hunt
This problem has been a long standing blocker issue for 3.5 and identified
early on as something that would need to change. This has been one of the
reasons why 3.5 has stayed in alpha - because we allow non-backward
compatible changes to new APIs in alpha and we knew we would have to fix
this. The description/comments of ZOOKEEPER-2014 does a good job
documenting why this had to change.

Patrick

On Wed, Dec 7, 2016 at 3:18 AM, Jordan Zimmerman <jor...@jordanzimmerman.com
> wrote:

> OK - I found the offending issue: ZOOKEEPER-2014
>
> What is the benefit/logic of moving the reconfig() variants into a new
> class? I can see if this was done from the start but you have now broken
> Curator in a fairly serious non-backward compatible way for a minor
> documenting benefit. Does anyone object to me reversing this?
>
> -Jordan
>
> > On Dec 7, 2016, at 11:37 AM, Jordan Zimmerman <
> jor...@jordanzimmerman.com> wrote:
> >
> > Hi,
> >
> > I was compiling Curator against the ZK master and noticed that the
> reconfig APIs are gone/changed. Can anyone point me at the issues for this
> and/or the discussion why this breaking change was made?
> >
> > -Jordan
>
>


Re: reconfig APIs

2016-12-07 Thread Jordan Zimmerman
OK - I found the offending issue: ZOOKEEPER-2014

What is the benefit/logic of moving the reconfig() variants into a new class? I 
can see if this was done from the start but you have now broken Curator in a 
fairly serious non-backward compatible way for a minor documenting benefit. 
Does anyone object to me reversing this? 

-Jordan

> On Dec 7, 2016, at 11:37 AM, Jordan Zimmerman <jor...@jordanzimmerman.com> 
> wrote:
> 
> Hi,
> 
> I was compiling Curator against the ZK master and noticed that the reconfig 
> APIs are gone/changed. Can anyone point me at the issues for this and/or the 
> discussion why this breaking change was made?
> 
> -Jordan



reconfig APIs

2016-12-07 Thread Jordan Zimmerman
Hi,

I was compiling Curator against the ZK master and noticed that the reconfig 
APIs are gone/changed. Can anyone point me at the issues for this and/or the 
discussion why this breaking change was made?

-Jordan