Re: InterfaceStability and InterfaceAudience stability

2015-01-16 Thread Abraham Elmahrek
Agreed. Any one interested in reviewing/committing
https://issues.apache.org/jira/browse/HADOOP-11476?

On Thu, Jan 15, 2015 at 11:27 AM, Chris Nauroth cnaur...@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 a...@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 rkan...@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 yuzhih...@gmail.com wrote:
  
   +1
  
   On Tue, Jan 13, 2015 at 1:47 PM, Abraham Elmahrek a...@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.



Re: InterfaceStability and InterfaceAudience stability

2015-01-16 Thread Allen Wittenauer

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 cnaur...@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 a...@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 rkan...@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 yuzhih...@gmail.com wrote:
 
 +1
 
 On Tue, Jan 13, 2015 at 1:47 PM, Abraham Elmahrek a...@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.



Re: InterfaceStability and InterfaceAudience stability

2015-01-15 Thread Chris Nauroth
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 a...@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 rkan...@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 yuzhih...@gmail.com wrote:
 
  +1
 
  On Tue, Jan 13, 2015 at 1:47 PM, Abraham Elmahrek a...@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.


Re: InterfaceStability and InterfaceAudience stability

2015-01-15 Thread Allen Wittenauer

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 rkan...@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 yuzhih...@gmail.com wrote:
 
 +1
 
 On Tue, Jan 13, 2015 at 1:47 PM, Abraham Elmahrek a...@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
 
 



Re: InterfaceStability and InterfaceAudience stability

2015-01-14 Thread Abraham Elmahrek
Patch attached. I'm not sure what is necessary for changing the stability
of class. Please review.

On Tue, Jan 13, 2015 at 5:09 PM, Abraham Elmahrek a...@cloudera.com wrote:

 Thanks for your thoughts guys. I've created
 https://issues.apache.org/jira/browse/HADOOP-11476 to follow through on
 this.

 On Tue, Jan 13, 2015 at 3:55 PM, Karthik Kambatla ka...@cloudera.com
 wrote:

 +1

 On Wed, Jan 14, 2015 at 4:04 AM, Robert Kanter rkan...@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 yuzhih...@gmail.com wrote:
 
   +1
  
   On Tue, Jan 13, 2015 at 1:47 PM, Abraham Elmahrek a...@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
   
  
 



 --
 Karthik Kambatla
 Software Engineer, Cloudera Inc.
 
 http://five.sentenc.es





Re: InterfaceStability and InterfaceAudience stability

2015-01-13 Thread Abraham Elmahrek
Thanks for your thoughts guys. I've created
https://issues.apache.org/jira/browse/HADOOP-11476 to follow through on
this.

On Tue, Jan 13, 2015 at 3:55 PM, Karthik Kambatla ka...@cloudera.com
wrote:

 +1

 On Wed, Jan 14, 2015 at 4:04 AM, Robert Kanter rkan...@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 yuzhih...@gmail.com wrote:
 
   +1
  
   On Tue, Jan 13, 2015 at 1:47 PM, Abraham Elmahrek a...@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
   
  
 



 --
 Karthik Kambatla
 Software Engineer, Cloudera Inc.
 
 http://five.sentenc.es



Re: InterfaceStability and InterfaceAudience stability

2015-01-13 Thread Robert Kanter
+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 yuzhih...@gmail.com wrote:

 +1

 On Tue, Jan 13, 2015 at 1:47 PM, Abraham Elmahrek a...@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
 



InterfaceStability and InterfaceAudience stability

2015-01-13 Thread Abraham Elmahrek
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


Re: InterfaceStability and InterfaceAudience stability

2015-01-13 Thread Karthik Kambatla
+1

On Wed, Jan 14, 2015 at 4:04 AM, Robert Kanter rkan...@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 yuzhih...@gmail.com wrote:

  +1
 
  On Tue, Jan 13, 2015 at 1:47 PM, Abraham Elmahrek a...@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
  
 




-- 
Karthik Kambatla
Software Engineer, Cloudera Inc.

http://five.sentenc.es