2012 Summer Project Week Breakout Session:SlicerExtensions

From NAMIC Wiki
Jump to: navigation, search
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))

Windows

If you do not have another python installation on your machine, you can use the python that is build with slicer to run the module creation script. The invocation from cmd prompt looks something like this:

d:\pieper\s4\Slicer>..\super\python-build\PCbuild\amd64\python.exe .\Utilities\Scripts\ModuleWizard.py --template ./Extensions/Testing/LoadableExtensionTemplate --target ./myloadable myloadable

From there you can use the regular windows procedures like cmake-gui and visual studio to build the extension.