+1 on Mike's proposal. 
-------- Original message --------From: Josh Elser <els...@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 <apurt...@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 <els...@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 <andrew.purt...@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 <a...@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 <apurt...@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 <yuzhih...@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
>>
> 

Reply via email to