Description
There are compatibility concerns with branch-1.4.
Library Name HBase Version #1 1.3.1 Version #2 1.4.0-SNAPSHOT Subject Binary Compatibility Compatibility - 89.9% Added Methods - 305 Removed Methods - 105 Problems with Data Types High - 23 Medium - 9 Low - 21
Library Name HBase Version #1 1.3.1 Version #2 1.4.0-SNAPSHOT Subject Source Compatibility Compatibility- 86.5% Added Methods - 305 Removed Methods - 105 Problems with Data Types High - 88 Medium - 0 Low - 0 Other Changes in Data Types - 25
This report includes HBASE-15816 which hasn't been committed yet. Otherwise it's current.
I'm not generally concerned with added methods.
The following methods have been added to Public/Evolving interface Table. Pointing them out in case it merits review.
- Abstract method Table.getReadRpcTimeout ( ) has been added to this interface. No effect.
- Abstract method Table.getWriteRpcTimeout ( ) has been added to this interface. No effect.
- Abstract method Table.setReadRpcTimeout ( int ) has been added to this interface. No effect.
- Abstract method Table.setWriteRpcTimeout ( int ) has been added to this interface.
The Public/Evolving interface Admin has some signature changes equating to removed methods. I don't think this is allowed in a minor release.
- Abstract method Admin.isSnapshotFinished ( HBaseProtos.SnapshotDescription ) has been removed from Admin.
- Abstract method Admin.snapshot ( String, TableName, HBaseProtos.SnapshotDescription.Type ) has been removed from Admin.
- Abstract method Admin.snapshot ( HBaseProtos.SnapshotDescription ) has been removed from Admin.
- Abstract method Admin.takeSnapshotAsync ( HBaseProtos.SnapshotDescription ) has been removed from Admin.
The LimitedPrivate(CONFIG) interface AsyncRpcClient has been removed. This change is debatable but I think we can allow it.
- AsyncRpcClient has been removed
The Public/Evolving class FastLongHistogram has been removed. I don't believe this change is allowed in a minor release.
- FastLongHistogram has been removed
Method signatures in LimitedPrivate(COPROC) interfaces MasterObserver and RegionObserver have changed, equating to removed methods. The first set of changes is due to move of SnapshotDescription from HBaseProtos to SnapshotProtos:
- Abstract method MasterObserver.postCloneSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from MasterObserver.
- Abstract method MasterObserver.postDeleteSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
- Abstract method MasterObserver.postListSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
- Abstract method MasterObserver.postRestoreSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from MasterObserver.
- Abstract method MasterObserver.postSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from MasterObserver.
- Abstract method MasterObserver.preCloneSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from MasterObserver.
- Abstract method MasterObserver.preDeleteSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
- Abstract method MasterObserver.preListSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
- Abstract method MasterObserver.preRestoreSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from MasterObserver.
- Abstract method MasterObserver.preSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from MasterObserver.
Here, maybe DeleteTracker moved packages?
- Abstract method RegionObserver.postInstantiateDeleteTracker ( ObserverContext<RegionCoprocessorEnvironment>, DeleteTracker ) has been removed from RegionObserver.
The LimitedPrivate(COPROC) interface Store has method signature changes equating to removed methods. The changes are debatable. I am thinking we can allow them. Anyone implementing their own Stores?
- Abstract method Store.bulkLoadHFile ( String, long ) has been removed from Store.
- Abstract method Store.getScanners ( List<StoreFile>, boolean, boolean, boolean, boolean, ScanQueryMatcher, byte[ ], byte[ ], long, boolean ) has been removed from Store.
- Abstract method Store.getScanners ( boolean, boolean, boolean, boolean, ScanQueryMatcher, byte[ ], byte[ ], long ) has been removed from Store.
- Abstract method Store.upsert ( Iterable<Cell>, long ) has been removed from Store.
Attachments
Attachments
- HBASE-18431-branch-1.4.patch
- 902 kB
- Andrew Kyle Purtell
- HBASE-18431-branch-1.patch
- 902 kB
- Andrew Kyle Purtell
- HBASE-18431-branch-2-WIP.patch
- 276 kB
- Andrew Kyle Purtell
Activity
Both the Admin and MasterObserver changes can be resolved by moving SnapshotDescription back into HBaseProtos.
This is fun. SnapshotDescription includes something from AccessControl.proto, which includes HBase.proto, so putting SnapshotDescription into HBase.proto leads to disallowed recursion between proto modules. Let me see if I can find an alternative that doesn't affect public APIs.
Attached patch resolves all identified binary compatibility issues of concern.
- Move SnapshotDescription from Snapshot.proto back to HBase.proto. This change will only be needed for branch-1.4 and branch-1.
- Break a cycle with proto definitions by moving TableName into its own proto module and fixing up users. This change will need to be carried forward to all versions. Is this ok as-is or would you like it done a bit differently stack ?
- Restore FastLongHistogram and TestFastLongHistogram and deprecate FastLongHistogram. This change will only be needed for branch-1.4 and branch-1.
- Move DeleteQueryTracker back to o.a.h.h.regionserver. This change will only be needed for branch-1 and branch-1.4.
-1 overall |
Vote | Subsystem | Runtime | Comment |
---|---|---|---|
0 | reexec | 0m 22s | Docker mode activated. |
+1 | hbaseanti | 0m 0s | Patch does not have any anti-patterns. |
+1 | @author | 0m 0s | The patch does not contain any @author tags. |
+1 | test4tests | 0m 0s | The patch appears to include 17 new or modified test files. |
0 | mvndep | 1m 19s | Maven dependency ordering for branch |
+1 | mvninstall | 6m 0s | branch-1.4 passed |
+1 | compile | 1m 24s | branch-1.4 passed with JDK v1.8.0_131 |
+1 | compile | 1m 30s | branch-1.4 passed with JDK v1.7.0_131 |
+1 | checkstyle | 9m 22s | branch-1.4 passed |
+1 | mvneclipse | 1m 9s | branch-1.4 passed |
+1 | findbugs | 5m 49s | branch-1.4 passed |
+1 | javadoc | 1m 10s | branch-1.4 passed with JDK v1.8.0_131 |
+1 | javadoc | 1m 24s | branch-1.4 passed with JDK v1.7.0_131 |
0 | mvndep | 0m 13s | Maven dependency ordering for patch |
+1 | mvninstall | 1m 47s | the patch passed |
+1 | compile | 1m 31s | the patch passed with JDK v1.8.0_131 |
+1 | cc | 1m 31s | the patch passed |
+1 | javac | 1m 31s | the patch passed |
+1 | compile | 1m 35s | the patch passed with JDK v1.7.0_131 |
+1 | cc | 1m 35s | the patch passed |
+1 | javac | 1m 35s | the patch passed |
+1 | checkstyle | 9m 44s | the patch passed |
+1 | mvneclipse | 0m 58s | the patch passed |
-1 | whitespace | 0m 0s | The patch has 103 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply |
+1 | xml | 0m 1s | The patch has no ill-formed XML file. |
+1 | hadoopcheck | 17m 15s | The patch does not cause any errors with Hadoop 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. |
-1 | hbaseprotoc | 0m 23s | Patch generated 4 new protoc errors in hbase-protocol. |
-1 | hbaseprotoc | 0m 12s | Patch generated 4 new protoc errors in hbase-common. |
-1 | hbaseprotoc | 0m 12s | Patch generated 4 new protoc errors in hbase-client. |
-1 | hbaseprotoc | 0m 18s | Patch generated 4 new protoc errors in hbase-server. |
+1 | findbugs | 6m 44s | the patch passed |
+1 | javadoc | 1m 9s | the patch passed with JDK v1.8.0_131 |
+1 | javadoc | 1m 24s | the patch passed with JDK v1.7.0_131 |
+1 | unit | 0m 23s | hbase-protocol in the patch passed. |
+1 | unit | 1m 47s | hbase-common in the patch passed. |
+1 | unit | 2m 0s | hbase-client in the patch passed. |
-1 | unit | 95m 39s | hbase-server in the patch failed. |
+1 | asflicense | 1m 0s | The patch does not generate ASF License warnings. |
175m 38s |
Reason | Tests |
---|---|
Failed junit tests | hadoop.hbase.client.TestClientScannerRPCTimeout |
hadoop.hbase.client.TestReplicasClient | |
hadoop.hbase.regionserver.TestRSKilledWhenInitializing | |
hadoop.hbase.coprocessor.TestRowProcessorEndpoint | |
hadoop.hbase.TestZooKeeper | |
hadoop.hbase.mapred.TestTableSnapshotInputFormat | |
Timed out junit tests | org.apache.hadoop.hbase.security.access.TestCellACLs |
org.apache.hadoop.hbase.client.TestTableSnapshotScanner |
This message was automatically generated.
Do you know which jira(s) made above BC breaks? Just to make sure that the current changes wont break the original intent of those jiras.
Adding back FastLongHistogram is harmless and fixes a disallowed change in minor releases .
Moving DeleteTracker from one package to another does not change function at all and restores binary compatibility to a coprocessor interface.
Moving SnapshotDescription back into HBase.proto fixes disallowed changes to the public Admin interface and also fixes compatibility problems with the core CP interfaces.
I see some noise from precommit. Let me check that.
It doesn't matter the intent of the JIRAs where the changes were made because the compat breaks are disallowed. This is a release blocker for branch-1.4 and any future 1.x release.
Break a cycle with proto definitions by moving TableName into its own proto module and fixing up users
Haven't seen comment if this is a reasonable way to break the cycle between HBase.proto and AccessControl.proto after moving SnapshotDescription back. Assuming so, let me make sure protobuf allows this kind of change by checking if 1.3 and 1.4 with this change applied can still communicate.
TestClientScannerRPCTimeout is flaky independent of this change.
TestRSKilledWhenInitializing is a known flake being tracked by another JIRA.
All other tests called out in the precommit report pass for me repeatedly 25 of 25 times.
PB compat is fine. I set up bidirectional replication from a 1.3.1 cluster to a 1.4.0-SNAPSHOT cluster with this patch applied and used the 1.3.1 binaries to drive a replication scenario with LoadTestTool writing to the 1.4.0-SNAPSHOT cluster with that replicating rows back to the 1.3.1 one. No issues.
apurtell - would the SnapshotDescription stuff affect later version as well? I don't see it marked as deprecated in current form, so I'm not sure that we can move it until master (3.0) and would need to put it back in branch-2 as well.
mdrob I have only been looking at this in terms of getting 1.4 out the door. Could do more to provide a path for removal in 2.0. What do you think of this plan?
- Add back the new SnapshotDescription definition in Snapshot.proto
- Deprecate but do not remove Admin APIs using HBaseProtos#SnapshotDescription
- Create a new SnapshotDescription model class and add ProtobufUtil static helpers for translating between the model and its serialization. Insta-deprecated methods returning HBaseProtos#SnapshotDescription. New methods returning SnapshotProtos#SnapshotDescription. SnapshotDescription model class will have constructors that accept both. Constructor accepting HBaseProtos#SnapshotDescription is insta-deprecated.
- Add new Admin APIs using the SnapshotDescription model class
- In 1.x: Leave the coprocessor hook definitions as is
- In 2.x: Replace use of HBaseProtos#SnapshotDescription with SnapshotDescription model class in coprocessor hooks. My feeling is it is uglier to have a bunch of deprecated methods in these interfaces than to make a clean break.
- The DeleteTracker package move that breaks a CP interface is fine for 2.x. No need to deprecate. Again judging it better to make clean breaks for CP interfaces on the major version than load down the interfaces with deprecated methods.
I was hoping for something simpler - can we make
class HBaseProtos { @Deprecated class SnapshotDescription extends SnapshotProtos.SnapshotDescription { } }
I think that would preserve all of the old users while giving them a clear path forward. I don't know if there's more nuance to the proto world, though.
mdrob How would that work? HBaseProtos and SnapshotProtos are generated classes from protobuf definitions.
I thought there was an extend keyword, but it looks like that's gone in proto-3. It might not have done what I wanted anyway, though.
We could patch the generated sources, but that seems like a very fragile idea and liable to cause more problems later.
Your idea to have multiple implementations might be the best of a bunch of bad options.
This came up for me because I've got some folks on my side trying to write client code that will work with both branch-1 and branch-2. Happy to test any patches that you put up.
For 2.0 I don't think we have Public client APIs which take PB generated classes as param. I forgot the id, but some old jira that we did, changed this. Ideally we should not expose PB generated classes as params or return types.
Ideally we should not expose PB generated classes as params or return types.
Totally agree but where we've already done it we need to preserve compat and do proper deprecation to replace.
Yes Andy. For 1.x we have to continue with what we did. What I mean is if u see 2.0 Admin APIs for snapshot, already we changed the PB gen POJOs params to our own
See eg: snapshot(SnapshotDescription snapshot).
This was done some time back
Thanks anoop.hbase. Then I think it would be reasonable for branch-1.4 and up to add exactly the 2.0 admin APIs for snapshot and attach deprecation tags to the others. If there are no objections to this approach I will add this to the current patch on this issue, commit to branch-1.4 and branch-1, and call it a day.
I'm afraid that won't be possible anoop.hbase. The implicated methods in Admin are already tagged as deprecated. I can bring in the Snapshot and SnapshotType POJO classes but can only add some methods to Admin using them. Java doesn't recognize methods with different return types as different methods. I cannot add methods like listSnapshots() returning a different type without either renaming the old method, breaking compat, or changing parameter signature, breaking compat.
So the current patch as-is is the best we can do and I will commit it tomorrow unless objection.
stack I am trying to update hbase-protocol-shaded for branch-2 and up (see current branch-2 patch on this issue) but -Pcompile-protobuf is not doing what I expect. It deletes everything under hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/com/google/protobuf . Is there a HOWTO somewhere for updating proto files?
I needed to move TableName out of HBase.proto to resolve a cycle after repairing incompatible changes introduced into branch-1 and I am thinking this change should be carried forward. However strictly speaking it doesn't have to be carried forward. I've done wire compat tests and protobuf doesn't care in what proto file a message is declared. I could leave this be. If leaving it be, then TableName will move out of HBase.proto in 1.4 and later 1.x and then move back into HBase.proto with 2.0.
apurtell, I've got a lot on my plate right now, would you mind giving me until the end of the week to look? If stack's PB changes would make this too hard and you need to land before that, let me know and I'll look at it after it's in and file follow on issues if I see things.
mdrob This is blocking me from moving forward to RM the 1.4 release. It can wait until the end of the week, but I'm getting a little antsy.
For what it's worth I believe it is fine to commit the changes as is to branch-1 and branch-1.4 given there is no surfacing of TableName proto class in any API and protobuf wire compat is fine. (I've tested it.) We can definitely follow up on branch-2 and up. However it's not necessary. The movement of TableName around the proto definitions in branch-1 can stay in the branch-1s.
-1 overall |
Vote | Subsystem | Runtime | Comment |
---|---|---|---|
0 | reexec | 12m 38s | Docker mode activated. |
+1 | hbaseanti | 0m 0s | Patch does not have any anti-patterns. |
+1 | @author | 0m 0s | The patch does not contain any @author tags. |
-1 | test4tests | 0m 0s | The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. |
0 | mvndep | 1m 24s | Maven dependency ordering for branch |
+1 | mvninstall | 6m 40s | branch-2 passed |
+1 | compile | 0m 50s | branch-2 passed |
+1 | checkstyle | 1m 21s | branch-2 passed |
+1 | mvneclipse | 0m 47s | branch-2 passed |
+1 | findbugs | 2m 23s | branch-2 passed |
+1 | javadoc | 0m 43s | branch-2 passed |
0 | mvndep | 0m 19s | Maven dependency ordering for patch |
+1 | mvninstall | 0m 54s | the patch passed |
+1 | compile | 0m 52s | the patch passed |
+1 | cc | 0m 52s | the patch passed |
+1 | javac | 0m 52s | the patch passed |
+1 | checkstyle | 4m 35s | the patch passed |
+1 | mvneclipse | 0m 31s | the patch passed |
-1 | whitespace | 0m 0s | The patch has 55 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply |
-1 | hadoopcheck | 0m 46s | The patch causes 16 errors with Hadoop v2.4.0. |
-1 | hadoopcheck | 1m 30s | The patch causes 16 errors with Hadoop v2.4.1. |
-1 | hadoopcheck | 2m 13s | The patch causes 16 errors with Hadoop v2.5.0. |
-1 | hadoopcheck | 2m 57s | The patch causes 16 errors with Hadoop v2.5.1. |
-1 | hadoopcheck | 3m 41s | The patch causes 16 errors with Hadoop v2.5.2. |
+1 | hbaseprotoc | 0m 57s | the patch passed |
+1 | findbugs | 3m 10s | the patch passed |
+1 | javadoc | 0m 41s | the patch passed |
+1 | unit | 0m 18s | hbase-protocol in the patch passed. |
+1 | unit | 2m 36s | hbase-client in the patch passed. |
+1 | unit | 0m 22s | hbase-rsgroup in the patch passed. |
+1 | asflicense | 0m 22s | The patch does not generate ASF License warnings. |
73m 49s |
Subsystem | Report/Notes |
---|---|
Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:757bf37 |
JIRA Issue | |
JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12879742/HBASE-18431-branch-2-WIP.patch |
Optional Tests | asflicense javac javadoc unit findbugs hadoopcheck hbaseanti checkstyle compile cc hbaseprotoc |
uname | Linux 7b92af8ef5e4 3.13.0-119-generic #166-Ubuntu SMP Wed May 3 12:18:55 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux |
Build tool | maven |
Personality | /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh |
git revision | branch-2 / 7bdabed |
Default Java | 1.8.0_131 |
findbugs | v3.1.0-RC3 |
whitespace | https://builds.apache.org/job/PreCommit-HBASE-Build/7858/artifact/patchprocess/whitespace-eol.txt |
Test Results | https://builds.apache.org/job/PreCommit-HBASE-Build/7858/testReport/ |
modules | C: hbase-protocol hbase-client hbase-rsgroup U: . |
Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/7858/console |
Powered by | Apache Yetus 0.4.0 http://yetus.apache.org |
This message was automatically generated.
sounds good, stabilize branch-1 and then we'll revisit branch-2 next week.
-1 overall |
Vote | Subsystem | Runtime | Comment |
---|---|---|---|
0 | reexec | 0m 48s | Docker mode activated. |
+1 | hbaseanti | 0m 0s | Patch does not have any anti-patterns. |
+1 | @author | 0m 0s | The patch does not contain any @author tags. |
+1 | test4tests | 0m 0s | The patch appears to include 17 new or modified test files. |
0 | mvndep | 1m 38s | Maven dependency ordering for branch |
+1 | mvninstall | 7m 52s | branch-1 passed |
+1 | compile | 2m 11s | branch-1 passed with JDK v1.8.0_131 |
+1 | compile | 1m 58s | branch-1 passed with JDK v1.7.0_131 |
+1 | checkstyle | 9m 56s | branch-1 passed |
+1 | mvneclipse | 1m 19s | branch-1 passed |
+1 | findbugs | 6m 37s | branch-1 passed |
+1 | javadoc | 1m 36s | branch-1 passed with JDK v1.8.0_131 |
+1 | javadoc | 1m 44s | branch-1 passed with JDK v1.7.0_131 |
0 | mvndep | 0m 15s | Maven dependency ordering for patch |
+1 | mvninstall | 2m 21s | the patch passed |
+1 | compile | 2m 2s | the patch passed with JDK v1.8.0_131 |
+1 | cc | 2m 2s | the patch passed |
+1 | javac | 2m 2s | the patch passed |
+1 | compile | 2m 6s | the patch passed with JDK v1.7.0_131 |
+1 | cc | 2m 6s | the patch passed |
+1 | javac | 2m 6s | the patch passed |
+1 | checkstyle | 10m 2s | the patch passed |
+1 | mvneclipse | 1m 2s | the patch passed |
-1 | whitespace | 0m 0s | The patch has 103 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply |
+1 | xml | 0m 1s | The patch has no ill-formed XML file. |
+1 | hadoopcheck | 24m 5s | The patch does not cause any errors with Hadoop 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. |
-1 | hbaseprotoc | 0m 30s | Patch generated 4 new protoc errors in hbase-protocol. |
-1 | hbaseprotoc | 0m 14s | Patch generated 4 new protoc errors in hbase-common. |
-1 | hbaseprotoc | 0m 14s | Patch generated 4 new protoc errors in hbase-client. |
-1 | hbaseprotoc | 0m 25s | Patch generated 4 new protoc errors in hbase-server. |
+1 | findbugs | 6m 56s | the patch passed |
+1 | javadoc | 1m 25s | the patch passed with JDK v1.8.0_131 |
+1 | javadoc | 1m 40s | the patch passed with JDK v1.7.0_131 |
+1 | unit | 0m 26s | hbase-protocol in the patch passed. |
+1 | unit | 1m 56s | hbase-common in the patch passed. |
+1 | unit | 2m 9s | hbase-client in the patch passed. |
-1 | unit | 107m 21s | hbase-server in the patch failed. |
+1 | asflicense | 1m 4s | The patch does not generate ASF License warnings. |
204m 9s |
Reason | Tests |
---|---|
Failed junit tests | hadoop.hbase.regionserver.TestSCVFWithMiniCluster |
hadoop.hbase.master.TestAssignmentListener | |
hadoop.hbase.regionserver.TestScannerHeartbeatMessages | |
hadoop.hbase.regionserver.TestSplitTransactionOnCluster | |
hadoop.hbase.client.TestReplicasClient | |
hadoop.hbase.replication.TestSerialReplication | |
Timed out junit tests | org.apache.hadoop.hbase.security.access.TestCellACLs |
This message was automatically generated.
apurtell Hey. Yeah, when you run the -Pcompile-protobuf, it does a bunch of ugly hackery. If it fails for whatever reason, yeah, you are left in an odd state (e.g. stuff is removed... its supposed to be then repopulated....). Running w/ a -X for debug output will usually tell you what is broke in protos. I just tried your patch though and it seems to work for me sir.
$ mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T08:41:47-08:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_101, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.12.4", arch: "x86_64", family: "mac"
stack Is the v2 patch good enough? I didn't change anything in shaded protobuf, just in hbase-protocol.
It seems fine if we don't forward port the move TableName out from HBase.proto from branch-1 to branch-2. We can just contain this hack to the branch-1s?
I plan to commit the branch-1 patch to branch-1 and branch-1.4 tomorrow and then resolve this. Let me know if you have any concerns or objections. We can follow up for branch-2 (if desired) on another issue.
I need another day to look at some compilation problems with Phoenix. So far they look like things our compat policy allows for: private annotated types (shouldn't have used it), and added methods in interfaces. I haven't finished enumerating the errors yet.
FAILURE: Integrated in Jenkins build HBase-1.4 #863 (See https://builds.apache.org/job/HBase-1.4/863/)
HBASE-18431 Mitigate compatibility concerns between branch-1.3 and (apurtell: rev ea5789a7f2953c4cbfa6ce29132e882186d81799)
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/RestoreSnapshotHandler.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
- (add) hbase-protocol/src/main/protobuf/Table.proto
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/ScanDeleteTracker.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestSnapshotClientRetries.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/DisabledTableSnapshotHandler.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRestoreSnapshotHelper.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.java
- (edit) hbase-protocol/src/main/protobuf/MasterProcedure.proto
- (edit) hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/SnapshotProtos.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/RestoreSnapshotException.java
- (add) hbase-common/src/main/java/org/apache/hadoop/hbase/util/FastLongHistogram.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/DropDeletesCompactionScanQueryMatcher.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestScanDeleteTracker.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormatImpl.java
- (add) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DeleteTracker.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/NormalUserScanQueryMatcher.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProcedureProtos.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/LegacyScanQueryMatcher.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/CloneSnapshotHandler.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotExistsException.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDoesNotExistException.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/CorruptedSnapshotException.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotReferenceUtil.java
- (edit) hbase-protocol/src/main/protobuf/ZooKeeper.proto
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
- (edit) hbase-protocol/pom.xml
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromClient.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifest.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestAccessController.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifestV1.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/RestoreSnapshotHelper.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ClientProtos.java
- (edit) hbase-protocol/src/main/protobuf/WAL.proto
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/ExportSnapshot.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/AccessControlProtos.java
- (delete) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.java
- (edit) hbase-protocol/src/main/protobuf/SecureBulkLoad.proto
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
- (add) hbase-common/src/test/java/org/apache/hadoop/hbase/util/TestFastLongHistogram.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/WALProtos.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestSnapshotDescriptionUtils.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/EnabledTableSnapshotHandler.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
- (edit) hbase-protocol/src/main/protobuf/Master.proto
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/CompactionScanQueryMatcher.java
- (edit) hbase-protocol/src/main/protobuf/Snapshot.proto
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
- (edit) hbase-server/src/main/resources/hbase-webapps/master/snapshotsStats.jsp
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestWithDisabledAuthorization.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/snapshot/FlushSnapshotSubprocedure.java
- (add) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/TableProtos.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestSnapshotFromMaster.java
- (edit) hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestSnapshotManifest.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifestV2.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRestoreFlushSnapshotFromClient.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/MinorCompactionScanQueryMatcher.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRegionSnapshotTask.java
- (edit) hbase-protocol/src/main/protobuf/AccessControl.proto
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestExportSnapshot.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/CreateSnapshot.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestFlushSnapshotFromClient.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotCreationException.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/MajorCompactionScanQueryMatcher.java
- (edit) hbase-server/src/main/resources/hbase-webapps/master/snapshot.jsp
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/SnapshotSentinel.java
- (edit) hbase-protocol/src/main/protobuf/HBase.proto
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/HBaseProtos.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/SecureBulkLoadProtos.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.java
FAILURE: Integrated in Jenkins build HBase-1.5 #10 (See https://builds.apache.org/job/HBase-1.5/10/)
HBASE-18431 Mitigate compatibility concerns between branch-1.3 and (apurtell: rev 3feb87b0054d23d8452b4fa557e9400781c3440d)
- (add) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DeleteTracker.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/HBaseProtos.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ZooKeeperProtos.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestSnapshotClientRetries.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotReferenceUtil.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/EnabledTableSnapshotHandler.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/RestoreSnapshotHandler.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestSnapshotFromMaster.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/SnapshotProtos.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/NormalUserScanQueryMatcher.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/WALProtos.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestScanDeleteTracker.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestAccessController.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestFlushSnapshotFromClient.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
- (add) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/TableProtos.java
- (edit) hbase-protocol/src/main/protobuf/Master.proto
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotCreationException.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/CreateSnapshot.java
- (edit) hbase-protocol/src/main/protobuf/ZooKeeper.proto
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/DropDeletesCompactionScanQueryMatcher.java
- (add) hbase-protocol/src/main/protobuf/Table.proto
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromClient.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/ScanDeleteTracker.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDoesNotExistException.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/CompactionScanQueryMatcher.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifest.java
- (add) hbase-common/src/main/java/org/apache/hadoop/hbase/util/FastLongHistogram.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/SnapshotSentinel.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProcedureProtos.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormatImpl.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestExportSnapshot.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRegionSnapshotTask.java
- (add) hbase-common/src/test/java/org/apache/hadoop/hbase/util/TestFastLongHistogram.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/ExportSnapshot.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/AccessControlProtos.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.java
- (edit) hbase-protocol/src/main/protobuf/HBase.proto
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifestV1.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifestV2.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/RestoreSnapshotHelper.java
- (edit) hbase-server/src/main/resources/hbase-webapps/master/snapshotsStats.jsp
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRestoreFlushSnapshotFromClient.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestSnapshotManifest.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/LegacyScanQueryMatcher.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
- (edit) hbase-protocol/src/main/protobuf/WAL.proto
- (edit) hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/SecureBulkLoadProtos.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.java
- (edit) hbase-protocol/src/main/protobuf/AccessControl.proto
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/CorruptedSnapshotException.java
- (edit) hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestSnapshotDescriptionUtils.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/MajorCompactionScanQueryMatcher.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/MinorCompactionScanQueryMatcher.java
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRestoreSnapshotHelper.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
- (edit) hbase-server/src/main/resources/hbase-webapps/master/snapshot.jsp
- (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestWithDisabledAuthorization.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/snapshot/FlushSnapshotSubprocedure.java
- (delete) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/CloneSnapshotHandler.java
- (edit) hbase-protocol/pom.xml
- (edit) hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ClientProtos.java
- (edit) hbase-protocol/src/main/protobuf/SecureBulkLoad.proto
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotExistsException.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java
- (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/RestoreSnapshotException.java
- (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/DisabledTableSnapshotHandler.java
- (edit) hbase-protocol/src/main/protobuf/MasterProcedure.proto
- (edit) hbase-protocol/src/main/protobuf/Snapshot.proto
apurtell Mind share the compatibility report after patch here if you got one at hand sir? Thanks.
FAILURE: Integrated in Jenkins build HBase-1.5 #13 (See https://builds.apache.org/job/HBase-1.5/13/)
Amend HBASE-18431 Mitigate compatibility concerns between branch-1.3 and (apurtell: rev 6a1a97422ccdc1a6b9aeadda9a2eaf89ac548870)
- (edit) hbase-shell/src/main/ruby/hbase/admin.rb
FAILURE: Integrated in Jenkins build HBase-1.4 #866 (See https://builds.apache.org/job/HBase-1.4/866/)
Amend HBASE-18431 Mitigate compatibility concerns between branch-1.3 and (apurtell: rev ee87edd89049cd215b7df91a4a0b98941a47ba63)
- (edit) hbase-shell/src/main/ruby/hbase/admin.rb
apurtell - mind writing up a release note for this, or did we manage to back out all the compat changes?
mdrob Do you want a release note for the compat issues I fixed (would only confuse IMHO because they're no more) or the ones left around? For the latter, whenever I do a release I include a compatibility report with the binaries, so all relevant information will be there.
Just the ones left around. Is the compatibility report that you produce basically the output of running whichever tool you like (Java API CC looks like in this case?) or does it include migration notes for folks?
Is the compatibility report that you produce basically the output of running whichever tool you like (Java API CC looks like in this case
Yes, the report HTML file produced by the Java API CC.
or does it include migration notes for folks?
If I thought user migration would be necessary, the changes wouldn't be allowed. For this issue I only admitted changes to Private interfaces, or LimitedPrivate(COPROC) interfaces without any known downstream user.
I see this in branch-2.0:
commit 5e21e30682147a45c50ff7067ed40d21bb52239d
Author: Andrew Purtell <apurtell@apache.org>
Date: Mon Jul 31 16:12:02 2017 -0700
HBASE-18431 Mitigate compatibility concerns between branch-1.3 and branch-1.4
We needed to move TableName out of HBase.proto to resolve a cycle after
repairing incompatible changes introduced into branch-1. Carry this forward.
Both the Admin and MasterObserver changes can be resolved by moving SnapshotDescription back into HBaseProtos.