|
|
Line 149: |
Line 149: |
| |'''Disadvantages''' | | |'''Disadvantages''' |
| |- | | |- |
| + | | style="vertical-align: top" | |
| * Create an archive (TAR, ZIP, etc.). | | * Create an archive (TAR, ZIP, etc.). |
| * Upload the archive to the relevant web space, and link it. | | * Upload the archive to the relevant web space, and link it. |
− | | style="vertical-align: top" |
| |
| * Users download and unpack the archive. | | * Users download and unpack the archive. |
| | style="vertical-align: top" | | | | style="vertical-align: top" | |
Revision as of 05:26, 25 September 2014
Template:DevelopmentIf 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
- Document the extension somewhere
The tables below discuss options for these three aspects of distribution. Green items are recommended. Other options are given but not recommended for various reasons.
Distributing your extension
The first goal is to get your extension into the hands of users.
Create your own update site
|
Steps
|
Installation
|
Advantages
|
Disadvantages
|
|
|
- You do not need server space to host your extensions; you can use a personal update site hosted on the ImageJ web site.
- Alternately, you can retain full control by hosting your update site yourself.
- Users are notified of updates without needing to check proactively.
- The updater manages dependencies for you.
- You can automate distribution using the command line updater.
|
|
Distribute it as part of Fiji
|
Steps
|
Installation
|
Advantages
|
Disadvantages
|
|
|
- Your extension is available with Fiji out of the box.
- A Fiji administrator will help (force ;-) you to manage your project.
|
|
Serve it from a website as a download
|
Steps
|
Installation
|
Advantages
|
Disadvantages
|
- Create an archive (TAR, ZIP, etc.).
- Upload the archive to the relevant web space, and link it.
|
- Users download the archive, unpacking it into ImageJ's
plugins folder.
|
- You avoid the activation barrier of learning to use the Updater.
|
- Users must find your plugin via a link or web search.
- Users must perform a manual installation procedure.
- Users must manually check for later updates.
- Users will report bugs found in outdated versions of the extension.
|
Sharing your source code
If you want to facilitate good science, please share your source code. Otherwise, your extension is a black box and its results are not verifiable.
Tip: The recommended way to share your source is to host it on
GitHub!
Host on GitHub in your userspace or organization
|
Steps
|
Advantages
|
Disadvantages
|
|
- Git is an incredibly powerful way to keep track of your code.
- GitHub greatly facilitates collaboration: sharing ideas and patches.
- Seriously: Git and GitHub are amazing tools, and you will be orders of magnitude less effective without them.
- "Doing it in public" is a great way to stop sucking and be awesome instead.
- All of ImageJ, Fiji and related SciJava projects are hosted on GitHub.
|
|
Host on GitHub in the Fiji organization
|
Steps
|
Advantages
|
Disadvantages
|
|
- All the benefits of GitHub.
- A Fiji maintainer helps (forces ;-) you to manage your project.
|
- You must abide by the Fiji contribution requirements.
|
Host on BitBucket
|
Steps
|
Advantages
|
Disadvantages
|
- Similar to GitHub, but using BitBucket instead.
|
|
- ImageJ and related projects are hosted on GitHub, not BitBucket.
- BitBucket has a smaller user base than GitHub does.
|
Host on SourceForge
|
Steps
|
Advantages
|
Disadvantages
|
|
- SourceForge predates GitHub; some people prefer it.
|
- The interface is not as good as GitHub and BitBucket.
- The collaboration features are vastly inferior.
- SourceForge has a lot of downtime. (The ImageJ mirrors of SourceForge projects hence have a lot of problems.)
- Using SourceForge is highly discouraged compared to other code hosting sites.
|
Serve it from a website as a download
|
Steps
|
Advantages
|
Disadvantages
|
- Create an archive (TAR, ZIP, etc.).
- Upload the archive to the relevant web space, and link it.
- Users download and unpack the archive.
|
- You avoid the activation barrier of learning a revision control system.
|
- No revision control system.
- No easy browsing of source code online.
- No easy submission of patches.
- No finding the code in web searches.
- No revision control system.
- No revision control system!
|
Documenting your extension
Useful extensions deserve corresponding documentation explaining how to use them.
Tip: The best place to document your extension is here on the
ImageJ Wiki!
Create an ImageJ wiki page
|
Steps
|
Advantages
|
Disadvantages
|
|
- The ImageJ wiki is part of imagej.net, the integrated ImageJ web site.
- The ImageJ wiki uses MediaWiki, the most popular wiki engine which drives Wikipedia.
- You can get started immediately; no human needs to approve your account or edits.
|
-
|
Use the ImageJ Information and Documentation Portal (IIDP)
|
Steps
|
Advantages
|
Disadvantages
|
- Request an account from an IIDP administrator.
- Create a page for your extension.
|
|
- The IIDP documents only ImageJ 1.x, not ImageJ2.
- You must explicitly request an IIDP account from an administrator.
- The wiki uses Plone, a lesser known CMS engine.
|
Add a page to the ImageJ 1.x website
|
Steps
|
Advantages
|
Disadvantages
|
|
- Listed on the ImageJ 1.x website.
|
- Not collaborative. No one else can edit the ImageJ 1.x website—not even you!
- Hence, turnaround time on updates is longer.
- The list of plugins there is extensive and difficult to sort through.
|
Create your own webpage elsewhere
|
Steps
|
Advantages
|
Disadvantages
|
(Varies)
|
- Total control of the content
|
- Nonstandard location. Users may have trouble finding your documentation.
- Not collaborative. No one else can improve the documentation.
- If your site goes down, users lose access to the information. (This happened with the 3D Viewer a while back. And the MBF Plugin Collection went permanently offline!)
|