Step 1 is to add the jdiff framework in, that is a non-trivial but
straightforward change.
Step 2 is to annotate all the APIs, something that should be done by
various domain experts over time. Even if this is not complete there
is value with #1.
Step 3: ?
Step 4: profit!

On Wed, Feb 16, 2011 at 3:17 PM, Ted Yu <yuzhih...@gmail.com> wrote:
> Looking at what Stack is doing in
> https://issues.apache.org/jira/browse/HBASE-1502, I think we can use the
> following appoach:
> 1. create the annotations below
> 2. Committers who actively refactor code place proper annotation on the
> classes they touch
> 3. after some time, we should be able to mark the classes/methods untouched
> by #2 stable.
>
> My two cents.
>
> On Wed, Feb 16, 2011 at 2:12 PM, Ted Yu <yuzhih...@gmail.com> wrote:
>
>> The following annotation can only be attached by HBase committer(s):
>>
>>
>> Stability:
>>  - Unstable: may change and likely to change between point releases,
>>  - Evolving: possibly change between point releases but unlikely, could
>> well change between bigger releases
>>
>> Contributors would have a hard time keeping up with current development.
>>
>>
>> On Wed, Feb 16, 2011 at 12:46 PM, Ted Yu <yuzhih...@gmail.com> wrote:
>>
>>> I am not very familiar with (internal) HBase APIs which grow quite large.
>>> I have a full-time job.
>>>
>>> And this task is quite big.
>>>
>>> Community effort should be the best approach.
>>>
>>>
>>> On Wed, Feb 16, 2011 at 12:20 PM, Todd Lipcon <t...@cloudera.com> wrote:
>>>
>>>> On Wed, Feb 16, 2011 at 12:16 PM, Ryan Rawson <ryano...@gmail.com>wrote:
>>>>
>>>>> Sounds like Ted volunteered to do it!
>>>>>
>>>>
>>>> Woohoo, thanks Ted!
>>>>
>>>> -Todd
>>>>
>>>>
>>>>>  On Wed, Feb 16, 2011 at 12:15 PM, Ted Yu <yuzhih...@gmail.com> wrote:
>>>>> > Definitely.
>>>>> >
>>>>> > On Wed, Feb 16, 2011 at 11:57 AM, Todd Lipcon <t...@cloudera.com>
>>>>> wrote:
>>>>> >
>>>>> >> In Hadoop land, Tom White did some awesome work to add special
>>>>> annotations
>>>>> >> that we stick on all the public classes that classify the interfaces
>>>>> as:
>>>>> >>
>>>>> >> Stability:
>>>>> >>  - Unstable: may change and likely to change between point releases,
>>>>> >>  - Evolving: possibly change between point releases but unlikely,
>>>>> could
>>>>> >> well change between bigger releases
>>>>> >>  - Stable: hasn't changed in a long time, unlikely to change
>>>>> >>
>>>>> >> Audience: Private, Limited, Public
>>>>> >>  - Private: not meant for users, even if it's "Stable" we might
>>>>> change it
>>>>> >> and break you without a deprecation path
>>>>> >>  - Limited: meant only for a certain set of specified projects (eg we
>>>>> might
>>>>> >> say "this API is only for use by Hive, and we'll change it so long as
>>>>> the
>>>>> >> hive people are OK with it")
>>>>> >>  - Public: won't change without deprecation path for one major
>>>>> release
>>>>> >>
>>>>> >> He also built some cool tools to do jdiff and javadoc with these
>>>>> >> annotations
>>>>> >> taken into account (eg javadoc won't show private APIs)
>>>>> >>
>>>>> >> Are people interested in bringing this system over to HBase?
>>>>> >>
>>>>> >> -Todd
>>>>> >>
>>>>> >> On Wed, Feb 16, 2011 at 11:51 AM, Ryan Rawson <ryano...@gmail.com>
>>>>> wrote:
>>>>> >>
>>>>> >> > Well done Andrew.
>>>>> >> >
>>>>> >> > People who want to know the API differences should probably mostly
>>>>> only
>>>>> >> > read:
>>>>> >> >
>>>>> >> >
>>>>> >> >
>>>>> >>
>>>>> https://tm-files.s3.amazonaws.com/hbase/jdiff-hbase-0.90.1/changes/pkg_org.apache.hadoop.hbase.client.html
>>>>> >> >
>>>>> >> > And specifically the HTable, Put, Get, Delete, Scan classes.
>>>>> >> >
>>>>> >> >
>>>>> >> >
>>>>> >> > On Wed, Feb 16, 2011 at 7:19 AM, Andrew Purtell <
>>>>> apurt...@apache.org>
>>>>> >> > wrote:
>>>>> >> > > I ran jdiff by hand. See:
>>>>> >> > >
>>>>> >> > >
>>>>> >> >
>>>>> https://tm-files.s3.amazonaws.com/hbase/jdiff-hbase-0.90.1/changes.html
>>>>> >> > >
>>>>> >> > > Best regards,
>>>>> >> > >
>>>>> >> > >     - Andy
>>>>> >> > >
>>>>> >> > > Problems worthy of attack prove their worth by hitting back.
>>>>> >> > >   - Piet Hein (via Tom White)
>>>>> >> > >
>>>>> >> > >
>>>>> >> > > --- On Wed, 2/16/11, Lars George <lars.geo...@gmail.com> wrote:
>>>>> >> > >
>>>>> >> > >> From: Lars George <lars.geo...@gmail.com>
>>>>> >> > >> Subject: Re: API changes between 0.20.6 and 0.90.1
>>>>> >> > >> To: dev@hbase.apache.org
>>>>> >> > >> Date: Wednesday, February 16, 2011, 1:22 AM
>>>>> >> > >> +1, I like that idea.
>>>>> >> > >>
>>>>> >> > >> On Wed, Feb 16, 2011 at 2:43 AM, Todd Lipcon <t...@cloudera.com
>>>>> >
>>>>> >> > >> wrote:
>>>>> >> > >> > Hi Ted,
>>>>> >> > >> >
>>>>> >> > >> > I'd recommend setting up jdiff to answer this
>>>>> >> > >> question. Would be a good
>>>>> >> > >> > contribution to our source base to be able to run this
>>>>> >> > >> automatically and
>>>>> >> > >> > generate a report as part of our build. We do this in
>>>>> >> > >> Hadoop and it's very
>>>>> >> > >> > useful.
>>>>> >> > >> >
>>>>> >> > >> > -Todd
>>>>> >> > >> >
>>>>> >> > >> > On Tue, Feb 15, 2011 at 5:14 PM, Ted Yu <yuzhih...@gmail.com>
>>>>> >> > >> wrote:
>>>>> >> > >> >
>>>>> >> > >> >> Can someone tell me which classes from the list
>>>>> >> > >> below changed API between
>>>>> >> > >> >> 0.20.6 and 0.90.1 ?
>>>>> >> > >> >> http://pastebin.com/TkZfPt52
>>>>> >> > >> >>
>>>>> >> > >> >> Thanks
>>>>> >> > >> >>
>>>>> >> > >> >
>>>>> >> > >> >
>>>>> >> > >> >
>>>>> >> > >> > --
>>>>> >> > >> > Todd Lipcon
>>>>> >> > >> > Software Engineer, Cloudera
>>>>> >> > >> >
>>>>> >> > >>
>>>>> >> > >
>>>>> >> > >
>>>>> >> > >
>>>>> >> > >
>>>>> >> > >
>>>>> >> > >
>>>>> >> >
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >> --
>>>>> >> Todd Lipcon
>>>>> >> Software Engineer, Cloudera
>>>>> >>
>>>>> >
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Todd Lipcon
>>>> Software Engineer, Cloudera
>>>>
>>>
>>>
>>
>

Reply via email to