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