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

From NAMIC Wiki
Jump to: navigation, search
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[2012_Summer_Project_Week#Agenda|Back to agenda]]
 
[[2012_Summer_Project_Week#Agenda|Back to agenda]]
  
<big>An [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Extensions extension] could be seen as a delivery package bundling together one or more Slicer [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Modules modules]. After installing an extension, the associated [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Modules modules] will be presented to the user as built-in ones</big>
+
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
<big>An [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Extensions extension] could be seen as a delivery package bundling together one or more Slicer [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Modules modules].
 +
 
 +
After installing an extension, the associated [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Modules modules] will be presented to the user just like the built-in ones</big>
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
  
  
Line 19: 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>
Line 25: Line 41:
 
</pre>
 
</pre>
  
* 2. Check that file have been created
+
* 2. Check that expected files have been created
 
<pre>
 
<pre>
 
cd ..
 
cd ..
Line 64: Line 80:
 
make ExperimentalUpload
 
make ExperimentalUpload
 
</pre>
 
</pre>
 +
 +
= 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.

Latest revision as of 14:40, 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))

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.