Difference between revisions of "2012 Summer Project Week Breakout Session:SlicerExtensions"

From NAMIC Wiki
Jump to: navigation, search
Line 35: Line 35:
  
 
== Step-by-step==
 
== Step-by-step==
 
+
(These instructions are for linux/mac environments - see windows notes in the remarks section below).
 
* 1. Create base structure using ModuleWizard
 
* 1. Create base structure using ModuleWizard
 
<pre>
 
<pre>

Revision as of 14:35, 30 July 2012

Home < 2012 Summer Project Week Breakout Session:SlicerExtensions

Back to agenda




An extension could be seen as a delivery package bundling together one or more Slicer modules.

After installing an extension, the associated modules will be presented to the user just like the built-in ones








Step-by-step: Extension bundling one CLI module

Prerequisites

  • Up-to-date Slicer build - This step by step tutorial has been done using Slicer r20398

Step-by-step

(These instructions are for linux/mac environments - see windows notes in the remarks section below).

  • 1. Create base structure using ModuleWizard
./Utilities/Scripts/ModuleWizard.py --template ./Extensions/Testing/CLIExtensionTemplate --target ../MyFooExtension MyFooExtension
  • 2. Check that expected files have been created
cd ..
cd MyFooExtension/
ls
cd ..
cd MyFooExtension-build
  • 3. Configure
cmake -DSlicer_DIR:PATH=/home/jchris/Projects/Slicer4-Superbuild-Debug/Slicer-build/ ../MyFooExtension
  • 4. Build
make -j4
  • 5. Hack, hack, hack and rebuild
make -j4
  • 7. Re-configure passing MIDAS_PACKAGE_EMAIL and MIDAS_PACKAGE_API_KEY
cd MyFooExtension-build
cmake -DMIDAS_PACKAGE_EMAIL:STRING=jchris.fillionr@kitware.com -DMIDAS_PACKAGE_API_KEY:STRING=<YOUR_API_KEY> . 
  • 8. Publish
make ExperimentalUpload

Remarks

  • People seems to like the concept :)
  • Add institution to register box
  • No facebook / Linkedin instead
  • Search box
  • "I use it" button ?
  • Associated publications / Google scholar ?
  • Label the newly installed modules .. or show a popup ?
  • Remember Jim about the doc stuff: Migrate 1 module to extension to N ones
  • Add .gitignore to extension ... ?
  • Make is clear that API key is sensitive
  • Category for work in progress extension ?
  • Add stats/notes/indication to indicate active/inactive support of extension (e.g. 'last commit date', 'Dashboard link', '30-day development activity' (similar to GitHub's tracking))