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

From Slicer Wiki
Jump to: navigation, search
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{:Documentation/{{documentation/version}}/Extensions/Description}}
+
<noinclude>{{documentation/versioncheck}}</noinclude>
 
+
<noinclude>
 
 
 
__TOC__
 
__TOC__
  
Line 10: Line 9:
 
The following text details the policies for Slicer Extensions. These policies are subject to change without notice at the discretion of the Slicer PI. It is expected that this will happen rarely and after consultation with the Slicer community.
 
The following text details the policies for Slicer Extensions. These policies are subject to change without notice at the discretion of the Slicer PI. It is expected that this will happen rarely and after consultation with the Slicer community.
  
=Requirements for Category 1 Slicer Extensions=
+
</noinclude>
 +
 
 +
= Requirements for Slicer Extensions =
 +
== Category 1 ==
  
 
Category 1 extensions must meet the following conditions:
 
Category 1 extensions must meet the following conditions:
Line 19: Line 21:
 
* have a designated person to [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel answer emails] in relation to the extension which are posted on both the [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-users users] and [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel developers] Slicer mailing lists.
 
* have a designated person to [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel answer emails] in relation to the extension which are posted on both the [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-users users] and [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel developers] Slicer mailing lists.
 
* are updated to support new versions of the OS, new versions of packages (such as VTK, ITK), etc.
 
* are updated to support new versions of the OS, new versions of packages (such as VTK, ITK), etc.
 +
* have clear description, icon, screenshots and tutorials
  
=Requirements for Category 2 Slicer Extensions=
+
== Category 2 ==
 
Category 2 extensions must meet the following conditions:
 
Category 2 extensions must meet the following conditions:
 
* be available under a compatible [https://en.wikipedia.org/wiki/Open_source open source] license
 
* be available under a compatible [https://en.wikipedia.org/wiki/Open_source open source] license
Line 26: Line 29:
 
* have a clear declaration about the license under which the code is distributed
 
* have a clear declaration about the license under which the code is distributed
 
* have [[Documentation/{{documentation/version}}/Developers/Tutorials/DocumentExtension|documentation]] page
 
* have [[Documentation/{{documentation/version}}/Developers/Tutorials/DocumentExtension|documentation]] page
 +
* have clear description, icon, screenshots and optionally tutorials
  
=Category 3 Slicer Extensions=
+
== Category 3 ==
 
Category 3 Slicer Extensions cover everything else, including developers who do not want to share their source code or extensions.
 
Category 3 Slicer Extensions cover everything else, including developers who do not want to share their source code or extensions.
 
* I do not want to share my source code: When source code is not shared, it is not possible to inspect the code for malicious content. This is a potential security risk that we will not accept for the Slicer website.
 
* I do not want to share my source code: When source code is not shared, it is not possible to inspect the code for malicious content. This is a potential security risk that we will not accept for the Slicer website.
* Developers are free to set up their own Midas servers for hosting extensions if they want to host category 3 extensions, or can just make .tar.gz files and set the module path in Slicer manually.
+
* Developers are free to set up their own Midas servers for hosting extensions if they want to host category 3 extensions, or can just make .tar.gz files and either install the package manually from the [[Documentation/{{documentation/version}}/SlicerApplication/ExtensionsManager|Extension manager]] or set the module path in Slicer manually.
 +
 
 +
<noinclude>
 +
 
 +
= What is an extension ? =
 +
{{:Documentation/{{documentation/version}}/Extensions/Description}}
 +
</noinclude>

Latest revision as of 15:22, 18 March 2016

Home < Documentation < Nightly < Extensions < CatalogPolicies


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


Disclaimer

This is work in progress as of April 2012 - people with an interest in policies and practice related to this topic should contact Ron Kikinis.

The following text details the policies for Slicer Extensions. These policies are subject to change without notice at the discretion of the Slicer PI. It is expected that this will happen rarely and after consultation with the Slicer community.


Requirements for Slicer Extensions

Category 1

Category 1 extensions must meet the following conditions:

  • comply with the Slicer License
  • compile and install on all platforms supported by Slicer
  • have test coverage of better than 60%. See issue #2172
  • have documentation at a level of quality comparable to slicer core modules
  • have a designated person to answer emails in relation to the extension which are posted on both the users and developers Slicer mailing lists.
  • are updated to support new versions of the OS, new versions of packages (such as VTK, ITK), etc.
  • have clear description, icon, screenshots and tutorials

Category 2

Category 2 extensions must meet the following conditions:

  • be available under a compatible open source license
  • have a designated maintainer to respond to questions about the extension
  • have a clear declaration about the license under which the code is distributed
  • have documentation page
  • have clear description, icon, screenshots and optionally tutorials

Category 3

Category 3 Slicer Extensions cover everything else, including developers who do not want to share their source code or extensions.

  • I do not want to share my source code: When source code is not shared, it is not possible to inspect the code for malicious content. This is a potential security risk that we will not accept for the Slicer website.
  • Developers are free to set up their own Midas servers for hosting extensions if they want to host category 3 extensions, or can just make .tar.gz files and either install the package manually from the Extension manager or set the module path in Slicer manually.


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: