hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-12932) Change the interface annotation of HConnection in 0.98 from Public/Stable to Public/Evolving
Date Tue, 27 Jan 2015 19:37:34 GMT

     [ https://issues.apache.org/jira/browse/HBASE-12932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andrew Purtell updated HBASE-12932:
-----------------------------------
    Description: 
See the tail of HBASE-12859. Lars wants to add methods to HConnection. I suggest not because
HConnection has Public/Stable annotation. Enis then says:
{quote}
We do not differentiate or explicitly document this, but my understanding of most of our InterfaceAudience.Public
is for consumption, not for extending or implementing interfaces (except for some coprocessor
cases). So I think we should be free to add new methods in Admin, Connection, etc in minor
versions. I would say that in patch versions we should not do such changes.
Maybe we can do a base classes as a convenience, but still with no guarantees.
{quote}

to which I reply:

{quote}
Shrug. So the Public/Stable annotation just means "keep this interface around, don't worry
about changes that will break an implementor?" . Then what would Public/Evolving (or Unstable)
mean as difference? Do we have what the annotations mean documented somewhere? This point
didn't come up in a review when I backported client pushback, so now we have StatisticsHConnection.
If it's ok to add methods to HConnection I would like to sink the 0.98.10 RC that has this
change and fix it with a new patch/issue.
{quote}

I'm not sure what others think, but if we change the annotation of HConnection to Public/Evolving
then it would make sense to allow methods to be added. 

I will open a subtask of this issue to nuke StatisticsHConnection if/once the annotation is
changed. I would also sink the current 0.98.10 RC that has StatisticsHConnection in it so
it never sees the light of day.

  was:
See the tail of HBASE-12859. Lars wants to add methods to HConnection. I suggest not. Enis
then says:
{quote}
We do not differentiate or explicitly document this, but my understanding of most of our InterfaceAudience.Public
is for consumption, not for extending or implementing interfaces (except for some coprocessor
cases). So I think we should be free to add new methods in Admin, Connection, etc in minor
versions. I would say that in patch versions we should not do such changes.
Maybe we can do a base classes as a convenience, but still with no guarantees.
{quote}

to which I reply:

{quote}
Shrug. So the Public/Stable annotation just means "keep this interface around, don't worry
about changes that will break an implementor?" . Then what would Public/Evolving (or Unstable)
mean as difference? Do we have what the annotations mean documented somewhere? This point
didn't come up in a review when I backported client pushback, so now we have StatisticsHConnection.
If it's ok to add methods to HConnection I would like to sink the 0.98.10 RC that has this
change and fix it with a new patch/issue.
{quote}

I will open a subtask of this issue to nuke StatisticsHConnection.




> Change the interface annotation of HConnection in 0.98 from Public/Stable to Public/Evolving
> --------------------------------------------------------------------------------------------
>
>                 Key: HBASE-12932
>                 URL: https://issues.apache.org/jira/browse/HBASE-12932
>             Project: HBase
>          Issue Type: Task
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>
> See the tail of HBASE-12859. Lars wants to add methods to HConnection. I suggest not
because HConnection has Public/Stable annotation. Enis then says:
> {quote}
> We do not differentiate or explicitly document this, but my understanding of most of
our InterfaceAudience.Public is for consumption, not for extending or implementing interfaces
(except for some coprocessor cases). So I think we should be free to add new methods in Admin,
Connection, etc in minor versions. I would say that in patch versions we should not do such
changes.
> Maybe we can do a base classes as a convenience, but still with no guarantees.
> {quote}
> to which I reply:
> {quote}
> Shrug. So the Public/Stable annotation just means "keep this interface around, don't
worry about changes that will break an implementor?" . Then what would Public/Evolving (or
Unstable) mean as difference? Do we have what the annotations mean documented somewhere? This
point didn't come up in a review when I backported client pushback, so now we have StatisticsHConnection.
If it's ok to add methods to HConnection I would like to sink the 0.98.10 RC that has this
change and fix it with a new patch/issue.
> {quote}
> I'm not sure what others think, but if we change the annotation of HConnection to Public/Evolving
then it would make sense to allow methods to be added. 
> I will open a subtask of this issue to nuke StatisticsHConnection if/once the annotation
is changed. I would also sink the current 0.98.10 RC that has StatisticsHConnection in it
so it never sees the light of day.



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

Mime
View raw message