ITK/Release Schedule: Difference between revisions

From KitwarePublic
< ITK
Jump to navigationJump to search
No edit summary
Line 1: Line 1:
The next release is 3.20 scheduled for July 15 2010.
The next release is 4.1 scheduled for March 1st, 2012.


== Release Life Cycle ==
== Release Life Cycle ==
Line 17: Line 17:
** Valgrind reports
** Valgrind reports


=== CVS Tagging ===
=== RC process ===


The repository is tagged by using two tags, one for the reference, and another for the branch.
* No new features should merged during the feature freeze, i.e. ''ENH:'' commits, although they can be preparred in Gerrit.
* Release candidates (RC's) will be tagged weekly.
* RC's will be tagged after dashboard examination and discussion at the Friday TCon.
* The repository will be hard frozen to only allow merging by gatekeepers on Wednesday evening before the dashboards start.  The freeze will be released after tagging.
* For the final RC, only gatekeeper merges will occur.


=== Posting Tarballs ===
=== Posting Tarballs ===
Line 26: Line 30:
* Tarballs are linked from the ITK Download
* Tarballs are linked from the ITK Download


== Release 3.20 Schedule ==
== Release 4.1 Schedule ==


{| border="1"
{| border="1"
Line 32: Line 36:
! Release Number !! Start Date !! End Date
! Release Number !! Start Date !! End Date
|-
|-
| Bug triage || May 2010 || May 5 2010
| RC Cycles || February 2012 || February 24 2012
|-
|-
| CVS Tagging || July 14 2010 || July 14, 2010
| Testing tarballs || February 29 2012 || February 29 2012
|-
|-
| Testing tarballs || July 15 2010 || July 15 2010
| Posting tarballs || March 1 2012 || March 1 2012
|-
| Posting tarballs || July 15 2010 || July 15 2010
|}
|}


=== Code Coverage Campaign ===
== Release 4.2 Schedule ==
 
* Gabe Hart (Kitware) worked on several of the ITK files with the Lowest code coverage and raised their code coverage above 80%, of course uncovering bugs and design flaws in the process.
 
=== Valgrind Hunting Campaign ===
 
* Sophie Chen (Kitware ) worked on removing five (out of the 33 valgrind errors in ITK). We have since, lost the Nightly Valgrind builds, so this needs to be restored.
 
== Release 3.22 Schedule ==


{| border="1"
{| border="1"
Line 55: Line 49:
! Release Number !! Start Date !! End Date
! Release Number !! Start Date !! End Date
|-
|-
| Bug triage || Oct 1 2010 || Oct 5 2010
| RC Cycles || May 30 2012 || June 1 2012
|-
|-
| CVS Tagging || Oct 14 2010 || Oct 14, 2010
| Testing tarballs || June 6 2012 || June 6 2012
|-
|-
| Testing tarballs || Oct 15 2010 || Oct 15 2010
| Posting tarballs || June 7 2012 || June 7 2012
|-
| Posting tarballs || Oct 15 2010 || Oct 15 2010
|}
|}


== Check-list for Moving Code from IJ to Review and from Review ==
== Check-list for Moving Code from IJ to Gerrit and from Gerrit ==
 
=== For IJ Articles To Gerrit ===


=== For IJ Articles To Review ===
* Responsible developer should add a review '''before''' moving into local copy of Gerrit. Please provide authors with feedback regarding changes that were made to conform to ITK style/documentation etc.
* Responsible developer should add a review '''before''' moving into local copy of Review. Please provide authors with feedback regarding changes that were made to conform to ITK style/documentation etc.


=== For Adding Images to Input or Baseline ===
=== For Adding Images to Input or Baseline ===
Line 74: Line 67:
** The source tree is not an image database, but a source code repository.
** The source tree is not an image database, but a source code repository.
** Adding an image larger than 50Kb should be justified by a discussion in the Developers list
** Adding an image larger than 50Kb should be justified by a discussion in the Developers list
** Make sure that you use the "cvs add -kb" option when adding binary files to the CVS repository.
* Regression images should not use Analyze format unless the test is for the AnalyzeImageIO and related classes.
* Regression images should not use Analyze format unless the test is for the AnalyzeImageIO and related classes.
* Images should use non-trivial Metadata.
* Images should use non-trivial Metadata.

Revision as of 16:17, 17 February 2012

The next release is 4.1 scheduled for March 1st, 2012.

Release Life Cycle

Last period for adding classes and features

  • New classes will be selected from good reviews from the Insight Journal
  • New features and new methods can be added during this period.

Feature Freeze

  • Increase code coverage
    • address any UNTESTED files
    • address files with code coverage lower than 80%
  • Address Run-time memory issues
    • Purify reports
    • Valgrind reports

RC process

  • No new features should merged during the feature freeze, i.e. ENH: commits, although they can be preparred in Gerrit.
  • Release candidates (RC's) will be tagged weekly.
  • RC's will be tagged after dashboard examination and discussion at the Friday TCon.
  • The repository will be hard frozen to only allow merging by gatekeepers on Wednesday evening before the dashboards start. The freeze will be released after tagging.
  • For the final RC, only gatekeeper merges will occur.

Posting Tarballs

  • Tarballs are posted to SourceForge
  • Tarballs are linked from the ITK Download

Release 4.1 Schedule

Release Number Start Date End Date
RC Cycles February 1 2012 February 24 2012
Testing tarballs February 29 2012 February 29 2012
Posting tarballs March 1 2012 March 1 2012

Release 4.2 Schedule

Release Number Start Date End Date
RC Cycles May 30 2012 June 1 2012
Testing tarballs June 6 2012 June 6 2012
Posting tarballs June 7 2012 June 7 2012

Check-list for Moving Code from IJ to Gerrit and from Gerrit

For IJ Articles To Gerrit

  • Responsible developer should add a review before moving into local copy of Gerrit. Please provide authors with feedback regarding changes that were made to conform to ITK style/documentation etc.

For Adding Images to Input or Baseline

  • Images should be SMALL.
    • The source tree is not an image database, but a source code repository.
    • Adding an image larger than 50Kb should be justified by a discussion in the Developers list
  • Regression images should not use Analyze format unless the test is for the AnalyzeImageIO and related classes.
  • Images should use non-trivial Metadata.
    • Origin should be different form zeros
    • Spacing should be different from ones, and it should be anisotropic
    • Direction should be different from Identity

For Moving Code From Review

  • At least one independent (other than contributor) should sign off on the API
  • Coverage should be as close to 100% as possible.
    • and never lower than 90%.
    • For example, itkTransformIOBase.cxx is only at 63% coverage. Should be easily fixed by adding a Print() to one of the tests.

For All

  • Check all comments for proper English
  • Should pass KWStyle. IJ articles should be checked with KWStyle before checking into repository.
  • Should pass PrintSelf. IJ articles should pass PrintSelf check before checking into repository.
  • ITK_EXPORT should appear in each class definition. This triggers the PrintSelf checker.
  • Replace itkGetMacro with itkGetConstMacro.
  • Header file should contain Insight Journal citation
    • Using the "handle" link.
  • Use vcl verions of all transcendental functions.
    • For example, itkGaborKernelFunction used sin() and cos() rather than vcl_sin() and vcl_cos().
  • Progress should be present for all filters. Use itk::SimplerFilterWatcher to exercise progress and PrintSelfs.
  • When appropriate, class should handle image directions. Tests should use non-default values for origin, spacing and dimension.
    • GaborImageSource did not provide methods to set/get directions.
  • Regression tests names should when possible have the same name as the test.
  • Exceptions should be descriptive and provide as much information as possible
  • Member data should be private with access if required through Get methods.

Release History