Page MenuHomePhabricator

SceneIORewrite: Improve Version stability
Closed, WontfixPublic


Loading scenes that were saved with previous releases (of MITK) creates issues regularly. We should come up with ideas on how to improve stability.

Currently, interpretation of properties changes, e.g. re-definition or a property value from int to float, or renaming a property. These changes are welcome since properties are still not named regularly. However, this creates complications with “old” scene files because all of a sudden, visualization is different or data is interpreted differently. This creates frustration with users!

Ideas welcome. Basically we would need to define a canon of reference scenes that are created and saved for each release. All of those files from previous releases would need to be loaded with the current release, and we’d have to (manually?) verify that they appear equal. If there are differences, readers must be enhanced with fallback behavior or at least warnings and errors..
(the above is just a very initial idea, but one of the most pressing issues that I hear of)

Related Objects

Event Timeline

This one is a potential Elephant.
Versioning on a scene File level is pretty easy. as the old files are already versioned (i.e. contain a version number), and new versions should be implemented in new source files. We can than write a simple selection routine based on the detected index files.

On a file level however, we would have to deal with a completely new concept. We might be able to achieve something sensible if we register new versions of new reader/writers with a higher priority and try to detect whether the new version cannot read the old file. In that case we fall back to the writer with the second highest priority and so on.

The idea regarding testing are very sensible though and we should probably couple version iteration to these tests.

Hi Keno,
we currently have the case, that the old project files, that we have saved, are not compatible with the ones from 2015.05.

Line width property has changed from float to int. This could be easily be fixed in code by looking for a int property and in case there is no int then look for a float as a fall-back.

A bit more worse is the color map property of an image. If we load an old project file containing an image the image is colored as "Legacy Rainbow Color" even thoug the Grayscale item is marked under DataManager/<node>/Colormap.
After switching to grayscale again visualization is fixed and after saving that file loading works as expected again.

We are also experiencing additional problems, that I have to dig into more deeply toi tell where they come from. The symptoms though are, that the topology is totaly destroyed. And the loading tells, that the zip file is corrupt because a file cannot be found. So I guess the cause is during saving but the console doesn't say anything. Once again, I will dig into this.

Thank you in advance and keep up the great work!
We really appreaciate it!

kislinsk claimed this task.
kislinsk added a subscriber: kislinsk.
This task was automatically closed because it wasn't updated at least since July 2016 (over 2 years). Please re-open this task if you think that it is still relevant. This most probably means that you will resolve it.