Documentation/Nightly/Developers/Build system/Remote Module

From Slicer Wiki
Jump to: navigation, search
Home < Documentation < Nightly < Developers < Build system < Remote Module

Purpose of Remote Modules

Keep the Slicer core lean.

Allow individuals or organizations to work on their own private modules and optionally make these modules available to the Slicer users as without the need to use the extensions manager.


Policy for Adding and Removing Remote Modules

Module is known to compile on Linux, MacOSX and Windows.

Module is tested.

Module names must be unique.

At no time in the future should a module in the main Slicer repository depend on Remote module.



Procedure for Adding a Remote Module

  1. Discuss with Slicer core Developers
  2. Add an entry into SuperBuild.cmake using Slicer_Remote_Add() macro. For example:

    Slicer_Remote_Add(Foo
      GIT_REPOSITORY git://github.com/john/foo
      GIT_TAG abcdef
      OPTION_NAME Slicer_BUILD_Foo
      LABELS REMOTE_MODULE
      )
    
  3. Corresponding commit message should be similar to:

    ENH: Add Foo remote module
    
    The Foo module provide the user with ...
    

Procedure for Updating a Remote Module

1. Update the entry into SuperBuild.cmake</code

2. Commit with a message similar to:

ENH: Update Foo remote module

$ git shortlog abc123..efg456
John Doe (2):
  Add support for ZZZ spacing
  Refactor space handler to support multi-dimension