Hi folks,

I just noticed a ticket over in Phoenix [1] in which some method additions to the Table interface [2] breaks the source compatibility of Phoenix with HBase 1.2.2.

My understanding of the current guidelines is that these are allowed as they do not invalidate binary compatibility of clients using the API. Personally, I am very hard-pressed to use the word "compatible" in a sentence describing this change that isn't sarcastic :)

A couple of questions:

1) I find the InterfaceAudience annotations on this really strange. How can we have a Public audience Interface (o.a.h.h.c.Table) with Private methods? Is that just "how things are", or am I missing something? If this is not something that's meant to be public, I would think these new methods should be defined in a non-public interface.

2) Now that we've had quite a few releases in the "not-quite-SemVer" compatibility guide, is there any interest in trying to make the compatibility guarantees more stringent? I would like to see us get to source-compatibility on patch releases, not just binary compatibility. I am happy to try to help, but I know I don't have the time to devote to catch everything.

3) What do people think about changing this in a 1.2.3 with a quick turn-around?

Thanks!

- Josh

[1] https://issues.apache.org/jira/browse/PHOENIX-3116
[2] https://issues.apache.org/jira/browse/HBASE-15645

Reply via email to