Difference between revisions of "Documentation/4.1/Developers/Versioning"

From Slicer Wiki
Jump to: navigation, search
Line 20: Line 20:
  
 
Example of linux packages chronologically ordered:
 
Example of linux packages chronologically ordered:
 +
[  date  ] File name                                      [  build type ]
 
  [2011-12-09] Slicer-4.0.0-linux-amd64                      [final release]
 
  [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-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-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-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-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-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-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-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-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-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-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-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-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-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]
+
  [2011-01-12] Slicer-4.0.3-svn19035-2012-01-11-linux-amd64  [ development ]
  
* Commit messages, example to move from 4.0.1 to 4.0.2
+
CMake example:
** Day of a release candidate:
+
[  date  ] File name                                      [ build type  ]
  ENH: Slicer 4.0.2 rc1
+
[2011-12-09] Slicer-4.0.0-linux-amd64                      [final release]
CMakeLists change:
+
[2011-12-09] Slicer-4.0.0-2011-12-09-linux-amd64            [ development ]
  set(Slicer_PATCH_VERSION "2-rc2")
+
[2011-12-10] Slicer-4.0.0-2011-12-10-linux-amd64            [ development ]
** Day after a release candidate:
+
[2011-12-11] Slicer-4.0.0-2011-12-11-linux-amd64            [ development ]
  ENH: Slicer 4.0.2 WIP
+
[2011-12-19] Slicer-4.0.0-2011-12-19-linux-amd64            [ development ]
CMakeLists change:
+
[2011-12-20] Slicer-4.0.1-rc1-linux-amd64                  [  release  ]
  set(Slicer_PATCH_VERSION "1-${Slicer_BUILDDATE}")
+
[2011-12-21] Slicer-4.0.1-rc1-linux-amd64                  [ development ]
** Day of a final release:
+
[2011-12-22] Slicer-4.0.1-rc1-linux-amd64                  [ development ]
  ENH: Slicer 4.0.2
+
...
CMakeLists change:
+
[2011-12-25] Slicer-4.0.1-rc1-linux-amd64                  [ development ]
  set(Slicer_PATCH_VERSION "2")
+
[2011-12-26] Slicer-4.0.1-rc2-linux-amd64                  [  release   ]
** Day after a final release:
+
  [2011-12-27] Slicer-4.0.1-rc2-linux-amd64                  [ development ]
  ENH: Slicer 4.0.3
+
...
CMakeLists change:
+
  [2011-12-29] Slicer-4.0.1-rc2-linux-amd64                  [ development ]
  set(Slicer_PATCH_VERSION "3-${Slicer_BUILDDATE}")
+
[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 =
 
= Extension package - Naming scheme =

Revision as of 19:30, 5 December 2011

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