Getting involved
Start here
- New community member checklist
Developer meetings
- It is open to everyone, feel free to join.
Developers mailing list / Sign-up / Browse archives
- Intended for discussion of programming related questions
FAQ
- Set of common development questions/answers
Resources
Roadmap NEW
- What's next ? What's the plan ?
Source code repository
- Github or SVN
CDash Quality Dashboard / Setup a dashboard
- Nightly, continuous and experimental dashboards.
Bug tracker / Register / Report a problem / Contribute a patch
- Web-based bug tracking system - Configuration
Doxygen
- Source code API documentation.
Slicer Style Guidelines
- Consistency and Readability for a manageable code base
Labs NEW
- Keep track of on-going experiments.
Change logs and release details
- Informations about Slicer releases
Resources
- List Slicer resources and who to contact in case of problem.
|
|
Build instructions
Create Slicer extensions UPDATED
- Build, test, package and distribute extensions
Build Slicer application
- Compiling and installing Slicer from source.
Build Module
- Compiling slicer modules outside of the slicer source tree.
Design & Implementation
Modules
- Comparison between the different supported module types
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
Layouts
- How to control the layout of the views
Slicelets
- Create simple standalone applications (slicelets)
IO Mechanism
- How to read or write nodes from file
Python scripting
- Presents the underlying infrastructure.
Charts
- Description of the Charting architecture.
Directory Structure
- Files location in the build and install tree.
Qt Plugins
- How to build and load Qt plugins.
Build system
- Details how Slicer is built and packaged.
QtTesting
- Testing framework to test Slicer application. It complements unit tests.
|
|
Source code How-tos
- Checkout Slicer source
- Setup for Git development NEW
- Commit change sets
- Contribute a patch
- Integrate topic from external contributor
Module How-tos
- Create a CLI module or extension
- Create a Loadable module or extension
- Create a Scripted module or extension
- Create an Editor effect
- Bundle module(s) into a Slicer extension
- Build module outside of Slicer source tree
- Add or Update a Remote module NEW
Testing How-tos
- Write a Self Test Module
- Upload test data on Midas
Documentation How-tos
- Document a module
- Document an extension
Extension How-tos
- Obtain an API key to submit on the extension server
- Contribute an extension description file using the wizard NEW
- Manually contributing an extension description file
- Build an extension
- Package an extension
- Upload an extension
- Build an ExtensionsIndex
Porting How-tos
- Port a CLI to ITKv4
Dev How-tos
- Setup QtCreator to develop Slicer application or modules
- Setup a dashboard
- Write a widget for Slicer and Qt Designer
- Use custom widgets in Qt Designer
- Load UI file from python
Debugging How-tos
- Use debugger with Slicer application
- Troubleshoot issues such as crash, or memory leaks
- Prevent memory leaks - VTK, Python and reference counting
|