Difference between revisions of "Distribution"
(→Sharing your source code: Change snarky "no revision control system" points into real points. Just off the top of my head.) |
(Fix typo) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | __NOTOC__{{ | + | __NOTOC__{{DevelopMenu | tutorials}}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 | * '''Distribute''' the extension itself to users | ||
* Share the extension's '''source code''' | * Share the extension's '''source code''' | ||
Line 14: | Line 14: | ||
** Host it on '''[[GitHub]]'''. | ** Host it on '''[[GitHub]]'''. | ||
** Use '''[[Maven]]''' to build and SemVer for '''[[versioning]]'''. | ** Use '''[[Maven]]''' to build and SemVer for '''[[versioning]]'''. | ||
+ | ** Use '''[[Travis]]''' for continuous integration and artifact deployment to the [[SciJava Maven repository]]. | ||
* '''Documentation.''' | * '''Documentation.''' | ||
** Create a page here on the '''[http://imagej.net/ ImageJ Wiki]'''. | ** Create a page here on the '''[http://imagej.net/ ImageJ Wiki]'''. | ||
Line 32: | Line 33: | ||
| style="background: #dfd; vertical-align: top" | | | 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]]'''. | * '''[[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 ''' | + | * You may add your update site to the list of built-in sites by editing the '''{{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]]'''. | * 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" | | ||
Line 65: | Line 66: | ||
* You can lean on existing tools and documentation to maintain '''[[reproducible builds|reproducibility]]''' of your project. | * You can lean on existing tools and documentation to maintain '''[[reproducible builds|reproducibility]]''' of your project. | ||
* Your project will always be compatible with the latest Fiji distribution. | * 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" | | | style="background: #dfd; vertical-align: top" | | ||
* You must abide by the '''[[Fiji contribution requirements]]'''. | * You must abide by the '''[[Fiji contribution requirements]]'''. |
Latest revision as of 20:11, 21 August 2019
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
- Document the extension somewhere
Best practices
Here is a quick summary of the most recommended options:
- Distribution.
- Source code.
- Make your project open source.
- 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 ImageJ Wiki.
The tables below discuss additional 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 |
|
|
|
|
Distribute it as part of Fiji | |||
Steps | Installation | Advantages | Disadvantages |
|
|
|
|
Serve it from a website as a download | |||
Steps | Installation | Advantages | Disadvantages |
|
|
|
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.
Host on GitHub in your userspace or organization | ||
Steps | Advantages | Disadvantages |
|
|
|
Host on GitHub in the Fiji organization (for extensions distributed with Fiji) | ||
Steps | Advantages | Disadvantages |
|
|
|
Host on BitBucket | ||
Steps | Advantages | Disadvantages |
|
|
|
Host on SourceForge | ||
Steps | Advantages | Disadvantages |
|
|
|
Serve it from a website as a download | ||
Steps | Advantages | Disadvantages |
|
|
|
Documenting your extension
Useful extensions deserve corresponding documentation explaining how to use them.
Create an ImageJ wiki page | ||
Steps | Advantages | Disadvantages |
|
|
- |
Use the ImageJ Information and Documentation Portal (IIDP) | ||
Steps | Advantages | Disadvantages |
|
|
|
Add a page to the ImageJ 1.x website | ||
Steps | Advantages | Disadvantages |
|
|
|
Create your own webpage elsewhere | ||
Steps | Advantages | Disadvantages |
(Varies) |
|
|