Difference between revisions of "Documentation/4.2/Developers/Versioning"
(Nightly -> 4.2) |
m |
||
Line 1: | Line 1: | ||
− | = How to create a Slicer package= | + | = How to create a Slicer package = |
+ | |||
== locally on your machine == | == locally on your machine == | ||
+ | |||
After Slicer correctly build and test, to create a binary package on mac/unix: | After Slicer correctly build and test, to create a binary package on mac/unix: | ||
+ | |||
$ cd Slicer-Superbuild/Slicer-build | $ cd Slicer-Superbuild/Slicer-build | ||
$ make package | $ 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 [http://nsis.sourceforge.net/Download NSIS] prior. | For Visual Studio on Windows, the inner Slicer (not superbuild) solution file contains a 'PACKAGE' project, just build it. You might have to install [http://nsis.sourceforge.net/Download 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. | 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 [http://slicer.cdash.org slicer.cdash.org] and [http://download.slicer.org download.slicer.org] to be available to the community. | CTest can automatically create a package and upload it on [http://slicer.cdash.org slicer.cdash.org] and [http://download.slicer.org download.slicer.org] to be available to the community. | ||
+ | |||
You need to create a script following the template [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/CMake/SlicerDashboardScript.TEMPLATE.cmake?view=markup Slicer/CMake/SlicerDashboardScript.TEMPLATE.cmake]. Change the following variables <code>WITH_PACKAGES</code> to <code>TRUE</code> and <code>SCRIPT_MODE</code> to <code>experimental</code> | You need to create a script following the template [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/CMake/SlicerDashboardScript.TEMPLATE.cmake?view=markup Slicer/CMake/SlicerDashboardScript.TEMPLATE.cmake]. Change the following variables <code>WITH_PACKAGES</code> to <code>TRUE</code> and <code>SCRIPT_MODE</code> to <code>experimental</code> | ||
Line 53: | Line 60: | ||
= To do when versioning = | = To do when versioning = | ||
+ | |||
== At feature freeze (~1 month before release)== | == At feature freeze (~1 month before release)== | ||
+ | |||
* Create Slicer-4.[X+1] branch in SlicerVTK | * Create Slicer-4.[X+1] branch in SlicerVTK | ||
** Make sure all commits are backported into VTK. | ** Make sure all commits are backported into VTK. | ||
Line 60: | Line 69: | ||
== 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) | ** And some html links in Welcome module (Modules/Loadable/SlicerWelcome/Resources/HTML) |
Revision as of 18:13, 1 November 2012
Home < Documentation < 4.2 < Developers < VersioningContents
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
- Create
Extensions-XYZ-Nightly
andExtensions-XYZ-Continuous
tracks on CDash
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)
- Update CLI XML description files
- 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