Difference between revisions of "Documentation/Nightly/FAQ/Extensions"

From Slicer Wiki
Jump to: navigation, search
Tag: 2017 source edit
(11 intermediate revisions by 5 users not shown)
Line 2: Line 2:
 
<noinclude>__TOC__
 
<noinclude>__TOC__
 
={{#titleparts: {{PAGENAME}} | | -1 }}=</noinclude><includeonly>
 
={{#titleparts: {{PAGENAME}} | | -1 }}=</noinclude><includeonly>
{{#ifeq: {{#titleparts: {{PAGENAME}} | 3 }} | Documentation/{{documentation/version}}/Developer | | ='''User FAQ: {{{1}}}'''=}}
+
{{#ifeq: {{#titleparts: {{PAGENAME}} | 3 }} | Documentation/{{documentation/version}}/Developers | | ='''User FAQ: {{{1}}}'''=}}
 
</includeonly>
 
</includeonly>
 
== What is an extension ? ==
 
== What is an extension ? ==
Line 13: Line 13:
 
* Win 32 has a very limited amount of memory available to an application.  
 
* Win 32 has a very limited amount of memory available to an application.  
 
* Many registration and segmentation algorithms fail on that platform because they run out of memory, when used with state of large data.
 
* Many registration and segmentation algorithms fail on that platform because they run out of memory, when used with state of large data.
* Some of these failures are just that, some can crash slicer. Even though the "real" failure is  caused by overextending the capabilities of the hardware (in a way the users fault), it appears to the user that Slicer does not work.
+
* Some of these failures are just that, some can crash slicer. Even though the "real" failure is  caused by overextending the capabilities of the hardware (in a way the user's fault), it appears to the user that Slicer does not work.
* If you search the archives of slicer-users there are several such complaints until we started to discourage people to use 32 bit.
+
* If you search the archives of Slicer Users there are several such complaints until we started to discourage people to use 32 bit.
  
 
Discussion: http://massmail.spl.harvard.edu/public-archives/slicer-users/2013/006703.html
 
Discussion: http://massmail.spl.harvard.edu/public-archives/slicer-users/2013/006703.html
Line 20: Line 20:
 
== Should I install the nightly version to access to last extension updates ? ==
 
== Should I install the nightly version to access to last extension updates ? ==
  
If the extension developers contributed updates for the current stable release, you don't have to install the nightly version of Slicer. You can simply update the extension. Consider reading [[#How_to_update_an_already_installed_extension.3F|How to update an already installed extension ?]].
+
If the extension developers contributed updates for the current stable release, you don't have to install the nightly version of Slicer. You can simply update the extension. Consider reading [[#How_to_update_an_already_installed_extension.3F|How to update an already installed extension]].
  
 
On the other hand, if the extension developers stopped to maintain the version of their extension built against the stable release (so that we can use the latest feature that will be in the next Slicer release), downloading the nightly is the only way to get the latest version of the extension.
 
On the other hand, if the extension developers stopped to maintain the version of their extension built against the stable release (so that we can use the latest feature that will be in the next Slicer release), downloading the nightly is the only way to get the latest version of the extension.
Line 26: Line 26:
 
== How to update an already installed extension? ==
 
== How to update an already installed extension? ==
  
Assuming updates extensions are available for your version of Slicer, it is currently not possible without uninstalling the extension and re-installing it.
+
Assuming updates extensions are available for your version of Slicer, extensions can either be updated manually or automatically.
  
We are currently developing a mechanism allowing to either manually update or automatically suggest update. In the process of finalizing, reviewing and testing, the corresponding feature will be available in Slicer {{documentation/nextversion}}.
+
See [[Documentation/{{documentation/version}}/SlicerApplication/ExtensionsManager#Updating_installed_extensions|Updating installed extensions]]
 
 
For more details, see [1][2] and [3]
 
 
 
[1] http://na-mic.org/Mantis/view.php?id=2089
 
 
 
[2] https://github.com/mwoehlke-kitware/Slicer/tree/REBASE-2089-update-extensions
 
 
 
[3] http://wiki.slicer.org/slicerWiki/index.php/Documentation/Labs/ExtensionsFrameworkRoadmap
 
  
 
== How to manually download an extension package? ==
 
== How to manually download an extension package? ==
Line 48: Line 40:
 
4) Click ''Download'' button of the selected extension to download the extension package.
 
4) Click ''Download'' button of the selected extension to download the extension package.
  
== How to manually install an extension? ==
+
== How to manually install an extension package? ==
  
1) Get the extension package matching your Slicer version.
+
Option 1. Use extension manager as described [[#Installing_an_extension_without_network_connection|above]]
  
2) Extract the archive (zip or tar.gz) in a folder. You should then have a folder like:
+
Option 2. Use Slicer extension called "DeveloperToolsForExtensions"
  
/path/to/<slicer_revision>-<os>-<bitness>-<extension_name>-<extension_scm><extension_revision>-YYYY-MM-DD
+
Option 3. Fully manual installation:
  
containing one or more of the following folders:
+
* Extract the archive (zip or tar.gz) in a folder. You should then have a folder like:
  
lib/Slicer-X.Y/cli-modules
+
    /path/to/<slicer_revision>-<os>-<bitness>-<extension_name>-<extension_scm><extension_revision>-YYYY-MM-DD
lib/Slicer-X.Y/qt-loadable-modules
 
lib/Slicer-X.Y/qt-scripted-modules
 
  
For more details: [[Documentation/{{documentation/version}}/Developers/DirectoryStructure]]
+
containing one or more of the following folders (for more information on folder structure, click [[Documentation/{{documentation/version}}/Developers/DirectoryStructure|here]]):
  
4) There are two options:
+
    lib/Slicer-X.Y/cli-modules
 +
    lib/Slicer-X.Y/qt-loadable-modules
 +
    lib/Slicer-X.Y/qt-scripted-modules
  
4.a) In the Module settings (Menu -> Edit -> Settings), add all existing paths ending with:
+
* In the Module settings (Menu -> Edit -> Settings), add all existing paths ending with:
  
 
  lib/Slicer-X.Y/cli-modules
 
  lib/Slicer-X.Y/cli-modules
Line 72: Line 64:
 
  lib/Slicer-X.Y/qt-scripted-modules
 
  lib/Slicer-X.Y/qt-scripted-modules
  
4.b) Start Slicer specifying the option <code>--additional-module-paths</code> with all existing paths listed in 4.a.
+
Note: additional module paths can be added temporarily by starting Slicer with the option <code>--additional-module-paths</code>.
  
 
== How to create a custom Slicer version with selected extensions pre-installed? ==
 
== How to create a custom Slicer version with selected extensions pre-installed? ==
Line 81: Line 73:
  
 
3) If all the files in <slicer_install_dir> are copied to any other folder/computer/USB drive/portable storage device then Slicer can be launched by running the Slicer executable in the main directory. No installation or administrative access rights are necessary. Slicer can even be launched directly from a USB drive, without copying files to the computer.
 
3) If all the files in <slicer_install_dir> are copied to any other folder/computer/USB drive/portable storage device then Slicer can be launched by running the Slicer executable in the main directory. No installation or administrative access rights are necessary. Slicer can even be launched directly from a USB drive, without copying files to the computer.
 +
 +
== How to configure network proxy ? ==
 +
 +
Proxy configured by setting <tt>http_proxy</tt> and <tt>https_proxy</tt> environment variables will be used to download extensions. If these variables are not set, Slicer will attempt to the system proxy.
 +
 +
For more details, see [https://doc.qt.io/qt-5/qnetworkproxyfactory.html#setUseSystemConfiguration here]
 +
 +
== Troubleshooting missing extensions ==
 +
 +
Occasionally, expected extensions may be missing from the extension manager
 +
 +
=== Missing extensions for the stable release ===
 +
 +
If an extension you are looking for is missing from the extension manager for the stable release, please post on [https://discourse.slicer.org Discourse] to ask about the current status of the extension
 +
 +
=== Missing extensions for the nightly preview ===
 +
 +
Due to the constantly updating nature of the preview release, extensions may be missing at times:
 +
 +
* Early morning:  Typically, the full set of overnight builds will not be available before 9 am EST
 +
* Factory system errors:  Occasionally, issues with the factory system will prevent some or all extensions from building. See '''Factory extensions status''' below
 +
* Extension build errors: If the above situations are not applicable, the extension itself may have a build error, please post on [https://discourse.slicer.org Discourse] to ask about the current status of the extension
 +
 +
=== Factory extensions status ===
 +
 +
The current status of the Extension Manager is:  '''Good'''
 +
 +
Extensions are being built as expected.  When there are persistent issues with the extensions, this space will contain a link to the last preview installer with the full extension set.

Revision as of 05:51, 5 May 2020

Home < Documentation < Nightly < FAQ < Extensions


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


Extensions

What is an extension ?

Extensions in the Extension manager.

An extension could be seen as a delivery package bundling together one or more Slicer modules. After installing an extension, the associated modules will be presented to the user as built-in ones

The Slicer community maintains a website referred to as the Slicer Extensions Catalog to support finding, downloading and installing of extensions. Access to this website is integral to Slicer and facilitated by the Extensions Manager functionality built into the distributed program.

The Catalog classifies extensions into three levels of compliance:

  1. Category 1: Fully compliant Slicer Extensions: Slicer license, open source, maintained.
  2. Category 2: Open source, contact exists.
  3. Category 3: All other extensions (work in progress, beta, closed source etc).

To publish extensions, developers should consider reading the following pages:

What is the extensions catalog ?

The extensions catalog provides Slicer users with a convenient way to access the extensions previously uploaded on the extensions server:

Why there are no windows 32-bit extensions available ?

  • Win 32 has a very limited amount of memory available to an application.
  • Many registration and segmentation algorithms fail on that platform because they run out of memory, when used with state of large data.
  • Some of these failures are just that, some can crash slicer. Even though the "real" failure is caused by overextending the capabilities of the hardware (in a way the user's fault), it appears to the user that Slicer does not work.
  • If you search the archives of Slicer Users there are several such complaints until we started to discourage people to use 32 bit.

Discussion: http://massmail.spl.harvard.edu/public-archives/slicer-users/2013/006703.html

Should I install the nightly version to access to last extension updates ?

If the extension developers contributed updates for the current stable release, you don't have to install the nightly version of Slicer. You can simply update the extension. Consider reading How to update an already installed extension.

On the other hand, if the extension developers stopped to maintain the version of their extension built against the stable release (so that we can use the latest feature that will be in the next Slicer release), downloading the nightly is the only way to get the latest version of the extension.

How to update an already installed extension?

Assuming updates extensions are available for your version of Slicer, extensions can either be updated manually or automatically.

See Updating installed extensions

How to manually download an extension package?

1) Get revision associated with your install or built Slicer (Menu -> Help -> About). The revision is a number preceded by r character, for example: if the complete version string is 4.3.1-2014-09-14 r23677 the revision is 23677

2) Open the extension catalog (app store). The default Slicer extension catalog is available at: http://slicer.kitware.com/midas3/slicerappstore

3) Select operating system, bitness and enter revision in the empty textbox between the bitness selector and the searchbox. If no revision is entered then the No extensions found message will be displayed.

4) Click Download button of the selected extension to download the extension package.

How to manually install an extension package?

Option 1. Use extension manager as described above

Option 2. Use Slicer extension called "DeveloperToolsForExtensions"

Option 3. Fully manual installation:

  • Extract the archive (zip or tar.gz) in a folder. You should then have a folder like:
   /path/to/<slicer_revision>-<os>-<bitness>-<extension_name>-<extension_scm><extension_revision>-YYYY-MM-DD

containing one or more of the following folders (for more information on folder structure, click here):

   lib/Slicer-X.Y/cli-modules
   lib/Slicer-X.Y/qt-loadable-modules
   lib/Slicer-X.Y/qt-scripted-modules
  • In the Module settings (Menu -> Edit -> Settings), add all existing paths ending with:
lib/Slicer-X.Y/cli-modules
lib/Slicer-X.Y/qt-loadable-modules
lib/Slicer-X.Y/qt-scripted-modules

Note: additional module paths can be added temporarily by starting Slicer with the option --additional-module-paths.

How to create a custom Slicer version with selected extensions pre-installed?

1) Download and install Slicer

2) Install all necessary extensions manually (as described above) in <slicer_install_dir>/lib/Slicer-X.Y/...

3) If all the files in <slicer_install_dir> are copied to any other folder/computer/USB drive/portable storage device then Slicer can be launched by running the Slicer executable in the main directory. No installation or administrative access rights are necessary. Slicer can even be launched directly from a USB drive, without copying files to the computer.

How to configure network proxy ?

Proxy configured by setting http_proxy and https_proxy environment variables will be used to download extensions. If these variables are not set, Slicer will attempt to the system proxy.

For more details, see here

Troubleshooting missing extensions

Occasionally, expected extensions may be missing from the extension manager

Missing extensions for the stable release

If an extension you are looking for is missing from the extension manager for the stable release, please post on Discourse to ask about the current status of the extension

Missing extensions for the nightly preview

Due to the constantly updating nature of the preview release, extensions may be missing at times:

  • Early morning: Typically, the full set of overnight builds will not be available before 9 am EST
  • Factory system errors: Occasionally, issues with the factory system will prevent some or all extensions from building. See Factory extensions status below
  • Extension build errors: If the above situations are not applicable, the extension itself may have a build error, please post on Discourse to ask about the current status of the extension

Factory extensions status

The current status of the Extension Manager is: Good

Extensions are being built as expected. When there are persistent issues with the extensions, this space will contain a link to the last preview installer with the full extension set.