View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003231||Slicer4||Core: MRML||public||2013-07-17 10:45||2018-03-31 00:37|
|Target Version||Slicer 4.11.0||Fixed in Version|
|Summary||0003231: mrml should be versioned (and documented)|
The mrml tree is evolving dynamically. This makes it difficult to develop technology that interprets mrml files or mrb files. As this topic is of increasing relevance, it would be good to introduce versioning and documentation. A stable version would be a good target for developers.
I would like to introduce versioning with slicer 4.3 and to explore how much work would be required to add documentation describing the different sections of the mrml tree.
A versioned and documented mrml tree would allow to selectively extract information out of a scene, using a third party program. This will allow previews and web-based viewers.
|Tags||No tags attached.|
FYI MRML scene versioning was supported in Slicer3 and then dropped.
We should set a version number that is monotonically increasing when we knowingly add non-compatible change to MRML. This means that when old versions of slicer will not be able to load a newer scene correctly then this number should be incremented. When slicer tries to load a scene that has a newer version number than the version used to build it then there should be a warning.
This should at least be changed to use the version numbers that are defined by cmake and become #defines in the code. This would give us at least some idea which version of slicer was used to generate a particular mrml file.
@Alex do you know what I mean by this and are you able to implement it?
I think Slicer already has the macro to do this (or at least this is done in some extensions).
I recently did something similar, you can take a look here: https://github.com/QIICR/Slicer-SUVFactorCalculator/commit/357bf6cb241cb2972250c58e3361ba8be6bb1752
Questions: What defines Slicer version?
I suggest assigning a number based on the current release (so call this 4.4) and add the svn revision number for it (we are still using svn at the moment).
Then later we should only update the version of mrml when something actually changes in mrml that we know will break backward compatibility. I.e. it will be a manual process.
Added MRML scene version check and warning on scene load.
Alex, I tried latest nightly, and all that it has in mrml is
<MRML version="Slicer4.4.0" userTags="">
But where is the SVN revision tag, what we had in Slicer3?
Alex, I am not sure this issue is resolved.
Current version in the scene is still Slicer4.4.0. It would not make sense to change it now, while we are still using SVN. We should revisit for Slicer5 once we moved to github.
|2013-07-17 10:45||kikinis||New Issue|
|2013-07-17 10:45||kikinis||Status||new => assigned|
|2013-07-17 10:45||kikinis||Assigned To||=> alexy|
|2013-08-02 05:40||alexy||Target Version||Slicer 4.3.0 => Slicer 4.4.0|
|2013-09-29 15:03||fedorov||Note Added: 0010104|
|2014-03-07 06:17||pieper||Note Added: 0011325|
|2014-03-07 06:20||pieper||Note Added: 0011326|
|2014-04-15 12:52||pieper||Note Added: 0011593|
|2014-04-15 13:04||fedorov||Note Added: 0011595|
|2014-06-10 08:39||alexy||Note Added: 0012042|
|2014-06-10 08:41||alexy||Note Edited: 0012042|
|2014-06-10 10:09||pieper||Note Added: 0012043|
|2014-06-13 10:25||alexy||Note Added: 0012060|
|2014-06-13 10:25||alexy||Status||assigned => resolved|
|2014-07-22 19:28||kikinis||Status||resolved => closed|
|2014-07-22 19:28||kikinis||Resolution||open => fixed|
|2014-09-19 06:47||fedorov||Relationship added||related to 0003306|
|2014-09-19 06:57||fedorov||Note Added: 0012578|
|2014-09-19 07:00||fedorov||Note Added: 0012579|
|2014-09-19 07:00||fedorov||Status||closed => assigned|
|2014-09-25 12:49||jcfr||Target Version||Slicer 4.4.0 => Slicer 4.4.1|
|2015-09-09 08:28||jcfr||Target Version||Slicer 4.4.1 => Slicer 4.5.0-1|
|2015-11-02 11:27||jcfr||Target Version||Slicer 4.5.0-1 => Slicer 4.6.0|
|2016-10-12 14:33||jcfr||Target Version||Slicer 4.6.0 => Slicer 4.7.0|
|2017-09-27 13:27||lassoan||Target Version||Slicer 4.7.0 => Slicer 4.9.0|
|2017-09-27 13:27||lassoan||Note Added: 0015189|
|2018-03-31 00:37||jcfr||Target Version||Slicer 4.9.0 => Slicer 4.11.0|