Difference between revisions of "Documentation/Nightly/Developers/StartHere"

From Slicer Wiki
Jump to: navigation, search
(Thanks Alex Vergara for pointing this out.)
 
(25 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
<noinclude>{{documentation/versioncheck}}</noinclude>
 
__TOC__
 
__TOC__
 
= What is Slicer ? =
 
 
{{documentation/{{documentation/version}}/Developers/random-image}}
 
 
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 the [http://na-mic.org/Mantis/my_view_page.php web-based bug tracking system].
 
 
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.
 
 
Multiple types of modules are supported: [[Documentation/{{documentation/version}}/Developers/Modules#Command_Line_Interface_.28CLI.29|CLI]], [[Documentation/{{documentation/version}}/Developers/Modules#Loadable_Modules|Loadable module]], [[Documentation/{{documentation/version}}/Developers/Modules#Scripted_Modules|Scripted module]] and [[Documentation/{{documentation/version}}/Developers/EditorExtension|Editor effect]]. While the developer has to choose between one of these 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]].
 
  
 
= New community member checklist =
 
= New community member checklist =
  
# {{Done}}&nbsp;&nbsp;&nbsp;[http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Sign-up] on the developers mailing list
+
&nbsp;&nbsp;{{Done}}&nbsp;&nbsp;&nbsp;Join
# {{Done}}&nbsp;&nbsp;&nbsp;[http://na-mic.org/Mantis/signup_page.php Register] on the issue tracker
+
:: Sign up on [https://discourse.slicer.org/ Slicer discourse website] to make sure you hear of new developments, releases and bug fixes.
# {{Done}}&nbsp;&nbsp;&nbsp;Sign-up on [https://github.com/signup/free github] and [https://help.github.com/articles/set-up-git setup Git]
+
:: Sign-up on [https://github.com/join Github] and "star" the [https://github.com/Slicer/Slicer/ Slicer project] to show your support (click on the "Star" icon in the top-left corner).<!-- and [https://help.github.com/articles/set-up-git#set-up-git setup Git] -->
# {{Done}}&nbsp;&nbsp;&nbsp;[https://help.github.com/articles/fork-a-repo Fork] Slicer repository: https://github.com/Slicer/Slicer
+
:: [http://na-mic.org/Mantis/signup_page.php Register] on the issue tracker
# {{Done}}&nbsp;&nbsp;&nbsp;Read the [[Documentation/{{documentation/version}}/Developers/Style Guide|Slicer Style Guidelines]] so that we all understand each other :)
 
# {{Done}}&nbsp;&nbsp;&nbsp;To contribute documentation, [[Special:RequestAccount|request an account]] on the wiki.
 
 
 
= Develop a module and create an extension =
 
  
<!-- # [[#Add_or_improve_a_functionality:_Where_to_start_.3F|Where to start?]] -->
 
# Build [[Documentation/{{documentation/version}}/Developers/Build_Instructions|Slicer application]]
 
# Learn about the [[Documentation/{{documentation/version}}/Developers/Modules|different type of modules]]
 
# Create
 
#: [[Documentation/{{documentation/version}}/Developers/Modules#Command_Line_Interface_.28CLI.29|CLI module]] or
 
#: [[Documentation/{{documentation/version}}/Developers/Modules#Loadable_Modules|Loadable module]] or
 
#: [[Documentation/{{documentation/version}}/Developers/Modules#Scripted_Modules|Scripted module]] or
 
#: [[Documentation/{{documentation/version}}/Developers/EditorExtension|Editor effect]]
 
# [[Documentation/{{documentation/version}}/HowTo|Read documentation guidelines]]
 
# [[Documentation/4.1/Developers/Build_Module|Build modules outside of Slicer source tree]].
 
# <code>Hack, hack, hack :)</code>
 
# [[Documentation/{{documentation/version}}/Developers/Tutorials/BundleModulesIntoExtension|Bundle module(s) into a Slicer extension]]
 
# [[Documentation/{{documentation/version}}/Developers/Tutorials/BuildTestPackageDistributeExtensions|Build, test, package and distribute extensions]]
 
  
<!--
+
&nbsp;&nbsp;{{Done}}&nbsp;&nbsp;&nbsp;Read
= Add or improve a functionality: Where to start ? =
+
:: Scan through [[Documentation/{{documentation/version}}/Developers/FAQ|developer FAQ]].
 +
:: Read the [[Documentation/{{documentation/version}}/Developers/Style Guide|Slicer Style Guidelines]] so that we all understand each other :)
  
[[File:SlicerDeveloper-ContributionWorkflow.png | 1100px]]
+
&nbsp;&nbsp;{{Done}}&nbsp;&nbsp;&nbsp;Create
-->
+
:: [[Documentation/{{documentation/version}}/Developers/Tutorials/BuildTestPackageDistributeExtensions|Step-by-step: How to create, build, test, distribute and maintain an extension ?]]
 +
:: [[Documentation/{{documentation/version}}/Developers/Build_Instructions|Step-by-step: How to build Slicer ?]]
  
= Contribute a patch =
+
&nbsp;&nbsp;{{Done}}&nbsp;&nbsp;&nbsp;Contribute
{{:Documentation/{{documentation/version}}/Developers/Tutorials/ContributePatch}}
+
:: To improve this wiki: [[Special:RequestAccount|request an account]].
 +
:: [[Documentation/{{documentation/version}}/Developers/Tutorials/ContributePatch|Step-by-step: How to contribute a patch ?]]

Latest revision as of 18:13, 20 February 2019

Home < Documentation < Nightly < Developers < StartHere


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


New community member checklist

  Check.svg   Join

Sign up on Slicer discourse website to make sure you hear of new developments, releases and bug fixes.
Sign-up on Github and "star" the Slicer project to show your support (click on the "Star" icon in the top-left corner).
Register on the issue tracker


  Check.svg   Read

Scan through developer FAQ.
Read the Slicer Style Guidelines so that we all understand each other :)

  Check.svg   Create

Step-by-step: How to create, build, test, distribute and maintain an extension ?
Step-by-step: How to build Slicer ?

  Check.svg   Contribute

To improve this wiki: request an account.
Step-by-step: How to contribute a patch ?