Difference between revisions of "Documentation/4.1/Developers"

From Slicer Wiki
Jump to: navigation, search
(Prepend documentation/versioncheck template. See http://na-mic.org/Mantis/view.php?id=2887)
 
(83 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
<noinclude>{{documentation/versioncheck}}</noinclude>
 
__NOTOC__
 
__NOTOC__
  
3D Slicer is a free [http://en.wikipedia.org/wiki/Open_source open source] extensible software application for medical image computing and visualization. Mainly written in [http://en.wikipedia.org/wiki/C%2B%2B C++] and based on the [http://www.na-mic.org/Wiki/index.php/NA-MIC-Kit NA-MIC kit], 3D Slicer relies on a variety of libraries: [http://www.vtk.org VTK], [http://itk.org ITK], [http://commontk.org CTK], [http://www.cmake.org CMake], [http://qt.nokia.com/products/ Qt] and [http://www.python.org/ Python].
 
  
To ensure the stability of the application, relying on a robust [http://www.kitware.com/solutions/softwareprocess/softwareprocess.html software process], the source code is compiled and tested on a daily basis on a [[Documentation/{{documentation/version}}/SlicerApplication/HardwareConfiguration|variety of platform configurations]]. The testing results are summarized and reported using a web-based centralized CDash [http://slicer.cdash.org/index.php?project=Slicer4 dashboard]. Developers of 3D Slicer can also report issues on the [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel open mailing list] or using [http://na-mic.org/Mantis/my_view_page.php web-based bug tracking system].
+
<big><big>If you are a newcomer, you should probably check these '''[[{{FULLPAGENAME}}/StartHere|instructions]]''' !</big></big>
 
+
*If you need to cite Slicer, please use [http://www.slicer.org/pages/UserOrientation these references].
3D Slicer consists of both a lean application core and modules offering specific functionality. The core implements the user interface, provides support for data input/output (IO) and visualization and also exposes developer interfaces that support extension of the application with new modules.
 
 
 
Three types of modules are supported: [[{{FULLPAGENAME}}/Modules#Command_Line_Interface_.28CLI.29|CLI]], [[{{FULLPAGENAME}}/Modules#Loadable_Modules|Loadable module]] and [[{{FULLPAGENAME}}/Modules#Scripted_Modules|Scripted module]]. While the developer has to choose between one of the 3 types to implement its module, the end user won't notice the difference as they all share the same look & feel. The choice for a given type of module is usually based on the type of inputs/parameters for a given module.
 
 
 
These modules can be either built-in or installed on demand via the [[Documentation/{{documentation/version}}/SlicerApplication/ExtensionsManager|extensions manager]].
 
  
 
{| border="0" align="center" width="98%" valign="top" cellspacing="7" cellpadding="2"
 
{| border="0" align="center" width="98%" valign="top" cellspacing="7" cellpadding="2"
Line 20: Line 15:
 
|-  
 
|-  
 
|valign="top"|
 
|valign="top"|
 +
----
 +
<span style="color: #555555; font-size: 18px; font-weight: bold;">Getting involved</span>
 +
----
 +
 +
* [[{{FULLPAGENAME}}/Meetings|Developer meetings]]
 +
: It is open to everyone, feel free to join.
  
=== Resources ===
+
* [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Developers mailing list] / [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Sign-up] / [http://slicer-devel.65872.n3.nabble.com/ Browse archives]
 +
: Intended for discussion of programming related questions
 +
----
 +
<span style="color: #555555; font-size: 18px; font-weight: bold;">Resources</span>
 
----
 
----
* [http://slicer.org/doc/html/classes.html Doxygen]
+
* [http://na-mic.org/Mantis/roadmap_page.php Roadmap]{{new}}
: Source code API documentation.
+
: What's next ? What's the plan ?
  
* [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk ViewVC] ([http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision last commit])
+
* [http://slicer.cdash.org/index.php?project=Slicer4 CDash Quality Dashboard] / [[{{FULLPAGENAME}}/Tutorials/DashboardSetup|Setup a dashboard]]
: Web-based code repository viewer.
+
: Nightly, continuous and experimental dashboards.
  
* [[Slicer4:QtPort/Releases|Change logs and release details]]
+
* [http://na-mic.org/Mantis Bug tracker] / [http://na-mic.org/Mantis/signup_page.php Register] / [http://na-mic.org/Mantis/bug_report_page.php Report a bug]
: Informations about Slicer releases
+
: Web-based bug tracking system
  
=== Getting involved ===
+
* [http://slicer.org/doc/html/classes.html Doxygen]
----
+
: Source code API documentation.
  
* [[{{FULLPAGENAME}}/Meetings|Developer meetings]]
+
* [[{{FULLPAGENAME}}/Style Guide|Slicer Style Guidelines]]{{new}}
: It is open to everyone, feel free to join.
 
 
 
* [[Documentation/{{documentation/version}}/Developers/Style Guide|Slicer Style Guidelines]]
 
 
: Consistency and Readability for a manageable code base
 
: Consistency and Readability for a manageable code base
  
Line 44: Line 45:
 
: Pages for the developer projects.
 
: Pages for the developer projects.
  
==== Mailing List - slicer-devel [at] bwh [dot] harvard [dot] edu ====
+
* [[Release Details|Change logs and release details]]
* [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Developers mailing list]
+
: Informations about Slicer releases
: Intended for the discussion of programming related questions.
+
 
 +
----
 +
<span style="color: #555555; font-size: 18px; font-weight: bold;">Bookmarks</span>
 +
----
 +
* [http://marklodato.github.com/visual-git-guide/index-en.html A Visual Git Reference]
  
* [http://slicer-devel.65872.n3.nabble.com/ Developers mailing list archives]
 
: Search for priorly posted questions and answers on nabble.com
 
  
 
|bgcolor="#CCCCCC"|
 
|bgcolor="#CCCCCC"|
 
|valign="top"|
 
|valign="top"|
 
===Compile / Package===
 
 
----
 
----
* [https://github.com/Slicer/Slicer Git repository]
+
<span style="color: #555555; font-size: 18px; font-weight: bold;">Build instructions</span>
 +
----
 +
* [https://github.com/Slicer/Slicer Git repository] / [http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk ViewVC] / [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision last commit] / [[Documentation/{{documentation/version}}/Developers/Build_Instructions#Using_git-svn|git-svn setup]]
 
: <code>git clone git://github.com/Slicer/Slicer.git</code>
 
: <code>git clone git://github.com/Slicer/Slicer.git</code>
  
* [[Documentation/{{documentation/version}}/Developers/Build Instructions|Slicer application build instructions]]
+
* [[Documentation/{{documentation/version}}/Developers/Build Instructions|Build Slicer application]]
 
: Compiling and installing Slicer from source.
 
: Compiling and installing Slicer from source.
  
* [https://github.com/jcfr/ExtensionsIndex/tree/24-ExtensionIndex-add-readme-file#readme Slicer extensions build instructions]
+
* [[Documentation/{{documentation/version}}/Developers/Build Module|Build Module]]{{new}}
: Build, test, package and distribute extensions
+
: Compiling slicer modules outside of the slicer source tree.
  
* [http://slicer.cdash.org/index.php?project=Slicer4 CDash (Quality Dashboard)]
+
----
: Nightly, continuous and experimental dashboards.
+
<span style="color: #555555; font-size: 18px; font-weight: bold;">Design & Implementation</span>
 
 
===Design & Implementation===
 
 
----
 
----
  
* [[Documentation/{{documentation/version}}/Developers/Modules | Modules]]
+
* [[{{FULLPAGENAME}}/Modules | Modules]]{{updated}}
: Comparison between the different module types supported by Slicer
+
: Comparison between the different supported module types
  
* [[Documentation/{{documentation/version}}/Developers/MRML | Data Model - MRML]]
+
* Internals
: Objects and their organization. MRML Library provides API for managing medical image data type.
+
** [[{{FULLPAGENAME}}/MRML | Data Model / MRML]] - Objects and their organization. MRML Library provides API for managing medical image data type
 +
** [[{{FULLPAGENAME}}/Logics | Logics]] - Details the role of MRML/Slicer/Application/Modules logics and Displayable managers
 +
** [[{{FULLPAGENAME}}/IO | IO Mechanism]] - How to read or write nodes from file
  
* [[Documentation/{{documentation/version}}/Developers/Logics | Logics]]
+
* [[{{FULLPAGENAME}}/Python scripting | Python scripting]]
: Details the role of logics in Slicer
 
: Lists the different logic types such as [[Documentation/{{documentation/version}}/Developers/DisplayableManagers | displayable managers]].
 
 
 
* [[Documentation/{{documentation/version}}/Developers/Python scripting | Python scripting]]
 
 
: Presents the underlying infrastructure.
 
: Presents the underlying infrastructure.
  
* [[Documentation/{{documentation/version}}/Developers/Charts | Charts]]
+
* [[{{FULLPAGENAME}}/Charts | Charts]]
 
: Description of the Charting architecture.
 
: Description of the Charting architecture.
  
* [[Documentation/{{documentation/version}}/Developers/Build system | Build system]]
+
* [[{{FULLPAGENAME}}/Build system | Build system]] / [[Release_Details | Release details]]
: Details how Slicer is built and packaged.
+
: Details how Slicer is built, packaged and released.
  
 
|bgcolor="#CCCCCC"|
 
|bgcolor="#CCCCCC"|
 
|valign="top"|
 
|valign="top"|
 
+
----
 
{{:{{FULLPAGENAME}}/Tutorials}}
 
{{:{{FULLPAGENAME}}/Tutorials}}
  
 
|}
 
|}
  
 +
<hr>
  
  
 
[[{{collaborator|logo|slicer4}}|x300px|center]]
 
[[{{collaborator|logo|slicer4}}|x300px|center]]

Latest revision as of 07:27, 14 June 2013

Home < Documentation < 4.1 < Developers


For the latest Slicer documentation, visit the read-the-docs.



If you are a newcomer, you should probably check these instructions !


Getting involved


It is open to everyone, feel free to join.
Intended for discussion of programming related questions

Resources


What's next ? What's the plan ?
Nightly, continuous and experimental dashboards.
Web-based bug tracking system
Source code API documentation.
Consistency and Readability for a manageable code base
Pages for the developer projects.
Informations about Slicer releases

Bookmarks




Build instructions


git clone git://github.com/Slicer/Slicer.git
Compiling and installing Slicer from source.
Compiling slicer modules outside of the slicer source tree.

Design & Implementation


Comparison between the different supported module types
  • Internals
    • Data Model / MRML - Objects and their organization. MRML Library provides API for managing medical image data type
    • Logics - Details the role of MRML/Slicer/Application/Modules logics and Displayable managers
    • IO Mechanism - How to read or write nodes from file
Presents the underlying infrastructure.
Description of the Charting architecture.
Details how Slicer is built, packaged and released.

How To










Slicer4Announcement-HiRes.png