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 as 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

  • 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))