Difference between revisions of "Documentation/Nightly/Developers/Tutorials/BuildTestPackageDistributeExtensions"

From Slicer Wiki
Jump to: navigation, search
(moved to readthedocs)
Tags: 2017 source edit, Replaced
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
<noinclude>{{documentation/versioncheck}}</noinclude>
 
<noinclude>{{documentation/versioncheck}}</noinclude>
  
To learn what is an extension, see [[Documentation/Nightly/Developers/FAQ#What_is_an_extension_.3F|here]]
+
{{documentation/banner
 
+
| text  = [https://slicer.readthedocs.io/en/latest/developer_guide/extensions.html This page has been moved to read-the-docs.]
== Step-by-step: How to create, publish, distribute and maintain an extension ? ==
+
| background-color = 8FBC8F }}
 
 
* Scan through the [[Documentation/{{documentation/version}}/FAQ/Extensions|user]] and [[Documentation/{{documentation/version}}/Developers/FAQ/Extensions|developer]] extension FAQs
 
* Optional: Present your extension(s) on the [http://massmail.bwh.harvard.edu/mailman/listinfo/slicer-devel slicer developers list] to check if other developer are working on a similar project, to seek for advice or to reach out for potential collaborator.
 
* Optional (required if developing loadable or CLI [[Documentation/{{documentation/version}}/Developers/Modules|module types]]): [[Documentation/{{documentation/version}}/Developers/Build_Instructions|Build Slicer application]] in <code>Release</code>.
 
* Use the Extension Wizard to create an extension bundling your module(s). Learn more about ExtensionWizard capabilities [[Documentation/{{documentation/version}}/Developers/ExtensionWizard|here]]. To learn about extension description file format see [[Documentation/{{documentation/version}}/Developers/Extensions/DescriptionFile|here]]
 
* Upload source code of your extension to a publicly available repository
 
** GitHub is recommended (due to large user community, free public project hosting): join [https://github.com/join Github] and [https://help.github.com/articles/set-up-git#set-up-git setup Git]
 
** Extension Wizard command-line interface can upload source code of your extension to GitHub:
 
{{pre2|<nowiki>$ bin/slicerExtensionWizard --publish ~/Slicer-MyExtension/</nowiki>}}
 
* Implement your extension. <code>Hack, hack, hack :)</code>.
 
* Create documentation page for your extension
 
** It is recommended to use the Slicer wiki: [[Documentation/{{documentation/version}}/Developers/Tutorials/DocumentExtension#Extension_page|Create a documentation page for your extension]].
 
* Optional (necessary, if you want to upload test data to MIDAS or troubleshoot extension upload problems): [[Documentation/{{documentation/version}}/Developers/Tutorials/ObtainExtensionServerApiKey|Create an account on the extension server and obtain an API Key]]. You will then use your midas login and api key to substitute <code><YOUR-MIDAS-LOGIN></code> and <code><YOUR-MIDAS-APIKEY></code> in the examples. Go to [http://slicer.kitware.com/midas3/community/23 NA-MIC community] and click on <code>Join community</code></p></li>
 
* Optional (required for loadable and CLI modules): [[Documentation/{{documentation/version}}/Developers/FAQ/Extensions#How_to_build_an_extension_.3F|Build your extension]]
 
* Test your extension:
 
** If you have built your extension then build the PACKAGE target to create a package file that you can install from the Extension Manager by clicking the small tool icon in the top-right corner.
 
** If you have not built your extension then set up your extension manually: [[Documentation/{{documentation/version}}/Developers/FAQ#How_to_manually_install_an_extension.3F|Build your extension]]
 
* If you consider your extension is ready for distribution, contribute it to the ExtensionsIndex:
 
** Fork ExtensionIndex repository (https://github.com/Slicer/ExtensionsIndex), add your extension, and send a pull request
 
** The Extension Wizard can automate this by the following command:
 
 
 
  {{pre2|<nowiki>$ bin/slicerExtensionWizard --contribute ~/Slicer-MyExtension/</nowiki>}}
 
 
 
If you shared your extension by adding it to the ExtensionWizard, make sure you know about the Slicer testing dashboard: http://slicer.cdash.org/index.php?project=Slicer4&display=project
 
 
 
The dashboard will attempt to check out the source code of your extension, build, test and package it on Windows, Linux and Windows platforms. To find your extension, go to the bottom of the section "Extensions-Nightly", and select "All" for "Items per page". Search the page for the name of your extension. If you see red in any of the columns for your extension, click on the hyperlinked number of errors to see the details.
 
 
 
Always check the dashboard after you first introduce your extension, or after you make any changes to the code!
 

Latest revision as of 20:39, 8 June 2020

Home < Documentation < Nightly < Developers < Tutorials < BuildTestPackageDistributeExtensions