Lo hacen incrementando la versión en el encabezado. Así que sí, es compatible en cierto sentido que obtendrá una falla elegante si intenta leer datos binarios serializados con una versión incompatible, como suele indicar el 1.45.0 release notes. ¡Además hay errores en 1.42 y 1.43 que lo rompen!
Los archivos binarios nativos creados en las versiones 1.42 y 1.43 tienen un problema grave. Es probable que esta última versión no los pueda leer. Esto debido al hecho de que 1.42 hizo algunos cambios en el formato binario de algunos tipos. Normalmente, esto podría abordarse detectando el número de versión de la biblioteca escrito en el encabezado del archivo. Desafortunadamente, este número de versión de la biblioteca no se incrementó en 1.42 como debería haber sido. Entonces ahora tenemos dos versiones de archivo binarias diferentes con el mismo número de versión de la biblioteca.
yo personalmente pondría más fe en Google Protocol Buffers, que explicitly maintains backwards compatibility:
Puede añadir nuevos campos a los formatos de mensaje sin romper la compatibilidad con versiones anteriores; los binarios antiguos simplemente ignoran el nuevo campo al analizar.
sin embargo, requiere un poco más de esfuerzo en el lado sistema de construcción, ya que implica el uso de código generado automáticamente.
Sería un duplicado, pero no tiene una respuesta satisfactoria. – julkiewicz
@julkiewicz sí, además OP aún no está en posición de ofrecer una recompensa por la pregunta existente. –
Uh, ¿por qué está cerrado si no hay un buen duplicado? –