ITK/Release 4/New Code Contribution Process: Difference between revisions
Line 73: | Line 73: | ||
Brainstorming suggestion for workflow: | Brainstorming suggestion for workflow: | ||
# Enable users to add Examples in the Wiki | |||
# Automatically take the new examples and push them as patches to a Gerrit system (with cdash@home testing) | |||
# After approval: merging it into a Git repository of Examples (separate from the current ITK Git). | |||
= ITKv4 A2D2 Contributions = | = ITKv4 A2D2 Contributions = |
Revision as of 13:13, 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.
Brainstorming suggestion for workflow:
- Enable users to add Examples in the Wiki
- Automatically take the new examples and push them as patches to a Gerrit system (with cdash@home testing)
- After approval: merging it into a Git repository of Examples (separate from the current ITK Git).
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