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

From Slicer Wiki
Jump to: navigation, search
Line 12: Line 12:
 
= Package naming scheme =
 
= Package naming scheme =
  
<pre>Slicer-&lt;MAJOR_VERSION&gt;.&lt;MINOR_VERSION&gt;.&lt;BUILD_VERSION&gt;-&lt;[svn&lt;REV&gt;[-dirty]|rc{1|2|3...}|(null)]&gt;-&lt;DATE&gt;-&lt;ARCH&gt;-&lt;PLATFORM&gt;</pre>
+
<pre>Slicer-&lt;MAJOR_VERSION&gt;.&lt;MINOR_VERSION&gt;.&lt;PATCH_VERSION&gt;-&lt;TWEAK_VERSION&gt;[-rc{1|2|3...}][-&lt;DATE&gt;][-svn&lt;REV&gt;][-dirty]-&lt;ARCH&gt;-&lt;PLATFORM&gt;</pre>
  
We can distinguish between two stages:
+
There are 2 types of builds, releases and developments:
* Development: The suffix '''svn&lt;REV&gt;''' 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
 +
: Special builds made on a given revision (e.g. r19033: "ENH: Slicer 4.0.1")
 +
: Don't contain date or revision number.
 +
: The optional suffix '''-rc{1|2|3|...}''' identifies the release candidates leading to a final release.
 +
: Eventually, a tweak number can be added (e.g. 4.0.1-1)
 +
; Development
 +
: Nightly or experimental builds
 +
: Contains suffixes after the major.minor.patch version
 +
: The suffix '''svn&lt;REV&gt;''' 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.
+
Examples of linux 64bits packages:
 
+
  [              File name              ][  date  ][ build type ][                      note                    ]
Example of linux packages chronologically ordered:
+
  Slicer-4.0.0-linux-amd64                 2011-11-24    release    release of Slicer 4.0.0
  [  date  ] File name                                      [ build type ]  
+
  Slicer-4.0.0-2011-12-10-linux-amd64     2011-11-25  development  nightly build after 4.0.0
  [2011-12-09] Slicer-4.0.0-linux-amd64                       [final release]
+
  Slicer-4.0.1-rc1-linux-amd64             2012-01-04    release    release candidate 1 of Slicer 4.0.1
[2011-12-10] Slicer-4.0.1-svn18872-2011-12-10-linux-amd64  [ development ]
+
  Slicer-4.0.1-rc1-2012-01-05-linux-amd64  2012-01-05 development  nightly build after the release candidate
  [2011-12-11] Slicer-4.0.1-svn18883-2011-12-11-linux-amd64   [ development ]
+
  Slicer-4.0.1-rc2-linux-amd64             2012-01-11    release    release candidate 2 of Slicer 4.0.1
[2011-12-12] Slicer-4.0.1-svn18894-2011-12-12-linux-amd64  [ development ]
+
  Slicer-4.0.1-rc2-2012-01-12-linux-amd64  2012-01-12 development  nightly build after the release candidate
  ...
+
  Slicer-4.0.1-linux-amd64                 2012-01-14    release    release of Slicer 4.0.1
[2011-12-31] Slicer-4.0.1-svn18894-2011-12-12-linux-amd64   [ development ]
+
  Slicer-4.0.1-2012-01-20-linux-amd64     2012-01-20 development   nightly build after 4.0.1
[2011-01-01] Slicer-4.0.2-rc1-linux-amd64                  [  release   ]
+
  Slicer-4.0.1-1-linux-amd64               2012-01-28    release    tweak version 1 of Slicer 4.0.1
[2011-01-02] Slicer-4.0.1-svn19010-2012-01-02-linux-amd64  [ development ]
+
  Slicer-4.0.2-linux.amd64                 2012-06-05    release    release of Slicer 4.0.2
  [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 =
 
= Extension package - Naming scheme =

Revision as of 20:39, 7 January 2012

Home < Documentation < 4.1 < Developers < Versioning

Documentation


Package naming scheme

Slicer-<MAJOR_VERSION>.<MINOR_VERSION>.<PATCH_VERSION>-<TWEAK_VERSION>[-rc{1|2|3...}][-<DATE>][-svn<REV>][-dirty]-<ARCH>-<PLATFORM>

There are 2 types of builds, releases and developments:

Release
Special builds made on a given revision (e.g. r19033: "ENH: Slicer 4.0.1")
Don't contain date or revision number.
The optional suffix -rc{1|2|3|...} identifies the release candidates leading to a final release.
Eventually, a tweak number can be added (e.g. 4.0.1-1)
Development
Nightly or experimental builds
Contains suffixes after the major.minor.patch version
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.

Examples of linux 64bits packages:

[              File name               ][   date   ][ build type ][                      note                     ]
Slicer-4.0.0-linux-amd64                 2011-11-24    release     release of Slicer 4.0.0
Slicer-4.0.0-2011-12-10-linux-amd64      2011-11-25  development   nightly build after 4.0.0
Slicer-4.0.1-rc1-linux-amd64             2012-01-04    release     release candidate 1 of Slicer 4.0.1
Slicer-4.0.1-rc1-2012-01-05-linux-amd64  2012-01-05  development   nightly build after the release candidate
Slicer-4.0.1-rc2-linux-amd64             2012-01-11    release     release candidate 2 of Slicer 4.0.1
Slicer-4.0.1-rc2-2012-01-12-linux-amd64  2012-01-12  development   nightly build after the release candidate
Slicer-4.0.1-linux-amd64                 2012-01-14    release     release of Slicer 4.0.1
Slicer-4.0.1-2012-01-20-linux-amd64      2012-01-20  development   nightly build after 4.0.1
Slicer-4.0.1-1-linux-amd64               2012-01-28    release     tweak version 1 of Slicer 4.0.1
Slicer-4.0.2-linux.amd64                 2012-06-05    release     release of Slicer 4.0.2

Extension package - Naming scheme