hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Allen Wittenauer ...@altiscale.com>
Subject Re: InterfaceStability and InterfaceAudience stability
Date Fri, 16 Jan 2015 18:31:11 GMT

	It may work fine from a code perspective, but from a semantic and/or human perspective, I
think it’d be confusing and could lead to problems down the road.  Let’s say we add Contract
after making this Stable.  If we change any Private’s to Contracts as a result, is that
a break?

  
On Jan 15, 2015, at 11:27 AM, Chris Nauroth <cnauroth@hortonworks.com> wrote:

> Would it really be backwards-incompatible if we added new levels later?
> That seems counter-intuitive and contrary to this piece of documentation:
> 
> http://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.5.7
> 
> Quoting:
> 
> Annotation types behave exactly like any other interface. Adding or
> removing an element from an annotation type is analogous to adding or
> removing a method. There are important considerations governing other
> changes to annotation types, but these have no effect on the linkage of
> binaries by the Java Virtual Machine. Rather, such changes affect the
> behavior of reflective APIs that manipulate annotations. The documentation
> of these APIs specifies their behavior when various changes are made to the
> underlying annotation types.
> 
> Adding or removing annotations has no effect on the correct linkage of the
> binary representations of programs in the Java programming language.
> 
> Certainly removing existing levels would be backwards-incompatible.
> 
> Chris Nauroth
> Hortonworks
> http://hortonworks.com/
> 
> 
> On Thu, Jan 15, 2015 at 6:14 AM, Allen Wittenauer <aw@altiscale.com> wrote:
> 
>> 
>>        IIRC, it was marked as evolving because it wasn’t clear at the
>> time whether we would need to add more stability levels. (One of the key
>> inspirations for the stability levels—Sun’s ARC process—had more.)
>> 
>>        So I think it’s important to remember that if this gets changed to
>> stable, that effectively means it  new levels can’t really get added...
>> 
>> On Jan 13, 2015, at 2:34 PM, Robert Kanter <rkanter@cloudera.com> wrote:
>> 
>>> +1
>>> 
>>> Though it is kinda funny that the InterfaceStability annotation was
>> marked
>>> as Evolving :)
>>> @InterfaceStability.Evolving
>>> public class InterfaceStability {...}
>>> 
>>> 
>>> On Tue, Jan 13, 2015 at 2:21 PM, Ted Yu <yuzhihong@gmail.com> wrote:
>>> 
>>>> +1
>>>> 
>>>> On Tue, Jan 13, 2015 at 1:47 PM, Abraham Elmahrek <abe@cloudera.com>
>>>> wrote:
>>>> 
>>>>> Hey guys,
>>>>> 
>>>>> I've noticed the InterfaceStability (
>>>>> 
>>>>> 
>>>> 
>> https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/InterfaceStability.java
>>>>> )
>>>>> and InterfaceAudience (
>>>>> 
>>>>> 
>>>> 
>> https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/InterfaceAudience.java
>>>>> )
>>>>> classes are marked as "Evolving". These really haven't changed much in
>>>> the
>>>>> last few years, so I was wondering if it is reasonable to mark them as
>>>>> stable?
>>>>> 
>>>>> -Abe
>>>>> 
>>>> 
>> 
>> 
> 
> -- 
> CONFIDENTIALITY NOTICE
> NOTICE: This message is intended for the use of the individual or entity to 
> which it is addressed and may contain information that is confidential, 
> privileged and exempt from disclosure under applicable law. If the reader 
> of this message is not the intended recipient, you are hereby notified that 
> any printing, copying, dissemination, distribution, disclosure or 
> forwarding of this communication is strictly prohibited. If you have 
> received this communication in error, please contact the sender immediately 
> and delete it from your system. Thank You.


Mime
View raw message