My bandwidth for tracking this thread has been limited. Have we concluded
here that HBASE-16420 is the only fix we need before the next round of RCs?

On Tuesday, August 16, 2016, Josh Elser <josh.el...@gmail.com> wrote:

> (top-post since I can't find a better place to respond to everyone who
> chimed in here)
>
> Huge thanks, everyone! This was absolutely the best email thread (and JIRA
> issue) I could've come back to after not keeping up with email for the day.
>
> Stack wrote:
>
>> On Tue, Aug 16, 2016 at 8:20 AM, Sean Busbey<bus...@apache.org>  wrote:
>>
>> On Tue, Aug 16, 2016 at 6:40 AM, Stack<st...@duboce.net>  wrote:
>>>
>>> On Tue, Aug 16, 2016 at 1:07 AM, Phil Yang<ud1...@gmail.com>  wrote:
>>>>
>>>> I notice that HBASE-15645 is made up of several commits and revert in
>>>>>
>>>> git,
>>>>
>>>>> maybe it is more convenient to apply a new patch to remove the added
>>>>> methods.
>>>>>
>>>>> Created a new issue (HBASE-16420
>>>>> <https://issues.apache.org/jira/browse/HBASE-16420>) and waiting for
>>>>>
>>>> the
>>>
>>>> result of pre-commit build. The patch only fix the incompatibility of
>>>>>
>>>> 1.1
>>>
>>>> and 1.2.  Do we need keep the compatibility between 1.x branches? If so
>>>>>
>>>> we
>>>>
>>>>> need also remove new methods from branch-1.3 and branch-1. And seems
>>>>>
>>>> some
>>>
>>>> other issues also added new methods to  non-Private  interface on
>>>>> branch-1/1.3...
>>>>>
>>>>>
>>>>> Patch looks good Phil. Thanks for putting it up.
>>>>
>>>> On your question, adding API in a manner that breaks compile is allowed
>>>> going by our updated understanding.
>>>>
>>>>
>>>> This should be "is not allowed" right?
>>>
>>>
>>> Thanks Sean. Yes (Doc says right thing in HBASE-16422 patch)
>>
>>
>>
>> My reading of the consensus in the thread thus far is that adding methods
>>> to IA.Public interfaces won't be possible in the 1.y line of releases due
>>> to breaking source compatibility,
>>>
>>
>>
>>
>> HBASE-16422 makes exclusion for patch release only. It does not preclude
>> our breaking on minor versions.
>>
>>
>>
>> 1) starting to have a distinction between places we expect folks to just
>>> consume API vs extend it?
>>>
>>> I used to be in favor of this, but Andrew's concern on bikeshedding has
>>> me
>>> reconsidering. Simpler rules seem better both to reduce the complexity of
>>> communicating downstream and what the RMs have to keep in their heads
>>> when
>>> evaluating changes.
>>>
>>>
>>> This and the below would be better on another thread I'd say Sean.
>>
>> Lets keep this thread for handling this little compat episode.
>>
>> Thanks,
>> St.Ack
>>
>>
>>
>> 2) dropping our use of IS.Stable, IS.Evolving, etc.
>>>
>>> I've never found this distinction particularly useful since we aren't
>>> very
>>> consistent on it. The compat guide only specifies what it means for
>>> "server
>>> side APIs" without really defining what that means precisely, and we use
>>> it
>>> in client APIs as well. I think a reasonable reading of our current guide
>>> could take the IS.Evolving designation to mean that the breaking change
>>> to
>>> Table was okay, but reading the comments on PHOENIX-3116 that
>>> interpretation would clearly be surprising to at least one set of
>>> downstream folks. (Plus none of the discussions I saw around this change
>>> used this rationale, so its presence or lack thereof wouldn't have
>>> changed
>>> the conversation.)
>>>
>>>
>>

Reply via email to