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 >>>> >>> >>> >> >