ITK/Policy and Procedures for Adding Remote Modules: Difference between revisions
Line 15: | Line 15: | ||
# Amalgation of modules prevents the need for module consumers to spend an extended effort searching for algorithm implementations. | # Amalgation of modules prevents the need for module consumers to spend an extended effort searching for algorithm implementations. | ||
# Integration of the Remotes into the repository make it trivial to download the module and automatic fetch it in a build. | # Integration of the Remotes into the repository make it trivial to download the module and automatic fetch it in a build. | ||
Good candidates for addition to the collection can be | |||
* ITK based code that have additional third-party dependencies not bundled with the toolkit. | |||
* New algorithms or implementations seeking greater exposure and adoption. | |||
* Algorithms that hope to eventually be integrated into the toolkit. | |||
* Niche algorithms with limited application. | |||
* Modules in progress that do not yet have the test coverage and cross-platform standards required by the main toolkit. | |||
In general, the Remote Module system is medium for articles submitted in the Insight Journal to see greater adoption or transition into the toolkit. | |||
== Policy for Adding and Removing Remote Modules == | == Policy for Adding and Removing Remote Modules == | ||
== Procedure for Adding a Remote Module == | == Procedure for Adding a Remote Module == |
Revision as of 05:11, 24 April 2012
Remote modules are downloaded at CMake configuration time into the Remote module group, i.e. into the Modules/Remote directory of the repository tree. A Remote Module can be enabled by setting the target Fetch_<module name> CMake configuration variable to ON.
Purpose of Remote Modules
The new modularization resulting from the ITKv4 effort provides a new level of organization and extensibility to the toolkit. A module that follows the directory layout and has the required ITK modularization CMake content that is placed in one of the Module Groups of the repository will be automatically picked up and added to the build.
While individuals or organizations can work on their own private modules and optionally make these modules publically available, the listing of Remote modules in the main ITK repository has two benefits:
- Amalgation of modules prevents the need for module consumers to spend an extended effort searching for algorithm implementations.
- Integration of the Remotes into the repository make it trivial to download the module and automatic fetch it in a build.
Good candidates for addition to the collection can be
- ITK based code that have additional third-party dependencies not bundled with the toolkit.
- New algorithms or implementations seeking greater exposure and adoption.
- Algorithms that hope to eventually be integrated into the toolkit.
- Niche algorithms with limited application.
- Modules in progress that do not yet have the test coverage and cross-platform standards required by the main toolkit.
In general, the Remote Module system is medium for articles submitted in the Insight Journal to see greater adoption or transition into the toolkit.