Home < Documentation < 4.6 < Developers < Tutorials < BuildTestPackageDistributeExtensions
For the latest Slicer developers documentation, visit the Nightly page.
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
- 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-APIKEY>in the examples. Go to NA-MIC community and click on
- 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/