You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by Sean Busbey <bu...@apache.org> on 2017/03/20 14:26:46 UTC

[DISCUSS] moving to Apache Yetus Audience Annotations

Hi folks!

I'd like us to start moving towards using the audience annotations
from the Apache Yetus project[1] so we can remove the same kind of
implementation code from our codebase.

For background, a while ago Apache Hadoop made some Java annotations
to denote what APIs were appropriate for downstream use (rather than
those intended for use by the project itself). This was to deal with
the disconnect between the access modifiers available in Java and the
project's structure wrt downstream.

When HBase grew out of the Hadoop project, we adopted the same
annotations[2]. Eventually, we moved to having our own copy of those
classes and the attendant javadocs plugin for customizing our
downstream facing docs[3].

Apache Yetus formed about about a year and a half ago to serve as a
common point of support for tools that help projects handle community
matters, you may recognize it from the precommit test framework we
rely on to vet incoming patches. Yetus also provides a single
implementation of the annotations and javadoc work that currently
resides in both the Hadoop and HBase projects.

Since 2.0 is a major version, we could just switch wholesale from our
own implementations to the most recent Apache Yetus release.
Alternatively, we could have 2.0 serve as a transitionary release line
that annotates things with both our own and the Yetus versions of the
Inteface Audience markings.

Personally, I'd prefer just swapping things out all at once. This
would have the happy side-effect of removing a cyclic dependency in
our build (where one needs to have built our annotation processing
javadoc plugin).

What do folks think?

-Sean

[1]: http://yetus.apache.org/documentation/0.4.0/interface-classification/
[2]: http://hbase.apache.org/book.html#hbase.client.api.surface
[3]: https://issues.apache.org/jira/browse/HBASE-12059

Re: [DISCUSS] moving to Apache Yetus Audience Annotations

Posted by Sean Busbey <bu...@apache.org>.
It sounds like we have consensus. I filed HBASE-17823 for implementation.

On Mon, Mar 20, 2017 at 5:33 PM, Sean Busbey <bu...@apache.org> wrote:
> It's only been 8 hours Ted, let's wait a bit to make sure folks have a
> chance to contribute to the discussion if they like.
>
> On Mar 20, 2017 4:28 PM, "Ted Yu" <yu...@gmail.com> wrote:
>
> Sean:
> Can you log a JIRA so that we can move this forward ?
>
> Cheers
>
> On Mon, Mar 20, 2017 at 2:20 PM, Josh Elser <el...@apache.org> wrote:
>
>> Sean Busbey wrote:
>>
>>> On Mon, Mar 20, 2017 at 11:09 AM, Ted Yu<yu...@gmail.com>  wrote:
>>>
>>>> Is Yetus 0.4.0 release stable ?
>>>>
>>>>
>>> yes.
>>>
>>>
>>> If we use Yetus annotations, is there only one jar pulled in as
>>>> dependency ?
>>>>
>>>>
>>> IIRC, we'll get one jar as a dependency. There shouldn't be any
>>> transitive dependencies involved.
>>>
>>
>> Less code in HBase? No extra "cruft" coming in?
>>
>> Sign me up!
>>
>
>

Re: [DISCUSS] moving to Apache Yetus Audience Annotations

Posted by Sean Busbey <bu...@apache.org>.
It's only been 8 hours Ted, let's wait a bit to make sure folks have a
chance to contribute to the discussion if they like.

On Mar 20, 2017 4:28 PM, "Ted Yu" <yu...@gmail.com> wrote:

Sean:
Can you log a JIRA so that we can move this forward ?

Cheers

On Mon, Mar 20, 2017 at 2:20 PM, Josh Elser <el...@apache.org> wrote:

> Sean Busbey wrote:
>
>> On Mon, Mar 20, 2017 at 11:09 AM, Ted Yu<yu...@gmail.com>  wrote:
>>
>>> Is Yetus 0.4.0 release stable ?
>>>
>>>
>> yes.
>>
>>
>> If we use Yetus annotations, is there only one jar pulled in as
>>> dependency ?
>>>
>>>
>> IIRC, we'll get one jar as a dependency. There shouldn't be any
>> transitive dependencies involved.
>>
>
> Less code in HBase? No extra "cruft" coming in?
>
> Sign me up!
>

Re: [DISCUSS] moving to Apache Yetus Audience Annotations

Posted by Ted Yu <yu...@gmail.com>.
Sean:
Can you log a JIRA so that we can move this forward ?

Cheers

On Mon, Mar 20, 2017 at 2:20 PM, Josh Elser <el...@apache.org> wrote:

> Sean Busbey wrote:
>
>> On Mon, Mar 20, 2017 at 11:09 AM, Ted Yu<yu...@gmail.com>  wrote:
>>
>>> Is Yetus 0.4.0 release stable ?
>>>
>>>
>> yes.
>>
>>
>> If we use Yetus annotations, is there only one jar pulled in as
>>> dependency ?
>>>
>>>
>> IIRC, we'll get one jar as a dependency. There shouldn't be any
>> transitive dependencies involved.
>>
>
> Less code in HBase? No extra "cruft" coming in?
>
> Sign me up!
>

Re: [DISCUSS] moving to Apache Yetus Audience Annotations

Posted by Josh Elser <el...@apache.org>.
Sean Busbey wrote:
> On Mon, Mar 20, 2017 at 11:09 AM, Ted Yu<yu...@gmail.com>  wrote:
>> Is Yetus 0.4.0 release stable ?
>>
>
> yes.
>
>
>> If we use Yetus annotations, is there only one jar pulled in as dependency ?
>>
>
> IIRC, we'll get one jar as a dependency. There shouldn't be any
> transitive dependencies involved.

Less code in HBase? No extra "cruft" coming in?

Sign me up!

Re: [DISCUSS] moving to Apache Yetus Audience Annotations

Posted by Sean Busbey <bu...@apache.org>.
On Mon, Mar 20, 2017 at 11:09 AM, Ted Yu <yu...@gmail.com> wrote:
> Is Yetus 0.4.0 release stable ?
>

yes.


> If we use Yetus annotations, is there only one jar pulled in as dependency ?
>

IIRC, we'll get one jar as a dependency. There shouldn't be any
transitive dependencies involved.

Re: [DISCUSS] moving to Apache Yetus Audience Annotations

Posted by Ted Yu <yu...@gmail.com>.
Is Yetus 0.4.0 release stable ?

If we use Yetus annotations, is there only one jar pulled in as dependency ?

Cheers

On Mon, Mar 20, 2017 at 7:26 AM, Sean Busbey <bu...@apache.org> wrote:

> Hi folks!
>
> I'd like us to start moving towards using the audience annotations
> from the Apache Yetus project[1] so we can remove the same kind of
> implementation code from our codebase.
>
> For background, a while ago Apache Hadoop made some Java annotations
> to denote what APIs were appropriate for downstream use (rather than
> those intended for use by the project itself). This was to deal with
> the disconnect between the access modifiers available in Java and the
> project's structure wrt downstream.
>
> When HBase grew out of the Hadoop project, we adopted the same
> annotations[2]. Eventually, we moved to having our own copy of those
> classes and the attendant javadocs plugin for customizing our
> downstream facing docs[3].
>
> Apache Yetus formed about about a year and a half ago to serve as a
> common point of support for tools that help projects handle community
> matters, you may recognize it from the precommit test framework we
> rely on to vet incoming patches. Yetus also provides a single
> implementation of the annotations and javadoc work that currently
> resides in both the Hadoop and HBase projects.
>
> Since 2.0 is a major version, we could just switch wholesale from our
> own implementations to the most recent Apache Yetus release.
> Alternatively, we could have 2.0 serve as a transitionary release line
> that annotates things with both our own and the Yetus versions of the
> Inteface Audience markings.
>
> Personally, I'd prefer just swapping things out all at once. This
> would have the happy side-effect of removing a cyclic dependency in
> our build (where one needs to have built our annotation processing
> javadoc plugin).
>
> What do folks think?
>
> -Sean
>
> [1]: http://yetus.apache.org/documentation/0.4.0/interface-classification/
> [2]: http://hbase.apache.org/book.html#hbase.client.api.surface
> [3]: https://issues.apache.org/jira/browse/HBASE-12059
>