[Bf-committers] File VERSION -> MINVERSION

Sergey Sharybin sergey.vfx at gmail.com
Sat Nov 30 19:58:07 CET 2019


This is a part of forward compatibility (ability to open newer files in
older Blender versions).

Most of the time opening newer files does what you would expect, but in
others there is a huge data loss. For example, you can not open 2.8x files
in 2.7x because older Blender versions are not aware of Collections, and
old Layers are not stored in .blend file.
You can, however, open 2.82 and 2.81 files in Blender 2.80 (there might be
minor differences in final render due to changes in shaders, but nothing
too drastic).

Hence the miniversion of 2.80.

P.S. As far as i remember, it is only used to communicate users that the
file is too new, and no extra logic on read/write is dependent on the

On Sat, Nov 30, 2019 at 2:26 PM Holger Machens <homac at strace.org> wrote:

> Hello folks!
> TLDR question:
>         What is the meaning of the attributes
>         minversion and minsubversion in DNA
>         struct FileGlobal?
>         (ref: source/makesdna/DNA_fileglobal_types.h)
> Too Long Explanation:
> I've just updated my Java API (Java .Blend) to reflect recent DNA
> changes in release 2.81-16. I've noticed, that BLENDER_MINVERSION still
> refers to release 2.80-0 while some changes in the DNA of release 2.81-x
> render older files incompatible on a binary level. For example some
> attributes of structs in the DNA exchanged their position or new
> attributes were added inbetween existing attributes, which also changes
> the relative position of other attributes in the data structure. Thus,
> you cannot just use a pointer to a C struct of version 2.81 to interpret
> the data of a C struct in version 2.80. But it would have been possible
> if attributes were only added to the end of a struct only for example.
> I looked in the source code and read the recent manual but didn't find
> an explanation regarding the meaning of MINVERSION and MINSUBVERSION.
> According to my observations, I have to assume, that files in the range
> from MINVERSION to VERSION are not meant to be binary compatible with
> each other. On the other hand, Blender can read and translate Blender
> files from much older versions than 2.80 for example. Thus, I wonder
> what purpose the MINVERSION in the global files structure has. Is it
> eventually going to be removed in future releases?
> Thanks in advance
>   Holger Machens
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> https://lists.blender.org/mailman/listinfo/bf-committers

With best regards, Sergey Sharybin

More information about the Bf-committers mailing list