ITK/How to make a Release: Difference between revisions

From KitwarePublic
< ITK
Jump to navigationJump to search
Line 17: Line 17:
to make sure that your source tree is updated. This must correspond
to make sure that your source tree is updated. This must correspond
to a source tree that has been fully tested in the Dashboard.
to a source tree that has been fully tested in the Dashboard.
When tagging a bugfix release on the ''release'' branch, make sure to bump the ''ITK_VERSION_PATCH'' variable in the top level ''CMakeLists.txt'' before tagging.  When tagging a feature release, make sure to bump the ''ITK_VERSION_MINOR'' version on the ''master'' branch after tagging.


=== Tag with a branch point reference ===
=== Tag with a branch point reference ===
Line 48: Line 50:


This will not create a new commit, only move the release branch to the tag, i.e. it will be fast forward.
This will not create a new commit, only move the release branch to the tag, i.e. it will be fast forward.


== Update Version number in CMakeList.txt ==
== Update Version number in CMakeList.txt ==

Revision as of 13:52, 21 July 2014

How To Make an ITK Release

This page describes the sequence of steps required for making an ITK release


Tag the ITK 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.

When tagging a bugfix release on the release branch, make sure to bump the ITK_VERSION_PATCH variable in the top level CMakeLists.txt before tagging. When tagging a feature release, make sure to bump the ITK_VERSION_MINOR version on the master branch after tagging.

Tag with a branch point reference

Note: At this time, Brad King and Matt McCormick 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 -m "ITK 4.5-rc03" -s v4.5rc03 f9d99ca3ad00116393c4e2ce899beb00695ebb24


where, of course you change v4.5rc03 for the correct release number and the hash to the correct commit.

Push it to the repository

 git push origin v4.5rc03

Before tagging the ITKApps repository, make a commit that bumps the superbuild ITK tag to this release.

 git tag -m "ITK 4.5.0 Applications" -s v4.5.0-apps 2f012cb96715b59c63c9ee66022f398e236b04bd

Update the release branch

After the tag for the release. Perform a fast-forward merge of master into release:

 git checkout release
 git reset --hard origin/release
 git merge --ff-only <version tag>
 git push origin release
 git checkout master

This will not create a new commit, only move the release branch to the tag, i.e. it will be fast forward.

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

The same sequence of steps used for Insight must be used for tagging of ITKApps.

Mark the release as resolved on the issues tracker

Archive ExternalData on midas3.kitware.com

Run the script

 ./Utilities/Maintenance/ArchiveTestingData.py

to upload the testing data from a local store on the ITK http://midas3.kitware.com/midas/ and http://slicer.kitware.com/midas3/ Community.

This script requires that pydas is installed.

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

  tag=$(git describe)
  prefix=InsightApplications-4.1.1

create the tar file with the command

  git archive --format=tar --prefix=${prefix}/ --output=${prefix}.tar ${tag}

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 ${tag}

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   InsightSoftwareGuide-4.5.0.pdf  kitware@public:/projects/Insight/WWW/InsightDocuments/Web/files/v4.5
 ssh kitware@public
 cd /projects/Insight/WWW
 rm ItkSoftwareGuide.pdf
 ln -s files/v4.5/InsightSoftwareGuide-4.5.0.pdf ItkSoftwareGuide.pdf

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
  • Brad Lowekamp at NLM

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 HTML Documentation page

Documentation.htm

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

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 the Releases page

Add the "What's New" and "What's Changed" entries to the Releases page.

Update "What's New in Release x.x" Wiki Page

Update this web-page with the e-mail sent to the ITK mailing indicating the notable changes and other important information about the release.

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 releasef
    • Create the next release target milestone with Administration -> ITK -> Versions -> Add
    • Release the current release milestone with Agile -> Classic ... -> Right click the release on the left -> Release

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 toolkit in as many configuration as possible.



ITK: [Welcome | Site Map]