This document described what are the steps to follow when a Slicer developer requests the integration of a new extension in the Slicer ExtensionsIndex repository.
It is assumed that the extension is compliant with the slicer requirements.
Additonally, since extensions published in the index will be taken as example by other developers in the community, Slicer coding style and testing practice should be applied (indent, naming convention, test data uploaded on midas, ...)
The rest of the document will consider the example of issue #33 associated to the request of Andriy Fedorov regarding the integration of the Reporting module. See Slicer/ExtensionsIndex#33
Either clone the repository or get the latest changes
$ git checkout git@github.com:Slicer/ExtensionsIndex.git
git fetch origin
git checkout master
git reset --hard origin/master
$ git remote add fedorov git://github.com/fedorov/ExtensionsIndex.git
$ git fetch fedorov
[...]
* [new branch] 33-add-Reporting -> fedorov/33-add-Reporting
[...]
$ git checkout -b 33-add-Reporting fedorov/33-add-Reporting
$ git checkout master
$ git merge 33-add-Reporting fedorov --log --no-ff
Note: To speed up the experimental build of the Extension index. Extra s4ext files could locally be deleted.
$ cmake -DSlicer_DIR:PATH=/home/jchris/Projects/Slicer4-Superbuild-Debug/Slicer-build/ \
-DSlicer_EXTENSION_DESCRIPTION_DIR:PATH=/home/jchris/Projects/SlicerExtensionsIndex \
-DMIDAS_PACKAGE_URL:STRING=http://slicer.kitware.com/midas3/
-DMIDAS_PACKAGE_EMAIL:STRING=<YOUR-MIDAS_LOGIN>
-DMIDAS_PACKAGE_API_KEY:STRING=<YOUR-API-KEY>
../Slicer4/Extensions/CMake/
$ make -j4
For additional details: https://github.com/Slicer/ExtensionsIndex#build-your-own-set-of-extensions-against-slicer-trunk-build-tree
To be integrated into the Slicer ExtensionsIndex, the tested extension should build without any error and all test passing on the platform you are testing with.
If there are build issues, or if you fail to install the extension, add a note on the associated issue. For example: Slicer/ExtensionsIndex#33 (comment) or Slicer/ExtensionsIndex#34 (comment)
In case the ExtensionsIndex has been updated by an other ExtensionsIndex maintainer, let's make sure the latested changes have been been fetched.
$ git checkout master
$ git reset --hard HEAD^
$ git pull origin master
Integrate the topic and publish changes:
git merge 33-add-Reporting --no-log --no-ff
git push origin master