Open jcfr opened 1 year ago
not installed = in build tree ?
Since extension can be installed in the build tree in the "special" folder
<applicationHome>/<org-name-or-domain>/Extensions-12345
, saying this is not exactly true.not built-in = provided by extension?
Not exactly correct either as module can be specific using option like
--additional-module-path/--additional-module-paths
and in that care they are not installed using the extension manager.
I create a "mermaid" diagram to include in our documentation
Reference:
_Originally posted by @jcfr in https://github.com/Slicer/Slicer/pull/6970#discussion_r1197318853_
I guess what I miss is a very high-level description of what installed and built-in flags are meant to distinguish between.
For example, built-in could refer to "not being manually installed by the user" or "source code is in Slicer source tree". Both could make sense, both could be useful to know.
_Originally posted by @lassoan in https://github.com/Slicer/Slicer/pull/6970#discussion_r1197327348_
re: built-in
A built-in module is a module that is distributed along side the Slicer application.
This usually means its source code is either located in the Slicer source tree or integrated into it using add_subdirectory().
re: installed
A module is considered installed if it is not built-in and it it is installed using the extensions manager.
Generally speaking, this means it is loaded from an install tree.
re: embedded
Looking at the implementation, a module is considered embedded if it is a descendant of the <applicationHome>
except <applicationHome>/<org-name-or-domain>/Extensions-12345
There is no overlap between the set of built-in
and installed
modules.
The set of all module loaded from install trees is the union of installed
and built-in
modules.
Based on the current use of IsEmbeddedModule
and its usage, I suggest to:
IsEmbeddedModule
methodimportModulePythonExtensions
renaming its parameter isEmbedded
to isBuiltIn
. Background to motivate the removal:
The function vtkSlicerApplicationLogic::IsPluginBuiltIn()
:
The function vtkSlicerApplicationLogic::IsEmbeddedModule()
:
isExtension
and mentioning that The concept of extension and module are decoupled, a module doesn't have to be an extension to be externally loaded..
_Originally posted by @lassoan in https://github.com/Slicer/Slicer/pull/6970#discussion_r1197307006_