ITK/How to make a Release
How To Make an ITK Release
This page describes the sequence of steps required for making an ITK release
Update CMake version required in CMakeList.txt
edit CMakeLists.txt and find the variables
CMAKE_MINIMUM_REQUIRED
and set it to the latest stable release of CMake.
Update Version number in CMakeList.txt
Edit CMakeLists.txt and find the variables
- SET(ITK_VERSION_MAJOR "2")
- SET(ITK_VERSION_MINOR "2")
- SET(ITK_VERSION_PATCH "0")
and update them according to the current release number.
Commit this change to the CVS repository.
Tag the Insight repository
Tagging the repository should only be done with the agreement of the developers after a tcon.
Update your repository with
use the commmand
cvs -q update -d -P -A
to make sure that your source tree is updated. This must correspond to a source tree that has been fully tested in the Dashboard.
Tag with a branch point reference
In the source tree that you just updated, use the command
cvs tag ITK-2-2-bp
where, of course you change -2-2- for the correct release number.
This tag before the branching point serves as a reference for future merges.
Tag and branch
In the same source tree use the cvs command
cvs tag -b ITK-2-2
where, again, of course, you replace -2-2 with the appropriate release number.
The -b option will create a branch.
Historical Note
During releases 3.0 to 3.4 we used to do also a post-branch tag. This practice has now been deemed unnecessary and it is no longer recommended. The two tags described above will be sufficient for maintaining the branch and having a reference point before the branch.
Tag the InsightApplications repository
The same sequence of steps used for Insight must be used for tagging and branching the module of InsightApplications
Tag CableSwig
CableSwig must be tagged with the same tag used for the ITK release. This is usually done by Brad King at Kitware.
Prepare tarballs
Once the repository has been tagged, we CVS export its content using the tag in order to create .tar.gz and .zip files.
CVS Exporting
CVS login as anonymous
Create an empty directory, the use the CVS command for login
cvs -d :pserver:anonymous@www.itk.org:/cvsroot/Insight login
use "insight" as password
CVS checking out Insight
Then use the export CVS command with the tag of that release
cvs -d :pserver:anonymous@www.itk.org:/cvsroot/Insight checkout -r ITK-2-2 -d InsightToolkit-2.2.0 Insight
- the option -r defines the tag to be used for checked out
- the option -d creates a directory with a particular name. This directory name should match the number of the release
CVS checking out InsightApplications
Export also InsightApplications with the command
cvs -d :pserver:anonymous@www.itk.org:/cvsroot/Insight checkout -r ITK-2-2 -d InsightApplications-2.2.0 InsightApplications
CVS checking out CableSwig
Checkout CableSwig with the command
cvs -d :pserver:anonymous@www.itk.org:/cvsroot/CableSwig checkout -r ITK-2-2 -d CableSwig-ITK-2.2.0 CableSwig
Create Tarballs
InsightToolkit tarball
create the tar file with the command
tar -c -f InsightToolkit-2.2.0.tar InsightToolkit-2.2.0
use the maximum compression with gzip
gzip -9 InsightToolkit-2.2.0.tar
That should produce a file named
InsightToolkit-2.2.0.tar.gz
InsightApplications tarball
create the tar file with the command
tar -c -f InsightApplications-2.2.0.tar InsightApplications-2.2.0
use the maximum compression with gzip
gzip -9 InsightApplications-2.2.0.tar
That should produce a file named
InsightApplications-2.2.0.tar.gz
CableSwig tarball
create the tar file with the command
tar -c -f CableSwig-ITK-2.2.0.tar CableSwig-ITK-2.2.0
use the maximum compression with gzip
gzip -9 CableSwig-ITK-2.2.0.tar
That should produce a file named
CableSwig-ITK-2.2.0.tar.gz
Creating Zip files on Windows
Follow the above instructions for exporting the source files in a Windows machine. This can be done with a Cygwin that has been configured at installation-time for using a DOS file system, not a UNIX filesystem.
Once you have both directories: Insight and InsightApplications, right click on each of them and select the option "send to compressed file".
Generating Doxygen Documentation
- Run CMake in the binary build and enable BUILD_DOXYGEN
- Do Configure and Generate in CMake
- Go to the binary directory
- Create the directory ./Documentation
- Create the directory ./Documentation/Doxygen
- Type "doxygen doxygen.config"
- Move into the directory Documentation ( cd Documentation )
- Rename the Doxygen directory as DoxygenInsightToolkit-3.4.0 (of course with the appropriate release number)
- Tar it with the command: tar -cf DoxygenInsightToolkit-3.4.0.tar DoxygenInsightToolkit-3.4.0
- Compress it with the command: gzip -9 DoxygenInsightToolkit-3.4.0.tar
Copy the files to the FTP directory in public.kitware.com
scp InsightToolkit-2.4.0.tar.gz kitware@public:/projects/Insight/WWW/InsightDocuments/Web/files/v2.4 scp InsightApplications-2.4.0.tar.gz kitware@public:/projects/Insight/WWW/InsightDocuments/Web/files/v2.4 scp InsightToolkit-2.4.0.zip kitware@public:/projects/Insight/WWW/InsightDocuments/Web/files/v2.4 scp InsightApplications-2.4.0.zip kitware@public:/projects/Insight/WWW/InsightDocuments/Web/files/v2.4 scp DoxygenInsightToolkit-2.4.0.tar.gz kitware@public:/projects/Insight/WWW/InsightDocuments/Web/files/v2.4 scp DoxygenInsightToolkit-2.4.0.zip kitware@public:/projects/Insight/WWW/InsightDocuments/Web/files/v2.4 scp CableSwig-2.4.0.tar.gz kitware@public:/projects/Insight/WWW/InsightDocuments/Web/files/v2.4 scp CableSwig-2.4.0.zip kitware@public:/projects/Insight/WWW/InsightDocuments/Web/files/v2.4
Copy the files to SourceForge
This is to be done only by
- Ken Martin at Kitware
- Luis Ibanez at Kitware
Update the HTML Download page
Go to your checkout of InsightDocuments
and to the subdirectory Web/HTML
cvs update it
edit the file
Download.htm
Update the HTML Documentation page
Documentation.htm
Go to your checkout of InsightDocuments
and to the subdirectory Web/HTML
cvs update it
edit the file
Documentation.htm
The content should be updated to point to the Doxygen documentation of the current release
Installing Doxygen documentation in public.kitware.com
The DoxygenInsightToolkit-X.X.X.tar.zip should be expanded in public.kitware.com in such a way that the Doxygen documentation becomes available at
http://www.itk.org/Doxygen34/html/index.html
see directory: /projects/Insight/Doxygen
Once installed the documentation should be in
/projects/Insight/Doxygen/Insight32-doxygen/Documentation/Doxygen
(with the appropriate release number...)
Create symbolic link in the directory:
/projects/Insight/WWW/InsightDocuments/Web
The link will look like:
Doxygen34 -> ../../../Doxygen/Insight34-doxygen/Documentation/Doxygen//
Update the "What's New in Release x.x" Wiki Page
From a Linux system, cd into an Insight binary directory and run
./NewSince.csh StartDateOfRelease EndDateofRelease
For example, Release 2.0 ./NewSince.csh "August 10, 2004" "February 4, 2005"
This will produce a file in @ITK_BIN_DIR@/Testing/Temporary/NewSince.txt that can be pasted into the Wiki page ITK_RELEASE_X_X. Update the main ITK Wiki page to include a link to this new page.
Further Testing
The purpose of this testing is to replicate the experience that a user may have when trying the new release.
This means that a number of ITK developers should download the tarballs or do CVS checkouts with the release tag, and build the toolki t in as many configuration as possible.