As we change aspects of the tool, we will sooner or later run into the problem of the data structure changing, and old exported projects not loading. This needs to be avoided.
I propose we have a versioning system, and we write routines to update data files at each level. For example, suppose we call the current data files version 0, and make two successive changes to the data structure, yielding further versions 1 and 2. Then we could write functions update0to1 and update1to2, through which we would pass the input data files which are not of the latest version. Then each time we change something, we just have to write one more function.
As we change aspects of the tool, we will sooner or later run into the problem of the data structure changing, and old exported projects not loading. This needs to be avoided.
I propose we have a versioning system, and we write routines to update data files at each level. For example, suppose we call the current data files version 0, and make two successive changes to the data structure, yielding further versions 1 and 2. Then we could write functions
update0to1
andupdate1to2
, through which we would pass the input data files which are not of the latest version. Then each time we change something, we just have to write one more function.