LimitedPrivate(TOOLS) and LimitedPrivate(CONFIG) are a bit different
with IA.Public.

For LP(TOOLS), we just need to make sure that there is no breaking
change when invoking from command line, or from the ToolRunner, we do
not need to keep all the public methods unchanged.

For LP(Config), we just need to make sure that that the class name
keeps the same.

Here, I think these tools should be marked as
IA.LimitedPrivate(TOOLS), so we do not need to always keep the public
methods unchanged.

Thanks.

Andrew Purtell <andrew.purt...@gmail.com> 于2024年6月7日周五 07:11写道:
>
> LimitedPrivate and Public are functionally the same in that they are not 
> Private, so compatibility breaking changes must go through a process.  At 
> some future time when someone wants to make a breaking change to the LP 
> interface, we will still take the same steps to deprecate and then change it 
> as we do for Public… usually.
>
> The difference might be, then, how hard we would work to avoid breaking 
> changes. Depending on the proposed change retaining compatibility could be 
> more work than the change itself or might block the change because it is too 
> much effort. With Public there is no question but with LP _maybe_ we might 
> make an exception. With this in mind it is in our interest that only the 
> smallest possible set of core interfaces should be Public and everything else 
> either LP or Private.
>
> > On Jun 5, 2024, at 6:14 PM, 张铎 <palomino...@gmail.com> wrote:
> >
> > Thanks Nick.
> >
> > I've filed HBASE-28639 for promoting SyncTable.
> >
> > For me I agree that maybe IA.LimitedPrivate is better, as we do not
> > expect users to use its public method in code. But since they are
> > already public, we need a long deprecation cycle to mark them other
> > than IA.Public...
> >
> > Nick Dimiduk <ndimi...@apache.org> 于2024年6月6日周四 02:14写道:
> >>
> >> I agree that if these are tools we ship to users, they should be exposed in
> >> the driver. However, probably we want to keep them LimitedPrivate(Tool)
> >> instead of making them fully IA.Public.
> >>
> >> -n
> >>
> >>> On Wed, 5 Jun 2024 at 12:49, 张铎(Duo Zhang) <palomino...@gmail.com> wrote:
> >>>
> >>> OK, then let's file an issue to promote it to IA.Public and add it to
> >>> Driver.
> >>>
> >>> Thanks.
> >>>
> >>> Pankaj Kumar <pankajkumarbi...@gmail.com> 于2024年6月5日周三 17:48写道:
> >>>>
> >>>> It looks like a typo and unintentional.
> >>>>
> >>>> Regards,
> >>>> Pankaj
> >>>>
> >>>> On Wed, 5 Jun, 2024, 2:55 pm Wellington Chevreuil, <
> >>>> wellington.chevre...@gmail.com> wrote:
> >>>>
> >>>>> It seems it was marked that way by HBASE-20212, which bulk marked many
> >>>>> public classes as I.A. Private, as part of the efforts to replace the
> >>>>> old TestInterfaceAudienceAnnotations validation by warbucks plugin,
> >>> however
> >>>>> I don't see any discussions about which I.A. level should be applied to
> >>>>> each class, so it looks unintentional.
> >>>>>
> >>>>> Em qua., 5 de jun. de 2024 às 09:57, 张铎(Duo Zhang) <
> >>> palomino...@gmail.com>
> >>>>> escreveu:
> >>>>>
> >>>>>> Noticed this when trying to add more UTs for it in HBASE-28636.
> >>>>>>
> >>>>>> https://hbase.apache.org/book.html#hashtable.synctable
> >>>>>>
> >>>>>> We do have a section in our ref guide to explain the algorythm for
> >>>>>> this tool and also how to make use of it. But I noticed that in our
> >>>>>> code base it is marked as IA.Private, and it is not exposed in our
> >>> map
> >>>>>> reduce Driver class.
> >>>>>>
> >>>>>> Is this intentional?
> >>>>>>
> >>>>>> Thanks.
> >>>>>>
> >>>>>
> >>>

Reply via email to