From Slicer Wiki
Jump to: navigation, search
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 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
    • GitHub is recommended (due to large user community, free public project hosting): join Github and setup Git
    • Extension Wizard command-line interface can upload source code of your extension to GitHub:
$ bin/slicerExtensionWizard --publish ~/Slicer-MyExtension/
  • Implement your extension. Hack, hack, hack :).
  • Create 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 on Join 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:
$ bin/slicerExtensionWizard --contribute ~/Slicer-MyExtension/