ITK/Release 4/New Code Contribution Process: Difference between revisions
Line 4: | Line 4: | ||
= Level of Contribution = | = Level of Contribution = | ||
== New Classes and Filters == | == New Classes and Filters == | ||
Line 63: | Line 55: | ||
* Volview Plugins | * Volview Plugins | ||
* V3D Plugins | * V3D Plugins | ||
== Bug Fixes == | |||
Bug fixes are contributions that repair defects reported in the [http://public.kitware.com/Bug/view_all_bug_page.php Mantis Bug Tracker] or repair daily defects that creep into ITK. | |||
# Follow [[ITK/Git/Develop|the procedure to become an ITK developer]]. | |||
# Post as a [[ITK/Git/Develop#Workflow|Gerrit Patch]] | |||
## Gerrit provides a Peer-review mechanism for the patch | |||
## Gerrit uses [[ITK_Release_4/Testing_On_Demand/Tutorial|Cdash@home]] to provide automated testing of patches | |||
# After Gerrit peer-review, [[ITK/Git/Develop#Merge_a_Topic|merge the topic]]. | |||
== Wiki Examples == | == Wiki Examples == |
Revision as of 13:01, 13 June 2011
This page describes the multiple mechanisms available to contribute code to the ITK Ecosystem.
Overview
Level of Contribution
New Classes and Filters
A new class (or filter) must be submitted to the Insight Journal.
- Submission to the Insight Journal
- Code Reviewed using the Checklist
- Posted as Gerrit Patches
- Peer-reviewed
- Cdash@home tested
- Merged
Internal Modules
Internal modules are full fledged modules that are actually intended to be integrated with the ITK git repository and to be distributed as part of ITK.
Examples:
- Video classes
- GPU Support
- Deconvolution
External Modules
External modules are ITK-like modules that cannot be included in ITK because of license issues or should not be included in ITK because of scope and/or specialized use.
Examples:
- Lesion Sizing Toolkit
- see the Lesion Sizing Toolkit.
- PETSc
- Numerical Libraries that too large to be included in ITK proper
- FFTW
- Library distributed under GPL (overriding the ITK's Apache License)
External Layers
Software that presents a different interface to ITK.
Examples:
- SimpleITK
- see SimpleITK.
- ManagedITK
- Wrapping for C#
Applications
Applications are programs that often provide a GUI and/or use other toolkits, e.g. VTK.
Examples:
- Volview Plugins
- V3D Plugins
Bug Fixes
Bug fixes are contributions that repair defects reported in the Mantis Bug Tracker or repair daily defects that creep into ITK.
- Follow the procedure to become an ITK developer.
- Post as a Gerrit Patch
- Gerrit provides a Peer-review mechanism for the patch
- Gerrit uses Cdash@home to provide automated testing of patches
- After Gerrit peer-review, merge the topic.
Wiki Examples
Wiki examples are independent, compilable examples that illustrate ITK concepts. Follow this procedure to add a Wiki example.
NOTE: The examples illustrate existing ITK classes and do not introduce new classes.
ITKv4 A2D2 Contributions
Git Topic Branches
Scenario: the refactoring team has been working on a separate repository and have branches for their work.
Checkout their topic branch
git checkout MyWorkingBranch
Update their master
git fetch origin master:master
Merge master into their topic branch
git merge master
See Status
The following command will show any conflicts resulting from the merge
git status