Difference between revisions of "Documentation/Nightly/Developers/Tutorials/BuildTestPackageDistributeExtensions"
From Slicer Wiki
Line 2: | Line 2: | ||
To learn what is an extension, see [[Documentation/Nightly/Developers/FAQ#What_is_an_extension_.3F|here]] | To learn what is an extension, see [[Documentation/Nightly/Developers/FAQ#What_is_an_extension_.3F|here]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Step-by-step: How to create, publish and distribute an extension ? == | == Step-by-step: How to create, publish and distribute an extension ? == | ||
− | + | * 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>}} | {{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>}} | {{pre2|<nowiki>$ bin/slicerExtensionWizard --contribute ~/Slicer-MyExtension/</nowiki>}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 03:19, 7 November 2016
Home < Documentation < Nightly < Developers < Tutorials < BuildTestPackageDistributeExtensions
For the latest Slicer documentation, visit the read-the-docs. |
To learn what is an extension, see here
Step-by-step: How to create, publish and distribute an extension ?
- Scan through the user and developer extension FAQs
- Optional: Present your extension(s) on the 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 module types): Build Slicer application in
Release
. - Use the Extension Wizard to create an extension bundling your module(s). Learn more about ExtensionWizard capabilities here. To learn about extension description file format see here
- Upload source code of your extension to a publicly available repository
$ bin/slicerExtensionWizard --publish ~/Slicer-MyExtension/
- Implement your extension.
Hack, hack, hack :)
. - Create documentation page for your extension
- It is recommended to use the Slicer wiki: Create a documentation page for your extension.
- Optional (necessary, if you want to upload test data to MIDAS or troubleshoot extension upload problems): Create an account on the extension server and obtain an API Key. You will then use your midas login and api key to substitute
<YOUR-MIDAS-LOGIN>
and<YOUR-MIDAS-APIKEY>
in the examples. Go to NA-MIC community and click onJoin community
- Optional (required for loadable and CLI modules): 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: 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:
$ bin/slicerExtensionWizard --contribute ~/Slicer-MyExtension/