On Tue, Aug 10, 2021 at 10:48 AM Bryan Beaudreault <[email protected]> wrote:
> Hello dev list, > > This question came up in https://github.com/apache/hbase/pull/3536, where > I > renamed a field on the BalanceRequest message in Master.proto. > > This change is backwards compatible to the majority of users, because > protobuf does not actually care about the name of the field (only the > ordinal/id). So long as someone is interacting with MasterRpcServices > through the Admin/AsyncAdmin interfaces, they would be completely unaware > of the renamed field under the covers. > > One concern I had was for people with their own forks, or 3rd party clients > as Nick brought up. In those cases, they would get a compile time error > when building. > > We don't explicitly cover protobufs in our > http://hbase.apache.org/book.html#hbase.versioning.post10 documentation. > Nick suggested that it might make sense to consider the protobufs part of > the LimitedPrivate API but would like to open that up to other opinions. > > We have the modules hbase-protocol and hbase-protocol-shaded. They host our 'protocol' spec'd in protobuf proto files and the classes generated from proto files by protoc. The latter, shaded version, was made so we could freely update the protobuf version we used internally and change protobufs w/o having to worry about downstreamers or running into conflict w/ upstream (hadoop). Effectively, it was treated as though it interfaceaudience private. We should probably stamp it so (and I think this means your change can be made w/o concern for downstreamers). hbase-protobuf was for use in those locations where we had protobuf as part of our public API; in particular, our use of protobuf describing interfaces for coprocessor endpoints. This latter module uses the EOL'd protobuf version 2.5.0. It was sort-of public but also was being let atrophy as often protobuf changes were made in the shaded module and not made here, particularly if for internal-use only. hbase-protocol needs some work (Related https://issues.apache.org/jira/browse/HBASE-16756). S > If we reach a consensus I would be happy to submit a jira to update our > docs. >
