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 Git 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
git checkout master git pull
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
Note: At this time, Brad King and Luis Ibanez are the person to do this because of their trusted GPG key.
In the source tree that you just updated, use the command
git tag v4.0.0
where, of course you change v4.0.0 for the correct release number.
Push it to the repository
git push --tags origin master
Before tagging the ITKApps repository, make a commit that bumps the superbuild ITK version.
Update the release branch
Make note of the commit hash with the bump in CMakeList.txt version number. Then
git checkout release git reset --hard origin/release git merge <version bump hash> git push origin release git checkout master
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 currently done by Gaetan Lehmann.
Prepare tarballs
InsightToolkit tarball
Once the repository has been tagged, we use the following script in the repository to create the tarballs:
Utilities/Maintenance/SourceTarball.bash
InsightApplications tarball
Set the prefix
prefix=InsightApplications-4.1.1/
create the tar file with the command
git archive --format=tar --prefix=${prefix}/ --output=${prefix}.tar v4.1.1-apps
use the maximum compression with gzip
gzip -9 ${prefix}.tar
That should produce a file named
${prefix}.tar.gz
Create a zip file with
git archive --format=zip -9 --prefix=${prefix}/ --output=${prefix}.zip v4.1.1-apps
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
Generating Doxygen Documentation
- Run CMake in the binary build and enable BUILD_DOXYGEN
- Do Configure and Generate in CMake
- Go to the binary directory
- Type "make Documentation"
- Move into the directory Utilities/ ( cd Utilities/ )
- 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
Historical note: Before ITK 3.8, The documentation used to be generated in a directory called Documentation/Doxygen.
- In Public do:
- Copy documentation to: /projects/Insight/Doxygen
- Create a subdirectory Insight34-doxygen/Documentation/Doxygen
- The final directory will look like: /projects/Insight/Doxygen/Insight34-doxygen/Documentation/Doxygen
- and at that level copy the "html" directory and the InsightToolkit.tag file.
- Create symbolic link at: /projects/Insight/WWW/InsightWeb
- Create symbolic link at: /projects/Insight/WWW/InsightDocuments/Web
- Copy documentation to: /projects/Insight/Doxygen
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
- Brad King at Kitware
- Matt McCormick at Kitware
Using The New (2010) Interface
Go to this page
https://sourceforge.net/downloads/itk/itk/
and provide user name and password
Then
- Use the "Add Folder" button to create a folder for the release.
- Click on the folder to open it
- Use the "Add File" button to upload files. The interface allows you to select multiple files for simultaneous upload.
After uploading, make sure to check the hashes on the uploads. These can be shown with the "(i)" button next to the file.
Update the HTML Download page
Contact Communications at Kitware in order to
- Update the Download HTML page: http://www.itk.org/ITK/resources/software.html
- Produce a press release
Update the HTML Documentation page
Documentation.htm
Contact Niki Russell at Kitware in order to update the page:
http://www.itk.org/ITK/help/documentation.html
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 Release Notes in the Wiki
Add entry for next planned release
Delete the old entry and add a new entry in the scheduled releases page.
Update "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.
Update "What has Changed since previous release"
From a Linux system, cd into an ITK Git directory and run
git shortlog --topo-order --no-merges v4.0.0..v4.1.0
Delete the KWRobot time stamp commits.
Update Insight Journal
Contact Zack and request to do the following:
- Install new ITK version in the Insight Journal testing environment
- Update IJMacros.txt: Add the just released version of ITK
Update JIRA issue tracker
- Create a new version to make possible for users to report bug pertaining to that specific ITK release
- This is particularly important for being able to commit changes to the branch, since all change must have a bug number associated with it.
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 Git checkouts with the release tag, and build the toolki t in as many configuration as possible.