Difference between revisions of "Slicer3:Loadable Modules:Status"

From Slicer Wiki
Jump to: navigation, search
 
Line 4: Line 4:
  
 
== Overview ==
 
== Overview ==
 +
 +
This page describes the Slicer3 Extensions mechanism:
  
 
* Implementation
 
* Implementation
 
** Run slicer
 
** Run slicer
 
** View->Module Search
 
** View->Module Search
*** Wizard searches http://ext.slicer.org/ext/...
+
*** Archived of precompiled extensions which can be:
 +
**** shared libraries of C++ code (vtk, itk, teem, etc) that link to slicer but have no GUI
 +
**** loadable modules that provide C++ code and have hooks to create a slicer GUI
 +
**** executables (Command Line Modules) written in any language that will run on the target machine (tcl, python, java...)
 +
**** tcl or python scripted modules
 +
*** Extensions can depend on other extensions and/or on specific modules in Slicer3 (to resolve compile and run time library dependencies)
 +
*** Wizard searches http://ext.slicer.org/ext/... using information contained in lib/Slicer3/Slicer3Version.txt
 
**** Subdirectories define which version of slicer they contents are built against.
 
**** Subdirectories define which version of slicer they contents are built against.
 
***** first level named based on svn directory of Slicer3 (i.e. trunk/ branches/Slicer-3-2 ...)  
 
***** first level named based on svn directory of Slicer3 (i.e. trunk/ branches/Slicer-3-2 ...)  
Line 15: Line 23:
 
****** e.g. BubbleMaker-cvs2009-03-30-2009-03-30-darwin-x86.zip (cvs version from March 30, 2009 built on March 30, 2009 for darwin x86)
 
****** e.g. BubbleMaker-cvs2009-03-30-2009-03-30-darwin-x86.zip (cvs version from March 30, 2009 built on March 30, 2009 for darwin x86)
 
****** ExampleLoadableGuiLessModule-svn31-2009-03-30-darwin-x86.zip (svn version 31 built on March 30, 2009 for darwin x86)
 
****** ExampleLoadableGuiLessModule-svn31-2009-03-30-darwin-x86.zip (svn version 31 built on March 30, 2009 for darwin x86)
*** Archived of precompiled shared libraries (platform specific)
 
 
** Select modules
 
** Select modules
 
*** TODO: wizard checks for newer versions of existing modules (later: give user option of always checking during slicer boot)
 
*** TODO: wizard checks for newer versions of existing modules (later: give user option of always checking during slicer boot)
 
*** TODO: wizard grabs .s3ext file (uploaded by the extend script)
 
*** TODO: wizard grabs .s3ext file (uploaded by the extend script)
*** TODO: add Category, Description, Homepage to .s3ext file (SP)
 
 
*** TODO: make home page hot linked
 
*** TODO: make home page hot linked
*** TODO: support python and tcl scripted modules and make examples in nitrc
 
*** TODO: make dependencies in .s3ext (SP) Update to manifest like [[Slicer3:Loadable_Modules]]
 
*** TODO: make 'logic-only' modules (essentially just a shared library of classes)
 
 
** Modules are downloaded and unpacked into user-specific Slicer install cache directory
 
** Modules are downloaded and unpacked into user-specific Slicer install cache directory
 
** Restart Slicer
 
** Restart Slicer
Line 35: Line 38:
 
***      specify: svn/cvs repository, dependencies, homepage...  
 
***      specify: svn/cvs repository, dependencies, homepage...  
 
*** Commit .s3ext file or ask a slicer developer to do so
 
*** Commit .s3ext file or ask a slicer developer to do so
** Nightly build gets uploaded to ext.slicer.org  
+
** Nightly build gets uploaded to ext.slicer.org
  
 
* Phase 1: (finished) [[Slicer3:Loadable_Modules:Phase1|Slicer internals]]
 
* Phase 1: (finished) [[Slicer3:Loadable_Modules:Phase1|Slicer internals]]

Latest revision as of 12:13, 30 March 2009

Home < Slicer3:Loadable Modules:Status

Slicer3:Loadable_Modules:Status_2009-01-20

Status - updated 2009-03-30

Overview

This page describes the Slicer3 Extensions mechanism:

  • Implementation
    • Run slicer
    • View->Module Search
      • Archived of precompiled extensions which can be:
        • shared libraries of C++ code (vtk, itk, teem, etc) that link to slicer but have no GUI
        • loadable modules that provide C++ code and have hooks to create a slicer GUI
        • executables (Command Line Modules) written in any language that will run on the target machine (tcl, python, java...)
        • tcl or python scripted modules
      • Extensions can depend on other extensions and/or on specific modules in Slicer3 (to resolve compile and run time library dependencies)
      • Wizard searches http://ext.slicer.org/ext/... using information contained in lib/Slicer3/Slicer3Version.txt
        • Subdirectories define which version of slicer they contents are built against.
          • first level named based on svn directory of Slicer3 (i.e. trunk/ branches/Slicer-3-2 ...)
          • next level contains svn revision number and build platform
          • Module names encode cvs/svn version, build date, and platform:
            • e.g. BubbleMaker-cvs2009-03-30-2009-03-30-darwin-x86.zip (cvs version from March 30, 2009 built on March 30, 2009 for darwin x86)
            • ExampleLoadableGuiLessModule-svn31-2009-03-30-darwin-x86.zip (svn version 31 built on March 30, 2009 for darwin x86)
    • Select modules
      • TODO: wizard checks for newer versions of existing modules (later: give user option of always checking during slicer boot)
      • TODO: wizard grabs .s3ext file (uploaded by the extend script)
      • TODO: make home page hot linked
    • Modules are downloaded and unpacked into user-specific Slicer install cache directory
    • Restart Slicer
    • Can remove modules
  • Developer
    • make slicer build tree locally
    • create module from a template (GUI, Logic, MRML) see NITRC example modules
    • test locally on their platform
    • create .s3ext file and test with slicer's extend script
      • specify: svn/cvs repository, dependencies, homepage...
      • Commit .s3ext file or ask a slicer developer to do so
    • Nightly build gets uploaded to ext.slicer.org
  • Phase 1: (finished) Slicer internals
    • runtime module discovery
    • module template
    • like CommandLineModuleFactory
  • Phase 2: (in process) web development, deployment
    • prototype on wiki
    • versions, download,
    • upload