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