Thanks Feng. It seems like the GeneratedMessage / GeneratedMessageV3 split
introduced between 3.0.0-beta-4 and the 3.0.0 final release caused the
java/compatability_tests suite to start failing when run against 2.5.0 /
2.6.1 ("java/compatibility_tests/v2.5.0/test.sh 2.5.0" passes at git tag
v3.0.0-beta-4 but fails at v3.0.0). In 3.0.0 and newer, what is the role of
the non-V3 variants of GeneratedMessage, SingleFieldBuilder, etc? Are these
classes simply vestigial at this point or do they still provide some
benefit to compatibility (even if not 100%).

Thanks again,
Chris

On Mon, Dec 4, 2017 at 8:24 PM, Feng Xiao <[email protected]> wrote:

>
>
> On Mon, Dec 4, 2017 at 9:00 AM, Chris Thunes <[email protected]> wrote:
>
>>
>> I'm looking at options for moving some applications that currently depend
>> on protobuf-java 2.5.0 to a more recent version. This is made complicated
>> by the fact that we have a mixure of internal and external dependencies
>> (Hadoop & HBase) which depend on protobuf-java. My understanding is that
>> this will require these dependencies to move to a 3.x release sychronously
>> (i.e. regenerate using a 3.x protoc and update protobuf-java to a
>> corresponding release).
>>
>> However, looking through release notes and protobuf source code it seems
>> like some attempts have been made to address the source and binary
>> compatibility issues between 2.5/2.6.1 and 3.x. Specifically,
>>
>>    - The 3.0.0-beta-4 release notes
>>    <https://github.com/google/protobuf/blob/v3.0.0-beta-4/CHANGES.txt>
>>    mention runtime updates "to be compatible with 2.5.0/2.6.1 generated
>>    protos".
>>    - A number of classes have "V3" variants where the non-V3 variants
>>    appear to exist solely in an attempt to maintain binary compatibility with
>>    pre-3.x generated code.
>>
>> Running the compatibility tests in java/compatibility_tests/v2.5.0 it
>> appears that source and binary incompatibilities still exist.
>>
>>
>> I'm curious if anyone can shed some light on this effort and its status
>> or provide suggestions for migrating to a recent protobuf release under
>> these circumstances.
>>
> Protobuf 2.5.0/2.6.1 should be compatible with 3.0.0-beta-4 if you only
> uses protobuf public APIs. That's unfortunately not the case with Hadoop &
> HBase though. They introduced a class into com.google.protobuf package
> with the sole purpose to access protobuf package private classes
> <https://github.com/apache/hbase/blob/master/hbase-protocol/src/main/java/com/google/protobuf/HBaseZeroCopyByteString.java>.
>  As
> such there is no way you can upgrade to protobuf 3.x if the version of
> Hadoop & HBase you use still depends on protobuf 2.5/2.6 private symbols.
>
>
>> Thanks,
>>
>> Chris
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Protocol Buffers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at https://groups.google.com/group/protobuf.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to