Updating of protobuf library version is addressed by
Although we still use proto2 syntax. To update the syntax to proto3 we need to meet some requirements:
- Proto3 doesn't support required fields. So it is needed to change all existing required fields to optional. If we expect such fields to be always present in the messages, we need to revisit the approach.
- Custom default values are no more supported. And Drill uses custom defaults in some places. The impact from removal of them should be further investigated, but it would definitely require changes in logic.
- No more ability to determine if a missing field was not included, or was assigned the default value. Need investigation whether it is used in code.
- Support for nested groups is excluded from proto3. This shouldn't be a problem as they are not used in Drill.
- Protostuff and protobuf-maven-plugin should be also updated which may cause some compatibility issues.