ITK/Release 4/New Code Contribution Process: Difference between revisions
No edit summary |
|||
Line 42: | Line 42: | ||
== Git Topic Branches == | == 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 |
Revision as of 12:50, 13 June 2011
This page describes the multiple mechanisms available to contribute code to the ITK Ecosystem.
Overview
Level of Contribution
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.
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
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. For an example see the Lesion Sizing Toolkit.
External Layers
Software that presents a different interface to ITK. For example see SimpleITK.
Applications
Applications are programs that often provide a GUI and/or use other toolkits, e.g. VTK.
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