In Icy, plugins are small modules containing one or several functionalities.
Here you will find how to publish and share an Icy plugin on the Icy website in three steps:
- Create an account for each author of the plugin. Please indicate your real name and prefer one account per physical author rather than one account per lab or team.
- Log in your account, click on “New -> Plugin”
- Then fill the plugin description and upload your plugin JAR file. Below are details on the different sections of the description form.
Why publish a plugin?
Whether your plugin is a full bioimage analysis workflow, a single component or a collection of components, it deserves visibility. Publishing gives visibility to your plugin in the bioimage analysis community: published plugins can be found on the Icy website and directly from the software via a keyword search.
Publishing also contributes to a more transparent and reproducible research.
Do you need some inspiration before getting started ? The ec-CLEM plugin is an example of plugin published in the Icy plugin section.
How to fill the plugin description
Title: Meaningful but not too long. This title is the main name of your plugin and will also be used to define its online URL.
Classname: This is the complete name of the class extending the Plugin class (or the EzPlug class if you use it) in your Plugin.
Here’s a small example :
The DetectionToROI class extends the EzPlug class (which internally extends the Plugin class), so that is the name of this class – DetectionToROI – that we need to provide in the classname field. Note that we have to provide the complete class name with the package name so here: classname = plugins.stef.tools.DetectionToROI
Icon: Icy software accepts a PNG image of minimum size 64×64 pixels, but note that the m
isible in the ribbon menu. Upload a meaningful image that nicely renders in small size to describe your plugin. Otherwise, you’ll get the default Icy plugin icon.Tooltip: 256×256 pixels, PNG, visible when looking at the description of the plugin (mousing over the plugin in the search bar or hovering over the plugin icon in the ribbon menu) or on the website when searching a plugin. Upload an image from a use case example that nicely renders in small size to describe your plugin. Otherwise, you’ll get the default plugin icon. Better not use the same image as for the icon.
Miniscreen: not needed.
Splashscreen: Appears when launching Icy if selected by the Icy kernel developers. Use the Splash Screen maker plugin to prepare your splashcreen. Once your splashscreen is uploaded along with your plugin description, contact the Icy kernel developers on the image.sc forum, categorie “Development”, tag “icy” to ask for your splashscreen to be added to the list of images displayed upon Icy launching.
Links: Links to a reference publication and/or to the Zenodo and/or a GitHub repository hosting your code or test images. We encourage you to link your Zenodo upload to the Icy Bioimage Analysis software Zenodo community. Please help & encourage other users to cite your plugin by writing as much information as needed in the description.
Affiliation: Your affiliation lab / team / unit and institute or company.
Short description: A few sentences full of keywords of interest to explain what your plugin is doing. This will also appear under the plugin title in a Google search.
Documentation: Add details on your plugin, such as explanation on the type of image your plugin can process, the algorithm(s) you used, the parameters… Add also screenshots of your plugin and don’t hesitate to add video tutorials to describe it more in details. And add link to test images available in public archives, such as Zenodo or the Bioimage Archive.
Moreover, mention if your plugin has a block equivalent and if this block was used in a protocol published on the Icy website or/and in a scientific journal. Mention also how to call the different methods from a script.
Versions: This is were you actually publish new versions of your plugin !
- Click on “Add file” to upload your plugin (.jar file)
- Add a release date. Unless you have good reasons to do it differently, choose the date of the current day.
- Add a version number of the plugin. For softwares, versions are usually defined with 3 numbers (major.minor.patch). For the Icy software, we chose to use a 4 digit representation (major.minor.patch.build). You can use only use the 3 first digits and keep the 4th one (build) to 0. You’ll find more details on software versioning here.
- Min. Kernel version: minimal Icy version needed to run the plugin
- Changelog: Write “first release” if this is the first time you upload this plugin. Otherwise, give details on what has changed compared to the previous version.
Dependencies
Select manually all the dependencies of your plugins in the list of available plugins. If you use a specific library that is not already available in Icy then you should create a specific empty plugin, using the PluginLibrary interface preferably, that includes only classes binary from this library. This will make this specific library available in Icy for everyone.
Categorie
Choose the most meaningful keywords to describe your plugin. These categories are used by search engines to find your plugin.
Tags
Similar to categories, leave empty or choose the most meaningful keywords to describe your plugin. These tags are used by search engines to find your plugin.
Featured image
Appear in Twitter posts mentioning the URL of the plugin description. Use the Twitter card validator to preview a Twitter post and check that the featured image is nicely displayed.
Dependencies
Discussion
Accept or not reviews from users.
Publish
Click on publish when you are ready to release your plugin. You can save the draft for later and preview the changes. Note that you can modify this page at any time after publication.
How to add or modify authors
You can add or modify authors even after publishing your plugin. Add maintainers and contact persons for the plugin if the original authors of the plugin are not working on this topic anymore. All authors need to have an user account on the Icy website.