Skip to content, Skip to search

Changes

Distribution

1,199 bytes added, 21 August
Fix typo
__NOTOC__{{Development DevelopMenu | pluginstutorials}}If you create a useful extension of ImageJ—e.g., a [[plugin]], [[script]] or [[macro]]—the next step is to ''distribute'' it to others, including:
* '''Distribute''' the extension itself to users
* Share the extension's '''source code'''
== Best practices ==
Here is a quick summary of the most recommended options we recommend most:
* '''Distribution.'''
** A) '''[[How to set up and populate an update site|create your own update site]]'''; or
** Host it on '''[[GitHub]]'''.
** Use '''[[Maven]]''' to build and SemVer for '''[[versioning]]'''.
** Use '''[[Travis]]''' for continuous integration and artifact deployment to the [[SciJava Maven repository]].
* '''Documentation.'''
** Create a page here on the '''[http://imagej.net/ ImageJ Wiki]'''.
| style="background: #dfd; vertical-align: top" |
* '''[[How to set up and populate an update site| Create your update site]]''', then '''[[How to set up and populate an update site#Uploading_files_to_your_update_site|upload your extension to it]]'''.
* You may add your update site to the list of built-in sites by editing the '''[[list of update sites]]{{ListOfUpdateSites}}''' page.
* To release a new version, '''[[How to set up and populate an update site#Uploading_files_to_your_update_site|upload it to the update site]]'''.
| style="background: #dfd; vertical-align: top" |
| style="background: #dfd; vertical-align: top" |
* '''[[ImageJ 1.x]]''' does not support update sites; users will need to use '''[[ImageJ2]]''' (or '''[[Fiji]]''': "Fiji Is Just ImageJ2"). You can '''[[Updater#Bootstrapping_the_updater|upgrade an ImageJ 1.x installation to ImageJ2]]'''.
* You will miss out on the '''[[Project_management|tools and tests]]''' used to ensure compatibility and reproducibility, making undetected breakages much more likely (at the least).
|-
| colspan="4" style="background: white; border: none; height: 1em" |
|-
| style="background: #dfd; vertical-align: top" |
* Write Make a mail to post on the '''[[Mailing ListsForum|fiji-devel mailing listImageJ forum]]''' to initiate a request.
| style="background: #dfd; vertical-align: top" |
* Users '''[[Fiji/Downloads|install Fiji]]''', or '''[[How to follow a 3rd party update site|enable the Fiji update site]]'''.
| style="background: #dfd; vertical-align: top" |
* Your extension is available with Fiji out of the box.
* A '''[[Governance|Fiji maintainer]]''' will help you to manage your project.
* The ImageJ You can lean on existing tools and documentation to maintain '''[[Jenkinsreproducible builds|reproducibility]]''' server of your project.* Your project will always be compatible with the latest Fiji distribution.* [[Travis]] automatically tests your project for errors, deploying successful builds to the [[SciJava Maven repository]].
| style="background: #dfd; vertical-align: top" |
* You must abide by the '''[[Fiji contribution requirements]]'''.
* All of '''[[ImageJ]]''', '''[[Fiji]]''' and related '''[[SciJava]]''' projects are '''[[Source code|hosted on GitHub]]'''.
| style="background: #dfd; vertical-align: top" |
* Git has a steep learning curve—the '''[https://windowsdesktop.github.com/ GitHub for WindowsDesktop]''' and '''[https://mac.github.com/ GitHub for Mac]''' clients make client makes things easier.
|-
| colspan="3" style="background: white; border: none; height: 1em" |
|-
| colspan="3" style="background: lightgray#afa" | '''Host on GitHub in the Fiji organization(for [[Fiji contribution requirements|extensions distributed with Fiji]])'''
|-
| style="background: #dfd" |'''Steps'''| style="background: #dfd" |'''Advantages'''| style="background: #dfd" |'''Disadvantages'''
|-
| style="background: #dfd; vertical-align: top" |* Request a '''[[Governance|Fiji maintainer]] ''' create a repository for you and add you as a contributor.* Abide by Meet the '''[[Fiji contribution requirements]]'''.| style="background: #dfd; vertical-align: top" |
* All the benefits of GitHub.
* A '''[[Governance|Fiji maintainer]] ''' helps you to manage your project.| style="background: #dfd; vertical-align: top" |* You must abide by the '''[[Fiji contribution requirements]]'''.
|-
| colspan="3" style="background: white; border: none; height: 1em" |
* No easy submission of patches.
* No finding the code in web searches.
* No revision control systemreading the change logs to understand why changes were made.* No revision control system!studying the history to better understand the project's activity.* No bisecting the history to track down when bugs were introduced.* No safety net to revert unwanted changes or avoid lost work.* No branching to maintain multiple development trajectories.* No easy switching between versions.* No automatic credit and tracking of which authors did which work.* No distribution and backup of the project's development history.
|}
| style="vertical-align: top" |
* The [http://imagejdocu.tudor.lu/ ImageJ Information and Documentation Portal] predates the ImageJ wiki, and many extensions are still primarily documented there.
* The IIDP is a fairly [http://imagejdocu.tudor.lu/doku.php?id=start&do=recent active] wiki(but not [[Special:RecentChanges|compared to this one]]!).
* The ImageJ developers hope to unify these two wikis in the future.
| style="vertical-align: top" |
| style="vertical-align: top" |
* Prepare an HTML page modeled after the [http://imagej.net/plugins/index.html list of ImageJ 1.x plugins].
* Email it to Wayne {{Person|Rasband}}, the developer of ImageJ 1.x, and sole maintainer of the [http://imagej.net/index.html ImageJ 1.x website].
| style="vertical-align: top" |
* Listed on the ImageJ 1.x website.
Bureaucrat, emailconfirmed, incoming, administrator, uploaders
11,813
edits