Roadmap
Goals
This page is a place to organize and prioritize development activities into a roadmap based on input of Slicer community and the needs of funded projects (NA-MIC, NAC, NCIGT, SlicerRT, etc...)
The list of issues targeted for each release are reported on mantis: http://na-mic.org/Mantis/roadmap_page.php
The topics listed below includes Slicer application and dependent ToolKit. For the specific strategy and feature lists covering modules and extensions, visit their respective roadmaps and other documentation.
Priorities
As of February, 2013
- ITKv4 integration
- Ability to install python package using pip
- Improve extension catalog frontend
- Faster Slicer start time
- Support of python command line module
- Walk-thru documentation that clearly shows new developers step-by-step instructions to create and publish extensions.
Deprecation / API Changes
List of deprecated methods / classes: http://slicer.org/doc/html/deprecated.html
Mantis tag Deprecation: http://www.na-mic.org/Bug/search.php?project_id=3&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=80&tag_string=Deprecation
Pending
This section list the change that should be announced/discussed on the list before been integrated into Slicer trunk.
- CMake - Minimum required CMake version will be 2.8.11 for all platforms.
Planned
This section list the change that have been announced/discussed on the list and will be integrated shortly into Slicer trunk.
4.4
- Library:
- ITKv3 support will be removed from build system.
- Transition to VTK6
- Initial support for 4.8.5
- MRML - Default value for HideFromEditors will be change to False. See #2906.
- Wigdets - Remove deprecated method
currentNodeId
. For reference see r22059.
- Rename / Move -
vtkSlicerTransformLogic
will be renamed intovtkSlicerTransformModuleLogic
and moved intoModules/Loadable/Transform/Logic
- Consider updating the CMakeLists.txt and code of your modules. See instruction here. Associated issue #2926
- Remove
vtkMRMLScene::SceneEditedEvent
. See #3472
- CMake - Rename file
SlicerMacroBuildQtModule.cmake
intoSlicerMacroBuildLoadableModule.cmake
. See issue #3332
trunk
- Remove vtkMRMLScene::Edited method and associated SceneEditedEvent. See #3472 and 3472-remove-vtkMRMLScene-edited
- Impact: Update EMSegment tcl files
- Remove VTK4 classes. Slicer Code refactoring to use pure VTK5 API. See #3485
Effective
Trunk
- Add Slicer_ADDITIONAL_REQUIRED_QT_MODULES to add QT modules.
See finetjul/Slicer@slicer-required-qt-modules-trunkFixed in r22756, r22757 and r22758 - Clean logic header includes.
See finetjul/Slicer@vtkmrmlabstractlogic-clean-includes-trunk. See r22759 and r22761 - Rename qSlicer.*IO classes into qSlicer.*Reader.
See rename-io-class-to-reader. See http://slicer-devel.65872.n3.nabble.com/Feedback-Rename-of-qSlicerXXXIO-class-into-qSlicerXXXReader-class-tt4030298.html. Fixed in r22762. See http://slicer-devel.65872.n3.nabble.com/Extension-If-including-qSlicerXXXIO-class-consider-renaming-to-qSlicerXXXReader-class-was-Feedback-R-tt4030440.html- Impact:
Rename class in DataStore module. Fixed in Slicer/Slicer-DataStore@70aaedaa8
- Impact:
- Consolidate qSlicerAppMainWindow.
See finetjul/Slicer@consolidate-qslicerappmainwindow-trunkFixed in r22763- Extension/module depending on main window action name will have to be updated. See http://slicer-devel.65872.n3.nabble.com/Extension-If-referencing-MainWindow-menu-entry-by-name-consider-updating-your-code-tt4030441.html
4.3.0
- const std::vector<vtkMRMLDisplayNode*>& vtkMRMLDisplayableNode::GetDisplayNodes(); - Obsolete utility function that provides an unsafe API. Please use GetNumberOfDisplayNodes() and GetNthDisplayNode() instead
- CMake - Macro
slicerMacroBuildQtModule
will be renamed intoslicerMacroBuildLoadableModule
. See #2648 - CMake - Macro
slicerMacroBuildScriptedModule
should be used to build Scripted modules. See here for an example. - Library - ITKv3 support is deprecated / not maintained.
- Scripted module should be built using
SlicerMacroBuildScriptedModule
instead ofctkMacroCompilePythonScript
. See here. - Generic tests associated with Loadable and Scripted module should be built specifying the
WITH_GENERIC_TESTS
option. See r21768. - Test driver associated with loadable module should be configured using
SlicerMacroConfigureModuleCxxTestDriver
. See r21769. - CMake - Minimum required CMake version will be 2.8.9 for Windows/Linux, CMake 2.8.11 for MacOSX - See r21682
- Library - ITKv4 will be enabled by default - See r21688
- Library - Qt 4.8.4 will be the recommended/required version
- Core - Removed unused class
Base/Logic/vtkSlicerROILogic
- See r21744 - Move Editor icons from "Base/Logic" into "EditorLib/Resources/Icons". See r21765
- CMake - Macro
slicer_parse_arguments
has been removed. Consider usingcmake_parse_arguments
instead. See CMakeParseArguments - See r21774 - Slicer default Python version is
2.7.3
- See r21863, r21867, r21869, r21879, r21891 - Python function PyRun_OpenFile/CloseFile have been removed. See r21960
- The
qMRMLNodeComboBox
propertycurrentNodeId
was renamedcurrentNodeID
. See 22052. The functionsetCurrentNode(const QString &)
andcurrentNodeId()
should be removed. See also r22072. - When using Visual Studio 8, installation of Service Pack 1 is now enforced by the build system. See r22096, r22098
if(NOT Slicer_SOURCE_DIR)
not required any more in extension CMakeLists.txt. See r22063project()
statment now allowed in extension CMakeLists.txt. See r22038, r22115vtkMRMLDisplayableNode::GetNthDisplayNodeByClass()
has been removedvtkMRMLSelectionNode::AddNewAnnotationIDToList()
has been renamed intovtkMRMLSelectionNode::AddNewPlaceNodeClassNameToList()
vtkMRMLSelectionNode::SetReferenceActiveAnnotationID()
has been renamed intovtkMRMLSelectionNode::SetReferenceActivePlaceNodeClassName
SlicerExecutionModel
- CMake - CMake 2.8.4 will be required. Macro
Pre283CMakeParseArguments.cmake
will be removed. See ce620580 - CMake - Macro
slicerMacroBuildCLI
will be removed. UseSEMMacroBuildCLI
instead. - CMake - Parameter
CLI_SHARED_LIBRARY_WRAPPER_CXX
of macroSEMMacroBuildCLI
is removed. UseCLI_LIBRARY_WRAPPER_CXX
instead.