Difference between revisions of "Documentation/4.1/Developers/Versioning"
(Prepend documentation/versioncheck template. See http://na-mic.org/Mantis/view.php?id=2887) |
|||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | <noinclude>{{documentation/versioncheck}}</noinclude> | ||
= How to create a Slicer package= | = How to create a Slicer package= | ||
== locally on your machine == | == locally on your machine == | ||
Line 57: | Line 58: | ||
== pre release & release == | == pre release & release == | ||
* Update modules documentation link in help section (loadable, scripted and cli) | * Update modules documentation link in help section (loadable, scripted and cli) | ||
+ | ** And some html links in Welcome module (Modules/Loadable/SlicerWelcome/Resources/HTML) | ||
* Release commit with message: "ENH: Slicer 4.X.Y" | * Release commit with message: "ENH: Slicer 4.X.Y" | ||
** In '''Slicer4/CMakeLists.txt''', update <code>Slicer_VERSION_MAJOR</code>, <code>Slicer_VERSION_MINOR</code>, <code>Slicer_VERSION_PATCH</code>. Uncomment and set <code>Slicer_VERSION_TWEAK</code> to 0, <code>Slicer_VERSION_RC</code>... | ** In '''Slicer4/CMakeLists.txt''', update <code>Slicer_VERSION_MAJOR</code>, <code>Slicer_VERSION_MINOR</code>, <code>Slicer_VERSION_PATCH</code>. Uncomment and set <code>Slicer_VERSION_TWEAK</code> to 0, <code>Slicer_VERSION_RC</code>... | ||
* commit with message: "ENH: Begin post-4.X.Y development" | * commit with message: "ENH: Begin post-4.X.Y development" | ||
** In '''Slicer4/CMakeLists.txt''', comment <code>Slicer_VERSION_TWEAK</code> so the next builds will contain the day of build. | ** In '''Slicer4/CMakeLists.txt''', comment <code>Slicer_VERSION_TWEAK</code> so the next builds will contain the day of build. | ||
+ | |||
== post release == | == post release == | ||
* Package machines | * Package machines | ||
Line 72: | Line 75: | ||
*** <code>cd DashboardScripts; ./factory-make-package.sh</code> | *** <code>cd DashboardScripts; ./factory-make-package.sh</code> | ||
*** make sure LEGACY CLIs is ON, EMSegment needs BSplineToDeformationField. | *** make sure LEGACY CLIs is ON, EMSegment needs BSplineToDeformationField. | ||
− | * | + | * Generate ChangeLog using [https://raw.github.com/cryos/avogadro/master/scripts/gitlog2changelog.py gitlog2changelog.py]. More details [http://blog.cryos.net/archives/202-Git-and-Automatic-ChangeLog-Generation.html here] . |
+ | * Update [[Release Details]] page using generated ChangeLog | ||
* In Mantis | * In Mantis | ||
** "Release" current target | ** "Release" current target | ||
** Create new target | ** Create new target | ||
** Check the "fixed in" fields | ** Check the "fixed in" fields | ||
+ | * Update more recent version on external links: | ||
+ | ** on slicer wikipedia article |
Latest revision as of 07:26, 14 June 2013
Home < Documentation < 4.1 < Developers < Versioning
For the latest Slicer documentation, visit the read-the-docs. |
Contents
How to create a Slicer package
locally on your machine
After Slicer correctly build and test, to create a binary package on mac/unix:
$ cd Slicer-Superbuild/Slicer-build $ make package
For Visual Studio on Windows, the inner Slicer (not superbuild) solution file contains a 'PACKAGE' project, just build it. You might have to install NSIS prior.
On Mac OS X, a 'dmg' file is generated, on unix it's a tar.gz archive and on Windows it's a exe installer.
== automatically expose it to the Slicer community
CTest can automatically create a package and upload it on slicer.cdash.org and download.slicer.org to be available to the community.
You need to create a script following the template Slicer/CMake/SlicerDashboardScript.TEMPLATE.cmake. Change the following variables WITH_PACKAGES
to TRUE
and SCRIPT_MODE
to experimental
Then you can run your script:
$ ctest -S /path/to/SlicerPackagecript.cmake -VV > /path/to/logs.txt 2>&1
Please note that the source and build directories should not be located in /usr. The libraries would be considered by the packaging mechanism as "system" libraries.
Slicer Package naming scheme
The following information is for Slicer maintainers only |
Slicer-<MAJOR_VERSION>.<MINOR_VERSION>.<PATCH_VERSION>[-rc{1|2|3...}][-<TWEAK_VERSION>][-<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.
Example 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
Page under construction. |
To do when versioning
At feature freeze (~1 month before release)
- Create Slicer-4.[X+1] branch in SlicerVTK
- Make sure all commits are backported into VTK.
- Start from official VTK release branch or trunk (not recommanded)
- Try slicer with no Slicer.ini
pre release & release
- Update modules documentation link in help section (loadable, scripted and cli)
- And some html links in Welcome module (Modules/Loadable/SlicerWelcome/Resources/HTML)
- Release commit with message: "ENH: Slicer 4.X.Y"
- In Slicer4/CMakeLists.txt, update
Slicer_VERSION_MAJOR
,Slicer_VERSION_MINOR
,Slicer_VERSION_PATCH
. Uncomment and setSlicer_VERSION_TWEAK
to 0,Slicer_VERSION_RC
...
- In Slicer4/CMakeLists.txt, update
- commit with message: "ENH: Begin post-4.X.Y development"
- In Slicer4/CMakeLists.txt, comment
Slicer_VERSION_TWEAK
so the next builds will contain the day of build.
- In Slicer4/CMakeLists.txt, comment
post release
- Package machines
- switch to branch (make sure at least you are on trunk otherwise)
- update source to release revision
cd Slicer; svn update -r19609
- delete build directory to force rebuild
cd Slicer-package; rm -rf *
- build, package and upload with cmake
cd DashboardScripts; ./factory-make-package.sh
- make sure LEGACY CLIs is ON, EMSegment needs BSplineToDeformationField.
- Generate ChangeLog using gitlog2changelog.py. More details here .
- Update Release Details page using generated ChangeLog
- In Mantis
- "Release" current target
- Create new target
- Check the "fixed in" fields
- Update more recent version on external links:
- on slicer wikipedia article