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

Steve Loughran commented on HADOOP-9517:
----------------------------------------

As raised in hdfs-dev, we should also define compatibility for people who 
develop plugins for things like filesystems, schedulers, sorting, block 
placement, etc.

We should make clear that this isn't considered user-level code, and 
implementors should have no expectation of forward- or backward- compatibility. 
Indeed, the use of base classes rather than interfaces for many of these plugin 
points is to enable new methods to be added with ease.

How about something like (based on my recent {{FileSystem}} work):

* Classes that subclass a Hadoop class to provide a plugin point MAY need 
recompiling on each major version, possibly with the handling of changes to 
methods.
* There is no guarantee that a plugin built for an earlier major version of 
Hadoop can be directly used in a later major version - implementors of plugins 
MUST expect to have to release new versions
* There is no guarantee that a plugin built on a later major version of Hadoop 
can be directly used in the earlier major versions. Implementors of plugins 
MUST expect to have to maintain different versions for each major release.
* We strive to maintain semantic compatibility of existing parameters and 
methods across major versions. Plugin points MAY tighten their specifications, 
and MAY mark methods as deprecated. Extra tests MAY be added, for both new 
features and tightened specifications.
* We strive to maintain binary and semantic compatibility between minor 
releases. Hopefully plugin implementations are compatible across minor 
releases. However, plugin points MAY tighten their specifications -and even add 
extra methods and/or enumerated options to existing methods. Extra tests MAY be 
added, for both new features and tightened specifications. Implementors SHOULD 
test on different releases -especially alpha and beta releases, to catch 
compatibility issues early.
                
> Document Hadoop Compatibility
> -----------------------------
>
>                 Key: HADOOP-9517
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9517
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: documentation
>            Reporter: Arun C Murthy
>            Assignee: Karthik Kambatla
>         Attachments: hadoop-9517.patch, hadoop-9517.patch, hadoop-9517.patch, 
> hadoop-9517.patch, hadoop-9517-proposal-v1.patch, 
> hadoop-9517-proposal-v1.patch
>
>
> As we get ready to call hadoop-2 stable we need to better define 'Hadoop 
> Compatibility'.
> http://wiki.apache.org/hadoop/Compatibility is a start, let's document 
> requirements clearly and completely.

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