Difference between revisions of "Documentation/Nightly/Developers/Build system/Remote Module"

From Slicer Wiki
Jump to: navigation, search
Line 15: Line 15:
  
 
At no time in the future should a module in the main Slicer repository depend on Remote module.
 
At no time in the future should a module in the main Slicer repository depend on Remote module.
 +
 +
 +
  
  
 
= Procedure for Adding a Remote Module =
 
= Procedure for Adding a Remote Module =
  
1. Discuss with Slicer core Developers
+
<ol start="1" style="list-style-type: decimal;">
  
2. Add an entry into <code>SuperBuild.cmake</code> using <code>Slicer_Remote_Add()</code> macro.
+
<li>Discuss with Slicer core Developers</li>
 +
 
 +
<li>
 +
  <p>Add an entry into <code>SuperBuild.cmake</code> using <code>Slicer_Remote_Add()</code> macro. For example:</p>
 +
 
 +
<pre>
 +
Slicer_Remote_Add(Foo
 +
  GIT_REPOSITORY git://github.com/john/foo
 +
  GIT_TAG abcdef
 +
  OPTION_NAME Slicer_BUILD_Foo
 +
  LABELS REMOTE_MODULE
 +
  )
 +
</pre>
 +
</li>
  
3. Corresponding commit message should be similar to:
+
<li>
 +
  <p>Corresponding commit message should be similar to:</p>
 
<pre>
 
<pre>
 
ENH: Add Foo remote module
 
ENH: Add Foo remote module
Line 29: Line 46:
 
The Foo module provide the user with ...
 
The Foo module provide the user with ...
 
</pre>
 
</pre>
 +
</li>
  
 +
</ol>
  
 
= Procedure for Updating a Remote Module =
 
= Procedure for Updating a Remote Module =

Revision as of 06:49, 17 December 2013

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