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