[ 
https://issues.apache.org/jira/browse/HADOOP-9619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13675526#comment-13675526
 ] 

Sanjay Radia commented on HADOOP-9619:
--------------------------------------

Here is the proposed rules that will be put in a file.

When a .proto file is marked as stable it means that changes should be made in 
a compatible fashion. Compatibility can be broken  at a major release, though 
breaking compatibility even at major releases has grave consequences.

The following changes are *never* allowed. 
* Change a field id 
* reuse an old field that was previously deleted.
Field numbers are cheap and changing and reusing is not a good idea.


The following changes *cannot* be made to a *stable* .proto except at a major 
release since they are considered *incompatible*.
* Modify a field type in an *incompatible* way (as defined recursively)
* Add or delete a required field
* Delete an optional field  - Q. I am not sure if all our current optional 
fields have reasonable defaults to allow deletions

The following changes are allowed at any time
* Add an optional field, with the expectation that the code deals with the 
field missing due to communication with an older version of the code.
* Rename a field 
* Rename a .proto file
* Change .proto annotations that effect code generation (e.g. name of java 
package)


                
> Mark stability of .proto files
> ------------------------------
>
>                 Key: HADOOP-9619
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9619
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: documentation
>            Reporter: Sanjay Radia
>            Assignee: Sanjay Radia
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to