Difference between revisions of "2012 Summer Project Week Breakout Session:SlicerExtensions"
From NAMIC Wiki
m |
|||
(10 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 | + | |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <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 27: | 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 33: | Line 41: | ||
</pre> | </pre> | ||
− | * 2. Check that | + | * 2. Check that expected files have been created |
<pre> | <pre> | ||
cd .. | cd .. | ||
Line 72: | 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
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
- Tour of the updated documentation
- Step-by-step: Extension bundling one CLI module
- Q&A
Contents
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
- 6. Read "How to obtain an API key"
- 7. Re-configure passing
MIDAS_PACKAGE_EMAIL
andMIDAS_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.