Sorry for the late response. I was on vacation.

St.Ack: 
Class 'A' is HBaseAdmin and class 'B' is HBaseTestingUtility.
I was thinking this from a general perspective, irrespective of the classes and 
can note it down in our book and avoid this kind of discussions in dev mailing 
list in future. But seems like we have agreed to take up the call based on the 
particulars.

Regards,
Ashish Singhi

-----Original Message-----
From: saint....@gmail.com [mailto:saint....@gmail.com] On Behalf Of Stack
Sent: 03 December 2015 06:07
To: HBase Dev List
Subject: Re: Consesus on removing a public method from IA.Private class whose 
instance is returned from IA.public class.

Appy makes a pretty good argument.

What in particular are we discussing Ashish?

Thanks,
St.Ack

On Wed, Dec 2, 2015 at 3:49 PM, Apekshit Sharma <a...@cloudera.com> wrote:

> I think it should be okay to remove them. When I imagine myself on 
> other side, a dev using client api of Foo project, and I see a class 
> returning reference to an internal class, I would not trust that 
> function. If I really need something from returned ref, I'd probably 
> use it, and if it goes away tomorrow, i'd probably curse it too, but I 
> can't complain since it's not anything I trusted to being with.
>
> Now thinking as dev:
> Given that documentation explicitly states that functions can 
> disappear from private class, and nothing about transitiveness, I 
> believe we can remove functions from private class A.
>
>
> On Thu, Nov 26, 2015 at 7:10 AM, Ted Yu <yuzhih...@gmail.com> wrote:
>
> > bq. we should not remove it directly
> >
> > My understanding is the same.
> >
> > Cheers
> >
> > On Wed, Nov 25, 2015 at 10:22 PM, ashish singhi <
> ashish.sin...@huawei.com>
> > wrote:
> >
> > > Hello to all.
> > >
> > > I know that we can safely remove any APIs from a
> > InterfaceAudience.Private
> > > class and the same is described in the HBase book.
> > >
> > > Now consider a case (I did not find this mentioned in our semvar), 
> > > There is a class 'A' with InterfaceAudience.Private and class 'B' 
> > > with InterfaceAudience.Public and then there is a public API in class 'B'
> > which
> > > returns an instance of class 'A'. (We missed to mark the public 
> > > method
> in
> > > class 'B' as deprecated when we marked the class 'A' as 
> > > InterfaceAudience.Private).
> > >
> > > Now the question is, can we remove the public APIs from class 'A'
> without
> > > marking them deprecated ?
> > >
> > > I think we should not remove it directly, it will break the users 
> > > using
> > > these(removed) public methods from class 'A'.
> > > P.S: This point came up  in HBASE-14769.
> > >
> > > Regards,
> > > Ashish Singhi
> > >
> >
>
>
>
> --
>
> Regards
>
> Apekshit Sharma | Software Engineer, Cloudera | Palo Alto, California 
> |
> 650-963-6311
>

Reply via email to