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

From Slicer Wiki
Jump to: navigation, search
(Undo revision 30265 by JChris.FillionR (Talk))
Line 9: Line 9:
  
 
==Contribute an extension description file ==
 
==Contribute an extension description file ==
 +
 +
There are multiple branches on the ExtensionsIndex:
 +
 +
* <code>master</code>: This branch contain description files of extensions that will be built against Slicer nightly.
 +
* [...]
 +
* <code>{{documentation/currentversion}}</code>: This branch contain description files of extensions that will be built against latest Slicer {{documentation/currentversion}} available patch release.
 +
 +
The reasoning behind this conservative approach is that since both the Slicer API and ABI associated with Slicer base libraries are changing often, extensions available for download for a given revision of Slicer are built against that same revision of Slicer.
 +
 +
It means that developer willing to have their extensions available on the different versions of Slicer will have to submit [https://help.github.com/articles/using-pull-requests pull requests] for each version.
 +
 +
== Extensions build against Slicer trunk ==
 
* [https://github.com/Slicer/ExtensionsIndex#contributing See instructions on github]
 
* [https://github.com/Slicer/ExtensionsIndex#contributing See instructions on github]
 
* Consider also reading [https://github.com/Slicer/ExtensionsIndex/wiki/Extension-description-file Extension description file format]
 
* Consider also reading [https://github.com/Slicer/ExtensionsIndex/wiki/Extension-description-file Extension description file format]
 +
 +
== Extensions build against Slicer {{Documentation/currentversion}} ==
 +
 +
* Follow instruction reported in section [[Documentation/{{documentation/version}}/Developers/Tutorials/BuildTestPackageDistributeExtensions#Extensions_build_against_Slicer_{{Documentation/currentversion}}|Requesting an extension version update / Extensions_build_against_Slicer_{{Documentation/currentversion}}]] and set the title of the commit to be <code>add-<ExtensionName></code>.
  
 
= Requesting an extension version update =
 
= Requesting an extension version update =

Revision as of 21:20, 4 February 2013

Home < Documentation < Nightly < Developers < Tutorials < BuildTestPackageDistributeExtensions

Create a new extension and adding it to the extension index

See instructions on github

Obtain an API key to submit on the extension server

See instructions on github

Upload an extension in the experimental folder

See instructions on github

Contribute an extension description file

There are multiple branches on the ExtensionsIndex:

  • master: This branch contain description files of extensions that will be built against Slicer nightly.
  • [...]
  • 4.10: This branch contain description files of extensions that will be built against latest Slicer 4.10 available patch release.

The reasoning behind this conservative approach is that since both the Slicer API and ABI associated with Slicer base libraries are changing often, extensions available for download for a given revision of Slicer are built against that same revision of Slicer.

It means that developer willing to have their extensions available on the different versions of Slicer will have to submit pull requests for each version.

Extensions build against Slicer trunk

Extensions build against Slicer 4.10

Requesting an extension version update

On your local fork, the idea is to create the following topic branches:

  • update-<YourExtensionName> based of master integration branch.
  • update-<YourExtensionName>-4.2 based of 4.2 integration branch.


Extensions build against Slicer trunk

The following instruction describes how to contribute extension description file updates for an extension being built against slicer trunk.

  • Update the master branch of both your local clone and your online ExtensionsIndex fork
git remote add upstream git://github.com/Slicer/ExtensionsIndex   # Add reference to the authoritative ExtensionsIndex
git fetch upstream                                                # Fetch change of the authoritative ExtensionsIndex
git checkout master                                               # Checkout master
git reset --hard upstream/master                                  # Reset your local master branch using the authoritative master 
git push origin master                                            # Update the master branch of your online fork
  • Create a branch named update-<YourExtensionName> in the clone of your forked ExtensionsIndex
git checkout -b update-<YourExtensionName>


Extensions build against Slicer 4.10

The following instruction describes how to contribute extension description file updates for an extension being built against slicer trunk.

  • Update the 4.2 branch of both your local clone and your online ExtensionsIndex fork
git remote add upstream git://github.com/Slicer/ExtensionsIndex   # Add reference to the authoritative ExtensionsIndex
git fetch upstream                                                # Fetch change of the authoritative ExtensionsIndex
git checkout 4.2                                                  # Checkout 4.2
git reset --hard upstream/4.2                                     # Reset your local 4.2 branch using the authoritative 4.2
git push origin 4.2                                               # Update the 4.2 branch of your online fork
  • Create a branch named update-<YourExtensionName>-4.2 in the clone of your forked ExtensionsIndex
git checkout -b update-<YourExtensionName>-4.2