Looks fine.
Incorporating another public dimension probably makes the version scheme
too complex. Keep it simple.
Jerry
On Fri, Mar 31, 2017 at 5:30 PM 张铎(Duo Zhang) wrote:
> Some progress here.
>
> In HBASE-17857, a sub task of HBASE-17828, I've created a script to
Some progress here.
In HBASE-17857, a sub task of HBASE-17828, I've created a script to remove
all the IS annotations for the IA.Public API. And I've also changed the
IA.Public annotations for several classes which are marked as IS.Unstable
to IA.Private. We can change them back when we think
Filed https://issues.apache.org/jira/browse/HBASE-17828
2017-03-21 8:36 GMT+08:00 张铎(Duo Zhang) :
> bq. If someone is
> comfortable with the risk of an API that can change in minor or
> maintenance releases, what's gained by calling it IA.Public +
> IS.Evolving or
bq. If someone is
comfortable with the risk of an API that can change in minor or
maintenance releases, what's gained by calling it IA.Public +
IS.Evolving or Unstable rather than just labeling it IA.Private or
IA.LimitedPrivate?
Indeed. We can not stop users use IA.Private classes if they are
Just to bring up an alternative idea.
The Spark InterfaceStability explicitly spells out what can or can not
change from major or minor releases. (I was onto it recently).
See [1]
HBase is probably a more stable project that does not have to do the same.
But it is also possible that we may have
+1 on removing InterfaceStability annotation for IA.Public. Even more, is
it possible to forbid using these two annotations together in Yetus at
code-level if we are migrating to it (as mentioned in another thread)?
For IA.Private or IA.LimitedPrivate, personally I think InterfaceStability
is
I really dislike having InterfaceStability markings on IA.Public
interfaces, because to me it reads like us essentially saying we
didn't invest enough time in deciding what something should look like
before declaring it safe for downstream folks. If someone is
comfortable with the risk of an API
In the compatibility section of our refguide, the compatibility for patch
version, minor version and major version is not related
to InterfaceStability annotation. The only place we mention it is for
Server-Side Limited API compatibility.
And in the Developer Guidelines section, we say this