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

From Slicer Wiki
Jump to: navigation, search
(moved to readthedocs)
Tags: 2017 source edit, Replaced
 
(16 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>}}
 
−
 
 
−
=== Continuous Integration ===
 
−
 
 
−
If you shared your extension by using the ExtensionWizard, make sure you know about the Slicer testing dashboard:
 
−
 
 
−
<p class="mw-code"> [[{{tool|logo|cdash}}|x25px]] http://slicer.cdash.org/index.php?project=Slicer4&display=project</p>
 
−
 
 
−
The dashboard will attempt to check out the source code of your extension, build, test and package it on Linux, MacOSX and Windows platforms.
 
−
 
 
−
 
 
−
To find your extension, use the following link replacing <code>Slicer-MyExtension</code> with the name of your extension:
 
−
 
 
−
<pre>
 
−
http://slicer.cdash.org/index.php?project=Slicer4&filtercount=1&showfilters=1&field1=buildname&compare1=63&value1=Slicer-MyExtension
 
−
</pre>
 
−
 
 
−
For example, here is the link to check the status of the <code>SlicerDMRI</code> extension:
 
−
 
 
−
<p class="mw-code">http://slicer.cdash.org/index.php?project=Slicer4&filtercount=1&showfilters=1&field1=buildname&compare1=63&value1=SlicerDMRI</p>
 
−
 
 
−
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