There are some comments in https://issues.apache.org/jira/browse/HBASE-17584 .
In HBASE-17584, we want to remove Scan.getScanMetrics and move the method to ResultScanner which is an interface and part of our public API. In our refguide, it is clear that we can do this for a major release. And for patch release, it is also clear that we are not allowed to do this. New APIs introduced in a patch version will only be added in a source compatible way [1 <http://hbase.apache.org/book.html#_footnote_1>]: i.e. code that implements public APIs will continue to compile. But for minor release, it is a liitle inexplicit. A minor upgrade requires no application/client code modification. Ideally it would be a drop-in replacement but client code, coprocessors, filters, etc might have to be recompiled if new jars are used. If no client code modification is required, then we are not allowed to add methods to interface as it will cause compliation error if user extends the interface as on branch-1, we still need to support JDK7 which does not support default method. But I think this will make minor release almost the same with patch release? And another point is that, for most users, they only use the interface and do not implement it, so adding methods will not break their code. So here we want to see what the community think of whether we should allow adding methods to interface in minor release. Any comments are welcomed. Thanks.