You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Dima Spivak (JIRA)" <ji...@apache.org> on 2014/12/08 07:49:13 UTC

[jira] [Commented] (HBASE-12556) Create a golden file for testing client API source/binary compatibility

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

Dima Spivak commented on HBASE-12556:
-------------------------------------

I detailed how we might want to actually run binary compatibility tests in another JIRA (HBASE-8275), but some of the discussion might belong here, too. I think if we want to really ensure compatibility across versions, we should have functional tests for every public API in one place that can feed into a framework for doing all the necessary compilation and binary-versions-on-the-classpath permutations we care about. Having them as actual tests (and not just making sure things compile and seem to work) means we'd also be looking out for semantic compatibility as described in the [Apache Hadoop compatibility guide|http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/Compatibility.html].

> Create a golden file for testing client API source/binary compatibility
> -----------------------------------------------------------------------
>
>                 Key: HBASE-12556
>                 URL: https://issues.apache.org/jira/browse/HBASE-12556
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Client
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: 1.0.0, 2.0.0
>
>         Attachments: hbase-12556-wip.patch
>
>
> [~lhofhansl] had a suggestion (in some other jira I forgot) for doing a golden file for the HBase API so that we can compare between releases to ensure that we are keeping source and binary compatibility as defined in this document : https://docs.google.com/document/d/1p5pP7v2OuzSSaomK2S2v7sfKky1Hex6OqwsJO0sZTUY/edit 
> I think we can generate a file, commit it to the repo, and create a unit test to check whether any API's are broken. Adding new InterfaceAudience.Public interfaces has to modify this file so that it becomes an explicit decision. 
> The downside is that we have to modify the file every time we add a new API, but it should be fine since it will force us to think more before committing to supporting new interfaces within the same major versions. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)