hi folks,

This has come up in some other contexts, but I believe it would be a
good idea to increment the version number in Schema.fbs starting with
1.0.0 to separate the pre-1.0 and post-1.0 worlds

https://github.com/apache/arrow/blob/master/format/Schema.fbs#L22

Given that we are contemplating a number of changes to assist with
forward compatibility and a breaking serialization change for unions,
this would seem prudent so that we do not risk breaking compatibility
with 0.17.1 and prior.

Given that there are no major backwards incompatibilities, there
should be no problem with 1.0.0 readers reading data generated by
libraries <= 0.17.1.

However, in order to accommodate existing applications that are
deployed with < 1.0.0 already (forward compatibility), I would suggest
in C++ to add an option for IpcWriteOptions to target the V4 format
which would disable the use of certain features (like unions) where
there is an issue. This could also be opted in to with an environment
variable. It's basically the same issue as the
"ARROW_PRE_0_15_IPC_FORMAT" environment variable that we added because
of the IPC alignment change. I admit it's kind of an eyesore but in a
couple of years I suspect we could drop these forward compatibility
crutches.

Thanks,
Wes

Reply via email to