Documentation/4.1/Developers/Versioning

From Slicer Wiki
Jump to: navigation, search
Home < Documentation < 4.1 < Developers < Versioning

Documentation


Package naming scheme

Slicer-<MAJOR_VERSION>.<MINOR_VERSION>.<BUILD_VERSION>-<[svn<REV>[-dirty]|rc{1|2|3...}|(null)]>-<DATE>-<ARCH>-<PLATFORM>

We can distinguish between two stages:

  • Development: The suffix svn<REV> allows to identify the revision associated with the current package. The -dirty prefix indicates if the package has been generated from a locally modified source tree.
  • Release: The optional suffix rc{1|2|3|...} allows to identify the different release candidates leading to a final release.

Example of linux packages chronologically ordered:

[   date   ] File name                                      [  build type ] 
[2011-12-09] Slicer-4.0.0-linux-amd64                       [final release]
[2011-12-10] Slicer-4.0.1-svn18872-2011-12-10-linux-amd64   [ development ]
[2011-12-11] Slicer-4.0.1-svn18883-2011-12-11-linux-amd64   [ development ]
[2011-12-12] Slicer-4.0.1-svn18894-2011-12-12-linux-amd64   [ development ]
...
[2011-12-31] Slicer-4.0.1-svn18894-2011-12-12-linux-amd64   [ development ]
[2011-01-01] Slicer-4.0.2-rc1-linux-amd64                   [   release   ]
[2011-01-02] Slicer-4.0.1-svn19010-2012-01-02-linux-amd64   [ development ]
[2011-01-03] Slicer-4.0.1-svn19011-2012-01-03-linux-amd64   [ development ]
[2011-01-04] Slicer-4.0.2-rc2-linux-amd64                   [   release   ]
[2011-01-05] Slicer-4.0.1-svn19021-2012-01-05-linux-amd64   [ development ]
...
[2011-01-08] Slicer-4.0.2-rc3-linux-amd64                   [   release   ]
[2011-01-09] Slicer-4.0.1-svn19023-2012-01-09-linux-amd64   [ development ]
[2011-01-10] Slicer-4.0.2-linux-amd64                       [final release]
[2011-01-11] Slicer-4.0.3-svn19028-2012-01-10-linux-amd64   [ development ]
[2011-01-12] Slicer-4.0.3-svn19035-2012-01-11-linux-amd64   [ development ]

CMake example:

[   date   ] File name                                      [ build type  ] 
[2011-12-09] Slicer-4.0.0-linux-amd64                       [final release]
[2011-12-09] Slicer-4.0.0-2011-12-09-linux-amd64            [ development ]
[2011-12-10] Slicer-4.0.0-2011-12-10-linux-amd64            [ development ]
[2011-12-11] Slicer-4.0.0-2011-12-11-linux-amd64            [ development ]
[2011-12-19] Slicer-4.0.0-2011-12-19-linux-amd64            [ development ]
[2011-12-20] Slicer-4.0.1-rc1-linux-amd64                   [   release   ]
[2011-12-21] Slicer-4.0.1-rc1-linux-amd64                   [ development ]
[2011-12-22] Slicer-4.0.1-rc1-linux-amd64                   [ development ]
...
[2011-12-25] Slicer-4.0.1-rc1-linux-amd64                   [ development ]
[2011-12-26] Slicer-4.0.1-rc2-linux-amd64                   [   release   ]
[2011-12-27] Slicer-4.0.1-rc2-linux-amd64                   [ development ]
...
[2011-12-29] Slicer-4.0.1-rc2-linux-amd64                   [ development ]
[2011-12-30] Slicer-4.0.1-rc3-linux-amd64                   [   release   ]
[2011-12-31] Slicer-4.0.1-rc3-linux-amd64                   [ development ]
...
[2012-01-02] Slicer-4.0.1-rc3-linux-amd64                   [ development ]
[2012-01-03] Slicer-4.0.1-linux-amd64                       [final release]
[2012-01-03] Slicer-4.0.1-2011-12-19-linux-amd64            [ development ]
[2012-01-04] Slicer-4.0.1-2011-12-19-linux-amd64            [ development ]
Optionally, a tweak version can happen:
[2012-01-12] Slicer-4.0.1.1-linux-amd64                     [final release]
...
[2011-04-10] Slicer-4.0.2-rc1-linux-amd64                   [   release   ]
...

Notes/problems:

- no date to differentiate release candidates from each others 
- release packages are not nightly builds, but manual builds

Extension package - Naming scheme