Difference between revisions of "Documentation/4.1/Developers/StartHere"
(Prepend documentation/versioncheck template. See http://na-mic.org/Mantis/view.php?id=2887) |
|||
(27 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | <noinclude>{{documentation/versioncheck}}</noinclude> | ||
{{documentation/{{documentation/version}}/Developers/random-image}} | {{documentation/{{documentation/version}}/Developers/random-image}} | ||
Line 9: | Line 10: | ||
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. | 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 | + | These modules are usually built-in. |
+ | |||
+ | |||
+ | __TOC__ | ||
= New community member checklist = | = New community member checklist = | ||
− | # [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Sign-up] on the | + | # {{Done}} [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel Sign-up] on the developers mailing list |
− | # [http://na-mic.org/Mantis/signup_page.php Register] on the issue tracker | + | # {{Done}} [http://na-mic.org/Mantis/signup_page.php Register] on the issue tracker |
− | # Sign-up on [https://github.com/signup/free github] and [https://help.github.com/articles/set-up-git setup Git] | + | # {{Done}} Sign-up on [https://github.com/signup/free github] and [https://help.github.com/articles/set-up-git setup Git] |
− | # [https://help.github.com/articles/fork-a-repo Fork] Slicer repository: https://github.com/Slicer/Slicer | + | # {{Done}} [https://help.github.com/articles/fork-a-repo Fork] Slicer repository: https://github.com/Slicer/Slicer |
− | # Read the [[Documentation/{{documentation/version}}/Developers/Style Guide|Slicer Style Guidelines]] so that we all understand each other :) | + | # {{Done}} Read the [[Documentation/{{documentation/version}}/Developers/Style Guide|Slicer Coding Style Guidelines]] so that we all understand each other :) |
− | = Develop a module | + | = Develop a module and create an extension = |
− | # [[#Add_or_improve_a_functionality:_Where_to_start_.3F|Where to start?]] | + | <!-- # [[#Add_or_improve_a_functionality:_Where_to_start_.3F|Where to start?]] --> |
− | # [[Documentation/{{documentation/version}}/Developers/Build_Instructions| | + | # Build [[Documentation/{{documentation/version}}/Developers/Build_Instructions|Slicer application]] |
− | # [[Documentation/{{documentation/version}}/Developers/ | + | # Learn about the [[Documentation/{{documentation/version}}/Developers/Modules|different type of modules]] |
# Create | # Create | ||
#: [[Documentation/{{documentation/version}}/Developers/Modules#Command_Line_Interface_.28CLI.29|CLI module]] or | #: [[Documentation/{{documentation/version}}/Developers/Modules#Command_Line_Interface_.28CLI.29|CLI module]] or | ||
− | #: [[Documentation/{{documentation/version}}/Developers/ | + | #: [[Documentation/{{documentation/version}}/Developers/Modules#Loadable_Modules|Loadable module]] or |
#: [[Documentation/{{documentation/version}}/Developers/Modules#Scripted_Modules|Scripted module]] or | #: [[Documentation/{{documentation/version}}/Developers/Modules#Scripted_Modules|Scripted module]] or | ||
#: [[Documentation/{{documentation/version}}/Developers/EditorExtension|Editor effect]] | #: [[Documentation/{{documentation/version}}/Developers/EditorExtension|Editor effect]] | ||
− | # [ | + | # [[Documentation/{{documentation/version}}/HowTo|Read documentation guidelines]] |
+ | # [[Documentation/{{documentation/version}}/Developers/Build_Module|Build modules outside of Slicer source tree]]. | ||
+ | # <code>Hack, hack, hack :)</code> | ||
+ | # [[Build, test, package and distribute extensions]] | ||
+ | <!-- | ||
= Add or improve a functionality: Where to start ? = | = Add or improve a functionality: Where to start ? = | ||
[[File:SlicerDeveloper-ContributionWorkflow.png | 1100px]] | [[File:SlicerDeveloper-ContributionWorkflow.png | 1100px]] | ||
+ | --> | ||
+ | |||
+ | = Contribute a patch = | ||
+ | {{:Documentation/{{documentation/version}}/Developers/Tutorials/ContributePatch}} |
Latest revision as of 07:30, 14 June 2013
Home < Documentation < 4.1 < Developers < StartHere
For the latest Slicer documentation, visit the read-the-docs. |
3D Slicer is a free open source extensible software application for medical image computing and visualization. Mainly written in C++ and based on the NA-MIC kit, 3D Slicer relies on a variety of libraries: VTK, ITK, CTK, CMake, Qt and Python.
To ensure the stability of the application, relying on a robust software process, the source code is compiled and tested on a daily basis on a variety of platform configurations. The testing results are summarized and reported using a web-based centralized CDash dashboard. Developers of 3D Slicer can also report issues on the open mailing list or using the 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: CLI, Loadable module, Scripted module and 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 are usually built-in.
Contents
New community member checklist
Sign-up on the developers mailing list
Register on the issue tracker
Sign-up on github and setup Git
Fork Slicer repository: https://github.com/Slicer/Slicer
Read the Slicer Coding Style Guidelines so that we all understand each other :)
Develop a module and create an extension
- Build Slicer application
- Learn about the different type of modules
- Create
- Read documentation guidelines
- Build modules outside of Slicer source tree.
Hack, hack, hack :)
- Build, test, package and distribute extensions
Contribute a patch
The following instructions describes the recommended workflow to contribute patch to Slicer code base.
It is also assumed you followed the New community member checklist and have a clone of https://github.com/Slicer/Slicer/.
- 2. Make sure your fork has a git remote. Replace
jcfr
with your git login.
git remote add jcfr git@github.com:jcfr/Slicer.git
- 3. Create a topic named
<issuer_number>-a-descriptive-topic-name
. For example:
git checkout -b 1906-uninstall-extensions-on-restart
- 4. Add a note to the issue with a link pointing to your topic. For example, see note 1906#c4578
- 5. Send an email on the slicer-developers list pointing to the reported bug. Title of the email should start with
[BUG <IssueNumber>] Title of the bug - <category>