[ImageJ-devel] plugin versioning

Mark Hiner hiner at wisc.edu
Thu Jul 30 15:02:20 CDT 2015


Hi Nico,

>How does it deal with the "SNAPSHOT" designation?  Does it see that as a
separate plugin?

It will parse out the "SNAPSHOT" from the name to determine the base jar
name; so "imagej-common-0.5.1.jar" is a different version of the same
"entity" as "imagej-common-0.7.0-SNAPSHOT.jar".

>That page refers to plugins exposing APIs.  What if I do not want others
to use my code as a library?  Should I put everything in an "internal"
package?

In Fiji there's no mechanism for designating an "internal" package, e.g. in
the OSGi sense[2] - just standard java visibility[3]. I suppose if every
class or method in your plugin was private, protected or package-private
then versioning would be fairly arbitrary.

But note that these questions are somewhat moot: for contributions to the
Fiji update site only release versions (i.e. non-SNAPSHOTS) are used to
facilitate reproducibility[1] and some sort of semantic versioning is
required to distinguish those releases; for contributions to individual
update sites there aren't any requirements.

Let us know if you have more questions.

Best,
Mark

[1] http://imagej.net/Reproducible_builds#Reproducible_builds
[2] http://stackoverflow.com/questions/4903879/package-names-impl-v-internal
[3] https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

On Thu, Jul 30, 2015 at 3:09 PM, Nico Stuurman <nico.stuurman at ucsf.edu>
wrote:

> Hi Mark,
>
> > Are there guidelines for plugin developers to follow?
>
> The development section[1] of the wiki is, in general, intended to provide
> these guidelines. The versioning page[2] in particular is relevant here,
> along with the Fiji contribution requirements[3].
>
> That page refers to plugins exposing APIs.  What if I do not want others
> to use my code as a library?  Should I put everything in an "internal"
> package?
>
> >Will the updater figure it out that this is the same plugin?
>
> Yes - if you use one of the patterns on the versioning page then the
> updater will do the right thing and determine it's a new version of the
> same jar.
>
> How does it deal with the "SNAPSHOT" designation?  Does it see that as a
> separate plugin?
>
>
> Best,
>
> Nico
>
>
>
> Hope that helps.
>
> Best,
> Mark
>
> [1] http://imagej.net/Development
> [2] http://imagej.net/Versioning
> [3]
> http://imagej.net/Fiji_contribution_requirements#Versioning_and_dependency_convergence
>
> On Thu, Jul 30, 2015 at 2:38 PM, Nico Stuurman <nico.stuurman at ucsf.edu>
> wrote:
>
>> What is the recommended strategy for versioning of plugins?  For
>> instance, I set up a maven project for my plugin, create a jar (named
>> myplugin_-0.1-SNAPSHOT.jar) and make that available through the Fiji
>> updater.  I then make some changes and want to increase the version in my
>> pom.xml file (lets say to 0.1.1-SNAPSHOT).  This will change the name of
>> the jar.  Will the updater figure it out that this is the same plugin?  Are
>> there guidelines for plugin developers to follow?
>>
>> Thanks!
>>
>> Nico
>>
>> _______________________________________________
>> ImageJ-devel mailing list
>> ImageJ-devel at imagej.net
>> http://imagej.net/mailman/listinfo/imagej-devel
>>
>
>
> --
> Nico Stuurman
> Vale lab, UCSF/HHMI
> Genentech Hall, N316, MC2200
> 600 - 16th Street
> San Francisco, CA 94158-2517415 514 3927nico.stuurman at ucsf.edu
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://imagej.net/pipermail/imagej-devel/attachments/20150730/d282095b/attachment.html>


More information about the ImageJ-devel mailing list