You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by Mike Drob <md...@apache.org> on 2018/01/26 22:01:21 UTC

Is HBaseTestingUtility part of public API?

Can we make changes between releases? Do we know who else is using it?

Mike

Re: Is HBaseTestingUtility part of public API?

Posted by Nick Dimiduk <nd...@gmail.com>.
I think downstream users pull this in for integration tests. We should
think about how we expect user applications to test their interactions with
HBase. While we're at it, we should consider publishing a test BOM pom to
reduce the guess-work. Stack's HBase Downstreamer is a good project to
shine a lens on this kind of support.

-n

On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org> wrote:

> Can we make changes between releases? Do we know who else is using it?
>
> Mike
>

Re: Is HBaseTestingUtility part of public API?

Posted by Andrew Purtell <ap...@apache.org>.
Anything in test/ can't be public API by definition. Move it into src/ if
that is desired.

On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org> wrote:

> Can we make changes between releases? Do we know who else is using it?
>
> Mike
>



-- 
Best regards,
Andrew

Words like orphans lost among the crosstalk, meaning torn from truth's
decrepit hands
   - A23, Crosstalk

Re: Is HBaseTestingUtility part of public API?

Posted by Ted Yu <yu...@gmail.com>.
There are a few references in Apache Gora repo.

FYI

On Fri, Jan 26, 2018 at 2:10 PM, Ted Yu <yu...@gmail.com> wrote:

> At least Phoenix is using it.
> If you search in Phoenix repo, you would see a lot of classes with:
>
> import org.apache.hadoop.hbase.HBaseTestingUtility;
>
> If you have specific method(s) which you consider changing, you can ask
> dev@phoenix.
>
> FYI
>
> On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org> wrote:
>
>> Can we make changes between releases? Do we know who else is using it?
>>
>> Mike
>>
>
>

Re: Is HBaseTestingUtility part of public API?

Posted by Ted Yu <yu...@gmail.com>.
+1 on Mike's proposal. 
-------- Original message --------From: Josh Elser <el...@apache.org> Date: 2/13/18  7:11 AM  (GMT-08:00) To: dev@hbase.apache.org Subject: Re: Is HBaseTestingUtility part of public API? 
+1

Pulling curated code out of the test-jar is a worthwhile exercise for 
ourselves and downstream.

On 2/12/18 3:16 PM, Mike Drob wrote:
> I think everybody has made valid points here.
> 
> I think what we want to do long term is rework test-util to be a curated
> set of classes instead of a bunch of test-jars moved into compile
> dependency scope. I'm not quite sure where to begin with this though, it
> seems like a fairly substantial effort. I'll file some placeholder JIRAs
> later with an eye toward 3.0
> 
> Mike
> 
> On Mon, Feb 12, 2018 at 1:55 PM, Andrew Purtell <ap...@apache.org> wrote:
> 
>> There is a good argument to be made about making the minicluster and
>> supporting classes LimitedPrivate or Public. And moving them to src/, IMHO,
>> because having public stuff in test/ is weird (but this might just be me).
>> I do not think making the testing utility classes Public makes sense. Our
>> internal testing scaffold is not a public API and never should be. Its what
>> we use to *test*. By definition this needs to evolve without concern paid
>> to downstreamers.
>>
>> It could make sense to pull out a supportable subset, like we did for
>> HRegion -> Region and other aspects of coprocessor API for coprocessor
>> implementors.
>>
>>
>> On Mon, Feb 12, 2018 at 10:23 AM, Josh Elser <el...@apache.org> wrote:
>>
>>> +1
>>>
>>> We have enough downstream projects that we *should* be providing
>> something
>>> stable for people to use to a basic degree (perhaps not as crazy as some
>> of
>>> the API we use for injecting faults). I think your suggestion, Duo, is a
>>> nice step towards that.
>>>
>>> Any attempt to tell folks to not use it will just trigger some
>>> backlash/animosity (not trying to imply others suggested this -- just
>>> stating to color my view).
>>>
>>>
>>> On 2/11/18 9:18 PM, 张铎(Duo Zhang) wrote:
>>>
>>>> We also use HBTU to write UTs in our own code. But I agree that HBTU
>>>> should
>>>> not be public, instead, we can make MiniHBaseCluster public.
>>>>
>>>> And maybe introduce a new scope of IA.LimitedPrivate, let's call it
>>>> 'TESTING', which indicates that these classes are only used to write
>> UTs,
>>>> do not use it in production, and we can mark it as IS.Evolving so that
>> we
>>>> could break the API between minor releases. I think this is OK as it is
>>>> only supposed to be used by UTs?
>>>>
>>>> Thanks.
>>>>
>>>> 2018-02-04 1:34 GMT+08:00 Andrew Purtell <an...@gmail.com>:
>>>>
>>>> This has always been my opinion about this, but that doesn't make it a
>>>>> position.
>>>>>
>>>>>
>>>>> On Feb 2, 2018, at 8:50 PM, Apekshit Sharma <ap...@cloudera.com> wrote:
>>>>>>
>>>>>> bq. Anything in test/ can't be public API by definition. Move it into
>>>>>>
>>>>> src/
>>>>>
>>>>>> if that is desired.
>>>>>>
>>>>>> If that has always been our stance, we should probably clarify it in
>> our
>>>>>> documentation. Or maybe it's already there and i missed it.
>>>>>> Didn't find anything searching for 'test' in
>>>>>> http://hbase.apache.org/book.html#hbase.versioning.
>>>>>>
>>>>>> I see IA.Public annotations on follow classes under **/test/ path:
>>>>>> HBCommonTU, HBTU, MiniHBaseCluster, CodecPerformance, and
>>>>>> HBaseZKTestingUtility
>>>>>>
>>>>>> At least MiniHBaseCluster seems like it might be useful to downstream
>>>>>> projects. Others may have nuggets which might make sense in public
>> api.
>>>>>> Not sure what's best though - moving the classes + declaration that
>>>>>> test/
>>>>>> code is private, or letting annotations do they work as they do work
>>>>>> src/
>>>>>> code.
>>>>>>
>>>>>> -- Appy
>>>>>>
>>>>>>
>>>>>> On Fri, Feb 2, 2018 at 5:56 PM, Andrew Purtell <ap...@apache.org>
>>>>>>>
>>>>>> wrote:
>>>>>
>>>>>>
>>>>>>> Phoenix is being a bit naughty. On the other hand, the status of this
>>>>>>>
>>>>>> class
>>>>>
>>>>>> isn't clear.
>>>>>>>
>>>>>>> On Fri, Jan 26, 2018 at 2:10 PM, Ted Yu <yu...@gmail.com> wrote:
>>>>>>>>
>>>>>>>> At least Phoenix is using it.
>>>>>>>> If you search in Phoenix repo, you would see a lot of classes with:
>>>>>>>>
>>>>>>>> import org.apache.hadoop.hbase.HBaseTestingUtility;
>>>>>>>>
>>>>>>>> If you have specific method(s) which you consider changing, you can
>>>>>>>> ask
>>>>>>>> dev@phoenix.
>>>>>>>>
>>>>>>>> FYI
>>>>>>>>
>>>>>>>> On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org>
>> wrote:
>>>>>>>>>
>>>>>>>>> Can we make changes between releases? Do we know who else is using
>>>>>>>>> it?
>>>>>>>>>
>>>>>>>>> Mike
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Best regards,
>>>>>>> Andrew
>>>>>>>
>>>>>>> Words like orphans lost among the crosstalk, meaning torn from
>> truth's
>>>>>>> decrepit hands
>>>>>>>     - A23, Crosstalk
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> -- Appy
>>>>>>
>>>>>
>>>>>
>>>>
>>
>>
>> --
>> Best regards,
>> Andrew
>>
>> Words like orphans lost among the crosstalk, meaning torn from truth's
>> decrepit hands
>>     - A23, Crosstalk
>>
> 

Re: Is HBaseTestingUtility part of public API?

Posted by Josh Elser <el...@apache.org>.
+1

Pulling curated code out of the test-jar is a worthwhile exercise for 
ourselves and downstream.

On 2/12/18 3:16 PM, Mike Drob wrote:
> I think everybody has made valid points here.
> 
> I think what we want to do long term is rework test-util to be a curated
> set of classes instead of a bunch of test-jars moved into compile
> dependency scope. I'm not quite sure where to begin with this though, it
> seems like a fairly substantial effort. I'll file some placeholder JIRAs
> later with an eye toward 3.0
> 
> Mike
> 
> On Mon, Feb 12, 2018 at 1:55 PM, Andrew Purtell <ap...@apache.org> wrote:
> 
>> There is a good argument to be made about making the minicluster and
>> supporting classes LimitedPrivate or Public. And moving them to src/, IMHO,
>> because having public stuff in test/ is weird (but this might just be me).
>> I do not think making the testing utility classes Public makes sense. Our
>> internal testing scaffold is not a public API and never should be. Its what
>> we use to *test*. By definition this needs to evolve without concern paid
>> to downstreamers.
>>
>> It could make sense to pull out a supportable subset, like we did for
>> HRegion -> Region and other aspects of coprocessor API for coprocessor
>> implementors.
>>
>>
>> On Mon, Feb 12, 2018 at 10:23 AM, Josh Elser <el...@apache.org> wrote:
>>
>>> +1
>>>
>>> We have enough downstream projects that we *should* be providing
>> something
>>> stable for people to use to a basic degree (perhaps not as crazy as some
>> of
>>> the API we use for injecting faults). I think your suggestion, Duo, is a
>>> nice step towards that.
>>>
>>> Any attempt to tell folks to not use it will just trigger some
>>> backlash/animosity (not trying to imply others suggested this -- just
>>> stating to color my view).
>>>
>>>
>>> On 2/11/18 9:18 PM, 张铎(Duo Zhang) wrote:
>>>
>>>> We also use HBTU to write UTs in our own code. But I agree that HBTU
>>>> should
>>>> not be public, instead, we can make MiniHBaseCluster public.
>>>>
>>>> And maybe introduce a new scope of IA.LimitedPrivate, let's call it
>>>> 'TESTING', which indicates that these classes are only used to write
>> UTs,
>>>> do not use it in production, and we can mark it as IS.Evolving so that
>> we
>>>> could break the API between minor releases. I think this is OK as it is
>>>> only supposed to be used by UTs?
>>>>
>>>> Thanks.
>>>>
>>>> 2018-02-04 1:34 GMT+08:00 Andrew Purtell <an...@gmail.com>:
>>>>
>>>> This has always been my opinion about this, but that doesn't make it a
>>>>> position.
>>>>>
>>>>>
>>>>> On Feb 2, 2018, at 8:50 PM, Apekshit Sharma <ap...@cloudera.com> wrote:
>>>>>>
>>>>>> bq. Anything in test/ can't be public API by definition. Move it into
>>>>>>
>>>>> src/
>>>>>
>>>>>> if that is desired.
>>>>>>
>>>>>> If that has always been our stance, we should probably clarify it in
>> our
>>>>>> documentation. Or maybe it's already there and i missed it.
>>>>>> Didn't find anything searching for 'test' in
>>>>>> http://hbase.apache.org/book.html#hbase.versioning.
>>>>>>
>>>>>> I see IA.Public annotations on follow classes under **/test/ path:
>>>>>> HBCommonTU, HBTU, MiniHBaseCluster, CodecPerformance, and
>>>>>> HBaseZKTestingUtility
>>>>>>
>>>>>> At least MiniHBaseCluster seems like it might be useful to downstream
>>>>>> projects. Others may have nuggets which might make sense in public
>> api.
>>>>>> Not sure what's best though - moving the classes + declaration that
>>>>>> test/
>>>>>> code is private, or letting annotations do they work as they do work
>>>>>> src/
>>>>>> code.
>>>>>>
>>>>>> -- Appy
>>>>>>
>>>>>>
>>>>>> On Fri, Feb 2, 2018 at 5:56 PM, Andrew Purtell <ap...@apache.org>
>>>>>>>
>>>>>> wrote:
>>>>>
>>>>>>
>>>>>>> Phoenix is being a bit naughty. On the other hand, the status of this
>>>>>>>
>>>>>> class
>>>>>
>>>>>> isn't clear.
>>>>>>>
>>>>>>> On Fri, Jan 26, 2018 at 2:10 PM, Ted Yu <yu...@gmail.com> wrote:
>>>>>>>>
>>>>>>>> At least Phoenix is using it.
>>>>>>>> If you search in Phoenix repo, you would see a lot of classes with:
>>>>>>>>
>>>>>>>> import org.apache.hadoop.hbase.HBaseTestingUtility;
>>>>>>>>
>>>>>>>> If you have specific method(s) which you consider changing, you can
>>>>>>>> ask
>>>>>>>> dev@phoenix.
>>>>>>>>
>>>>>>>> FYI
>>>>>>>>
>>>>>>>> On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org>
>> wrote:
>>>>>>>>>
>>>>>>>>> Can we make changes between releases? Do we know who else is using
>>>>>>>>> it?
>>>>>>>>>
>>>>>>>>> Mike
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Best regards,
>>>>>>> Andrew
>>>>>>>
>>>>>>> Words like orphans lost among the crosstalk, meaning torn from
>> truth's
>>>>>>> decrepit hands
>>>>>>>     - A23, Crosstalk
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> -- Appy
>>>>>>
>>>>>
>>>>>
>>>>
>>
>>
>> --
>> Best regards,
>> Andrew
>>
>> Words like orphans lost among the crosstalk, meaning torn from truth's
>> decrepit hands
>>     - A23, Crosstalk
>>
> 

Re: Is HBaseTestingUtility part of public API?

Posted by Mike Drob <md...@apache.org>.
I think everybody has made valid points here.

I think what we want to do long term is rework test-util to be a curated
set of classes instead of a bunch of test-jars moved into compile
dependency scope. I'm not quite sure where to begin with this though, it
seems like a fairly substantial effort. I'll file some placeholder JIRAs
later with an eye toward 3.0

Mike

On Mon, Feb 12, 2018 at 1:55 PM, Andrew Purtell <ap...@apache.org> wrote:

> There is a good argument to be made about making the minicluster and
> supporting classes LimitedPrivate or Public. And moving them to src/, IMHO,
> because having public stuff in test/ is weird (but this might just be me).
> I do not think making the testing utility classes Public makes sense. Our
> internal testing scaffold is not a public API and never should be. Its what
> we use to *test*. By definition this needs to evolve without concern paid
> to downstreamers.
>
> It could make sense to pull out a supportable subset, like we did for
> HRegion -> Region and other aspects of coprocessor API for coprocessor
> implementors.
>
>
> On Mon, Feb 12, 2018 at 10:23 AM, Josh Elser <el...@apache.org> wrote:
>
> > +1
> >
> > We have enough downstream projects that we *should* be providing
> something
> > stable for people to use to a basic degree (perhaps not as crazy as some
> of
> > the API we use for injecting faults). I think your suggestion, Duo, is a
> > nice step towards that.
> >
> > Any attempt to tell folks to not use it will just trigger some
> > backlash/animosity (not trying to imply others suggested this -- just
> > stating to color my view).
> >
> >
> > On 2/11/18 9:18 PM, 张铎(Duo Zhang) wrote:
> >
> >> We also use HBTU to write UTs in our own code. But I agree that HBTU
> >> should
> >> not be public, instead, we can make MiniHBaseCluster public.
> >>
> >> And maybe introduce a new scope of IA.LimitedPrivate, let's call it
> >> 'TESTING', which indicates that these classes are only used to write
> UTs,
> >> do not use it in production, and we can mark it as IS.Evolving so that
> we
> >> could break the API between minor releases. I think this is OK as it is
> >> only supposed to be used by UTs?
> >>
> >> Thanks.
> >>
> >> 2018-02-04 1:34 GMT+08:00 Andrew Purtell <an...@gmail.com>:
> >>
> >> This has always been my opinion about this, but that doesn't make it a
> >>> position.
> >>>
> >>>
> >>> On Feb 2, 2018, at 8:50 PM, Apekshit Sharma <ap...@cloudera.com> wrote:
> >>>>
> >>>> bq. Anything in test/ can't be public API by definition. Move it into
> >>>>
> >>> src/
> >>>
> >>>> if that is desired.
> >>>>
> >>>> If that has always been our stance, we should probably clarify it in
> our
> >>>> documentation. Or maybe it's already there and i missed it.
> >>>> Didn't find anything searching for 'test' in
> >>>> http://hbase.apache.org/book.html#hbase.versioning.
> >>>>
> >>>> I see IA.Public annotations on follow classes under **/test/ path:
> >>>> HBCommonTU, HBTU, MiniHBaseCluster, CodecPerformance, and
> >>>> HBaseZKTestingUtility
> >>>>
> >>>> At least MiniHBaseCluster seems like it might be useful to downstream
> >>>> projects. Others may have nuggets which might make sense in public
> api.
> >>>> Not sure what's best though - moving the classes + declaration that
> >>>> test/
> >>>> code is private, or letting annotations do they work as they do work
> >>>> src/
> >>>> code.
> >>>>
> >>>> -- Appy
> >>>>
> >>>>
> >>>> On Fri, Feb 2, 2018 at 5:56 PM, Andrew Purtell <ap...@apache.org>
> >>>>>
> >>>> wrote:
> >>>
> >>>>
> >>>>> Phoenix is being a bit naughty. On the other hand, the status of this
> >>>>>
> >>>> class
> >>>
> >>>> isn't clear.
> >>>>>
> >>>>> On Fri, Jan 26, 2018 at 2:10 PM, Ted Yu <yu...@gmail.com> wrote:
> >>>>>>
> >>>>>> At least Phoenix is using it.
> >>>>>> If you search in Phoenix repo, you would see a lot of classes with:
> >>>>>>
> >>>>>> import org.apache.hadoop.hbase.HBaseTestingUtility;
> >>>>>>
> >>>>>> If you have specific method(s) which you consider changing, you can
> >>>>>> ask
> >>>>>> dev@phoenix.
> >>>>>>
> >>>>>> FYI
> >>>>>>
> >>>>>> On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org>
> wrote:
> >>>>>>>
> >>>>>>> Can we make changes between releases? Do we know who else is using
> >>>>>>> it?
> >>>>>>>
> >>>>>>> Mike
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Best regards,
> >>>>> Andrew
> >>>>>
> >>>>> Words like orphans lost among the crosstalk, meaning torn from
> truth's
> >>>>> decrepit hands
> >>>>>    - A23, Crosstalk
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>> --
> >>>>
> >>>> -- Appy
> >>>>
> >>>
> >>>
> >>
>
>
> --
> Best regards,
> Andrew
>
> Words like orphans lost among the crosstalk, meaning torn from truth's
> decrepit hands
>    - A23, Crosstalk
>

Re: Is HBaseTestingUtility part of public API?

Posted by Andrew Purtell <ap...@apache.org>.
There is a good argument to be made about making the minicluster and
supporting classes LimitedPrivate or Public. And moving them to src/, IMHO,
because having public stuff in test/ is weird (but this might just be me).
I do not think making the testing utility classes Public makes sense. Our
internal testing scaffold is not a public API and never should be. Its what
we use to *test*. By definition this needs to evolve without concern paid
to downstreamers.

It could make sense to pull out a supportable subset, like we did for
HRegion -> Region and other aspects of coprocessor API for coprocessor
implementors.


On Mon, Feb 12, 2018 at 10:23 AM, Josh Elser <el...@apache.org> wrote:

> +1
>
> We have enough downstream projects that we *should* be providing something
> stable for people to use to a basic degree (perhaps not as crazy as some of
> the API we use for injecting faults). I think your suggestion, Duo, is a
> nice step towards that.
>
> Any attempt to tell folks to not use it will just trigger some
> backlash/animosity (not trying to imply others suggested this -- just
> stating to color my view).
>
>
> On 2/11/18 9:18 PM, 张铎(Duo Zhang) wrote:
>
>> We also use HBTU to write UTs in our own code. But I agree that HBTU
>> should
>> not be public, instead, we can make MiniHBaseCluster public.
>>
>> And maybe introduce a new scope of IA.LimitedPrivate, let's call it
>> 'TESTING', which indicates that these classes are only used to write UTs,
>> do not use it in production, and we can mark it as IS.Evolving so that we
>> could break the API between minor releases. I think this is OK as it is
>> only supposed to be used by UTs?
>>
>> Thanks.
>>
>> 2018-02-04 1:34 GMT+08:00 Andrew Purtell <an...@gmail.com>:
>>
>> This has always been my opinion about this, but that doesn't make it a
>>> position.
>>>
>>>
>>> On Feb 2, 2018, at 8:50 PM, Apekshit Sharma <ap...@cloudera.com> wrote:
>>>>
>>>> bq. Anything in test/ can't be public API by definition. Move it into
>>>>
>>> src/
>>>
>>>> if that is desired.
>>>>
>>>> If that has always been our stance, we should probably clarify it in our
>>>> documentation. Or maybe it's already there and i missed it.
>>>> Didn't find anything searching for 'test' in
>>>> http://hbase.apache.org/book.html#hbase.versioning.
>>>>
>>>> I see IA.Public annotations on follow classes under **/test/ path:
>>>> HBCommonTU, HBTU, MiniHBaseCluster, CodecPerformance, and
>>>> HBaseZKTestingUtility
>>>>
>>>> At least MiniHBaseCluster seems like it might be useful to downstream
>>>> projects. Others may have nuggets which might make sense in public api.
>>>> Not sure what's best though - moving the classes + declaration that
>>>> test/
>>>> code is private, or letting annotations do they work as they do work
>>>> src/
>>>> code.
>>>>
>>>> -- Appy
>>>>
>>>>
>>>> On Fri, Feb 2, 2018 at 5:56 PM, Andrew Purtell <ap...@apache.org>
>>>>>
>>>> wrote:
>>>
>>>>
>>>>> Phoenix is being a bit naughty. On the other hand, the status of this
>>>>>
>>>> class
>>>
>>>> isn't clear.
>>>>>
>>>>> On Fri, Jan 26, 2018 at 2:10 PM, Ted Yu <yu...@gmail.com> wrote:
>>>>>>
>>>>>> At least Phoenix is using it.
>>>>>> If you search in Phoenix repo, you would see a lot of classes with:
>>>>>>
>>>>>> import org.apache.hadoop.hbase.HBaseTestingUtility;
>>>>>>
>>>>>> If you have specific method(s) which you consider changing, you can
>>>>>> ask
>>>>>> dev@phoenix.
>>>>>>
>>>>>> FYI
>>>>>>
>>>>>> On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org> wrote:
>>>>>>>
>>>>>>> Can we make changes between releases? Do we know who else is using
>>>>>>> it?
>>>>>>>
>>>>>>> Mike
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Best regards,
>>>>> Andrew
>>>>>
>>>>> Words like orphans lost among the crosstalk, meaning torn from truth's
>>>>> decrepit hands
>>>>>    - A23, Crosstalk
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> -- Appy
>>>>
>>>
>>>
>>


-- 
Best regards,
Andrew

Words like orphans lost among the crosstalk, meaning torn from truth's
decrepit hands
   - A23, Crosstalk

Re: Is HBaseTestingUtility part of public API?

Posted by Josh Elser <el...@apache.org>.
+1

We have enough downstream projects that we *should* be providing 
something stable for people to use to a basic degree (perhaps not as 
crazy as some of the API we use for injecting faults). I think your 
suggestion, Duo, is a nice step towards that.

Any attempt to tell folks to not use it will just trigger some 
backlash/animosity (not trying to imply others suggested this -- just 
stating to color my view).

On 2/11/18 9:18 PM, 张铎(Duo Zhang) wrote:
> We also use HBTU to write UTs in our own code. But I agree that HBTU should
> not be public, instead, we can make MiniHBaseCluster public.
> 
> And maybe introduce a new scope of IA.LimitedPrivate, let's call it
> 'TESTING', which indicates that these classes are only used to write UTs,
> do not use it in production, and we can mark it as IS.Evolving so that we
> could break the API between minor releases. I think this is OK as it is
> only supposed to be used by UTs?
> 
> Thanks.
> 
> 2018-02-04 1:34 GMT+08:00 Andrew Purtell <an...@gmail.com>:
> 
>> This has always been my opinion about this, but that doesn't make it a
>> position.
>>
>>
>>> On Feb 2, 2018, at 8:50 PM, Apekshit Sharma <ap...@cloudera.com> wrote:
>>>
>>> bq. Anything in test/ can't be public API by definition. Move it into
>> src/
>>> if that is desired.
>>>
>>> If that has always been our stance, we should probably clarify it in our
>>> documentation. Or maybe it's already there and i missed it.
>>> Didn't find anything searching for 'test' in
>>> http://hbase.apache.org/book.html#hbase.versioning.
>>>
>>> I see IA.Public annotations on follow classes under **/test/ path:
>>> HBCommonTU, HBTU, MiniHBaseCluster, CodecPerformance, and
>>> HBaseZKTestingUtility
>>>
>>> At least MiniHBaseCluster seems like it might be useful to downstream
>>> projects. Others may have nuggets which might make sense in public api.
>>> Not sure what's best though - moving the classes + declaration that test/
>>> code is private, or letting annotations do they work as they do work src/
>>> code.
>>>
>>> -- Appy
>>>
>>>
>>>> On Fri, Feb 2, 2018 at 5:56 PM, Andrew Purtell <ap...@apache.org>
>> wrote:
>>>>
>>>> Phoenix is being a bit naughty. On the other hand, the status of this
>> class
>>>> isn't clear.
>>>>
>>>>> On Fri, Jan 26, 2018 at 2:10 PM, Ted Yu <yu...@gmail.com> wrote:
>>>>>
>>>>> At least Phoenix is using it.
>>>>> If you search in Phoenix repo, you would see a lot of classes with:
>>>>>
>>>>> import org.apache.hadoop.hbase.HBaseTestingUtility;
>>>>>
>>>>> If you have specific method(s) which you consider changing, you can ask
>>>>> dev@phoenix.
>>>>>
>>>>> FYI
>>>>>
>>>>>> On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org> wrote:
>>>>>>
>>>>>> Can we make changes between releases? Do we know who else is using it?
>>>>>>
>>>>>> Mike
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Best regards,
>>>> Andrew
>>>>
>>>> Words like orphans lost among the crosstalk, meaning torn from truth's
>>>> decrepit hands
>>>>    - A23, Crosstalk
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> -- Appy
>>
> 

Re: Is HBaseTestingUtility part of public API?

Posted by "张铎 (Duo Zhang)" <pa...@gmail.com>.
We also use HBTU to write UTs in our own code. But I agree that HBTU should
not be public, instead, we can make MiniHBaseCluster public.

And maybe introduce a new scope of IA.LimitedPrivate, let's call it
'TESTING', which indicates that these classes are only used to write UTs,
do not use it in production, and we can mark it as IS.Evolving so that we
could break the API between minor releases. I think this is OK as it is
only supposed to be used by UTs?

Thanks.

2018-02-04 1:34 GMT+08:00 Andrew Purtell <an...@gmail.com>:

> This has always been my opinion about this, but that doesn't make it a
> position.
>
>
> > On Feb 2, 2018, at 8:50 PM, Apekshit Sharma <ap...@cloudera.com> wrote:
> >
> > bq. Anything in test/ can't be public API by definition. Move it into
> src/
> > if that is desired.
> >
> > If that has always been our stance, we should probably clarify it in our
> > documentation. Or maybe it's already there and i missed it.
> > Didn't find anything searching for 'test' in
> > http://hbase.apache.org/book.html#hbase.versioning.
> >
> > I see IA.Public annotations on follow classes under **/test/ path:
> > HBCommonTU, HBTU, MiniHBaseCluster, CodecPerformance, and
> > HBaseZKTestingUtility
> >
> > At least MiniHBaseCluster seems like it might be useful to downstream
> > projects. Others may have nuggets which might make sense in public api.
> > Not sure what's best though - moving the classes + declaration that test/
> > code is private, or letting annotations do they work as they do work src/
> > code.
> >
> > -- Appy
> >
> >
> >> On Fri, Feb 2, 2018 at 5:56 PM, Andrew Purtell <ap...@apache.org>
> wrote:
> >>
> >> Phoenix is being a bit naughty. On the other hand, the status of this
> class
> >> isn't clear.
> >>
> >>> On Fri, Jan 26, 2018 at 2:10 PM, Ted Yu <yu...@gmail.com> wrote:
> >>>
> >>> At least Phoenix is using it.
> >>> If you search in Phoenix repo, you would see a lot of classes with:
> >>>
> >>> import org.apache.hadoop.hbase.HBaseTestingUtility;
> >>>
> >>> If you have specific method(s) which you consider changing, you can ask
> >>> dev@phoenix.
> >>>
> >>> FYI
> >>>
> >>>> On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org> wrote:
> >>>>
> >>>> Can we make changes between releases? Do we know who else is using it?
> >>>>
> >>>> Mike
> >>>>
> >>>
> >>
> >>
> >>
> >> --
> >> Best regards,
> >> Andrew
> >>
> >> Words like orphans lost among the crosstalk, meaning torn from truth's
> >> decrepit hands
> >>   - A23, Crosstalk
> >>
> >
> >
> >
> > --
> >
> > -- Appy
>

Re: Is HBaseTestingUtility part of public API?

Posted by Andrew Purtell <an...@gmail.com>.
This has always been my opinion about this, but that doesn't make it a position. 


> On Feb 2, 2018, at 8:50 PM, Apekshit Sharma <ap...@cloudera.com> wrote:
> 
> bq. Anything in test/ can't be public API by definition. Move it into src/
> if that is desired.
> 
> If that has always been our stance, we should probably clarify it in our
> documentation. Or maybe it's already there and i missed it.
> Didn't find anything searching for 'test' in
> http://hbase.apache.org/book.html#hbase.versioning.
> 
> I see IA.Public annotations on follow classes under **/test/ path:
> HBCommonTU, HBTU, MiniHBaseCluster, CodecPerformance, and
> HBaseZKTestingUtility
> 
> At least MiniHBaseCluster seems like it might be useful to downstream
> projects. Others may have nuggets which might make sense in public api.
> Not sure what's best though - moving the classes + declaration that test/
> code is private, or letting annotations do they work as they do work src/
> code.
> 
> -- Appy
> 
> 
>> On Fri, Feb 2, 2018 at 5:56 PM, Andrew Purtell <ap...@apache.org> wrote:
>> 
>> Phoenix is being a bit naughty. On the other hand, the status of this class
>> isn't clear.
>> 
>>> On Fri, Jan 26, 2018 at 2:10 PM, Ted Yu <yu...@gmail.com> wrote:
>>> 
>>> At least Phoenix is using it.
>>> If you search in Phoenix repo, you would see a lot of classes with:
>>> 
>>> import org.apache.hadoop.hbase.HBaseTestingUtility;
>>> 
>>> If you have specific method(s) which you consider changing, you can ask
>>> dev@phoenix.
>>> 
>>> FYI
>>> 
>>>> On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org> wrote:
>>>> 
>>>> Can we make changes between releases? Do we know who else is using it?
>>>> 
>>>> Mike
>>>> 
>>> 
>> 
>> 
>> 
>> --
>> Best regards,
>> Andrew
>> 
>> Words like orphans lost among the crosstalk, meaning torn from truth's
>> decrepit hands
>>   - A23, Crosstalk
>> 
> 
> 
> 
> -- 
> 
> -- Appy

Re: Is HBaseTestingUtility part of public API?

Posted by Apekshit Sharma <ap...@cloudera.com>.
bq. Anything in test/ can't be public API by definition. Move it into src/
if that is desired.

If that has always been our stance, we should probably clarify it in our
documentation. Or maybe it's already there and i missed it.
Didn't find anything searching for 'test' in
http://hbase.apache.org/book.html#hbase.versioning.

I see IA.Public annotations on follow classes under **/test/ path:
HBCommonTU, HBTU, MiniHBaseCluster, CodecPerformance, and
HBaseZKTestingUtility

At least MiniHBaseCluster seems like it might be useful to downstream
projects. Others may have nuggets which might make sense in public api.
Not sure what's best though - moving the classes + declaration that test/
code is private, or letting annotations do they work as they do work src/
code.

-- Appy


On Fri, Feb 2, 2018 at 5:56 PM, Andrew Purtell <ap...@apache.org> wrote:

> Phoenix is being a bit naughty. On the other hand, the status of this class
> isn't clear.
>
> On Fri, Jan 26, 2018 at 2:10 PM, Ted Yu <yu...@gmail.com> wrote:
>
> > At least Phoenix is using it.
> > If you search in Phoenix repo, you would see a lot of classes with:
> >
> > import org.apache.hadoop.hbase.HBaseTestingUtility;
> >
> > If you have specific method(s) which you consider changing, you can ask
> > dev@phoenix.
> >
> > FYI
> >
> > On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org> wrote:
> >
> > > Can we make changes between releases? Do we know who else is using it?
> > >
> > > Mike
> > >
> >
>
>
>
> --
> Best regards,
> Andrew
>
> Words like orphans lost among the crosstalk, meaning torn from truth's
> decrepit hands
>    - A23, Crosstalk
>



-- 

-- Appy

Re: Is HBaseTestingUtility part of public API?

Posted by Andrew Purtell <ap...@apache.org>.
Phoenix is being a bit naughty. On the other hand, the status of this class
isn't clear.

On Fri, Jan 26, 2018 at 2:10 PM, Ted Yu <yu...@gmail.com> wrote:

> At least Phoenix is using it.
> If you search in Phoenix repo, you would see a lot of classes with:
>
> import org.apache.hadoop.hbase.HBaseTestingUtility;
>
> If you have specific method(s) which you consider changing, you can ask
> dev@phoenix.
>
> FYI
>
> On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org> wrote:
>
> > Can we make changes between releases? Do we know who else is using it?
> >
> > Mike
> >
>



-- 
Best regards,
Andrew

Words like orphans lost among the crosstalk, meaning torn from truth's
decrepit hands
   - A23, Crosstalk

Re: Is HBaseTestingUtility part of public API?

Posted by Ted Yu <yu...@gmail.com>.
At least Phoenix is using it.
If you search in Phoenix repo, you would see a lot of classes with:

import org.apache.hadoop.hbase.HBaseTestingUtility;

If you have specific method(s) which you consider changing, you can ask
dev@phoenix.

FYI

On Fri, Jan 26, 2018 at 2:01 PM, Mike Drob <md...@apache.org> wrote:

> Can we make changes between releases? Do we know who else is using it?
>
> Mike
>