ITK/How to make a Release

From KitwarePublic
Jump to navigationJump to search

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 is the person to do this because of his 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

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

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 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

v3.X

Version 3.X contains the Testing/Data Git submodule, so it is not as easy as using git archive. After tagging:

 VERSION=3.20.1
 PREFIX=InsightToolkit-${VERSION}
 git clone -b release git://itk.org/ITK.git $PREFIX
 cd $PREFIX
 git checkout v${VERSION}
 git submodule update --init
 find . -name '.git*' | xargs rm -rf
 cd ..
 tar -cf ${PREFIX}.tar $PREFIX
 gzip -9 ${PREFIX}.tar
 zip -r ${PREFIX}.zip $PREFIX

This should create two files,

 InsightToolkit-3.20.1.tar.gz

On Windows, repeat the same, but before cloning, do the following:

 git config --global core.autocrlf true

To ensure the line endings are CRLF.

Once you have the directory, right click and select the option "send to compressed file".

 InsightToolkit-3.20.1.zip

v4.X

Run the following after tagging, replacing the version desired

 VERSION=4.0.0
 PREFIX=InsightToolkit-${VERSION}
 git archive -o ${PREFIX}.tar.gz --prefix "${PREFIX}/" v${VERSION}
 git archive -o ${PREFIX}.zip --prefix "${PREFIX}/" v${VERSION}

That should produce files named

  InsightToolkit-4.0.0.tar.gz
  InsightToolkit-4.0.0.zip

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
  • 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 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

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.

Update the HTML Download page

Contact Niki Russell at Kitware in order to

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

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 Insight binary directory and run

./ChangedSince.csh StartDateOfRelease EndDateofRelease
For example, Release 2.0
./ChangedSince.csh "August 10, 2004" "February 4, 2005"

This will produce a file in @ITK_BIN_DIR@/Testing/Temporary/ChangedSince.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 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 MANTIS bug 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 CVS checkouts with the release tag, and build the toolki t in as many configuration as possible.



ITK: [Welcome | Site Map]