You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2014/11/22 07:35:34 UTC

[jira] [Updated] (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:all-tabpanel ]

Enis Soztutar updated HBASE-12556:
----------------------------------
    Attachment: hbase-12556-wip.patch

Here is a rough idea for what I had in mind. A simple class to generate the golden file, a unit test to check against this file, and a sample golden file in simple text format. 

If a patch adds a new API for example, the test will fail, and the author will be responsible to re-create the golden file again (containing the new interfaces) which will make it explicit. If an interface gets deleted, or changed, this UT will catch it. 

RM's can also do a simple diff against this file to double-check changes between releases. 

Let me know what you guys think. 

> 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: 0.99.2
>
>         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)