plugin versioning

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

plugin versioning

Nico Stuurman
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
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel
Reply | Threaded
Open this post in threaded view
|

Re: plugin versioning

Mark Hiner
Hi Nico,

> 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].

>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.

Hope that helps.

Best,
Mark

On Thu, Jul 30, 2015 at 2:38 PM, Nico Stuurman <[hidden email]> 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
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel


_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel
Reply | Threaded
Open this post in threaded view
|

Re: plugin versioning

Mark Hiner
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

On Thu, Jul 30, 2015 at 3:09 PM, Nico Stuurman <[hidden email]> 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



On Thu, Jul 30, 2015 at 2:38 PM, Nico Stuurman <[hidden email]> 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
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel


-- 
Nico Stuurman
Vale lab, UCSF/HHMI
Genentech Hall, N316, MC2200
600 - 16th Street
San Francisco, CA 94158-2517
<a href="tel:415%20514%203927" value="+14155143927" target="_blank">415 514 3927
[hidden email]


_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel
Reply | Threaded
Open this post in threaded view
|

Re: plugin versioning

Nico Stuurman
In reply to this post by Mark Hiner
Hi Mark (resending I did not cc the list),
> 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



On Thu, Jul 30, 2015 at 2:38 PM, Nico Stuurman <[hidden email]> 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
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel


-- 
Nico Stuurman
Vale lab, UCSF/HHMI
Genentech Hall, N316, MC2200
600 - 16th Street
San Francisco, CA 94158-2517
415 514 3927
[hidden email]

_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel
Reply | Threaded
Open this post in threaded view
|

Re: plugin versioning

Nico Stuurman
In reply to this post by Mark Hiner
Hi Mark,

>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].
Serious?  Every class in Fiji is open to everyone to use?  There is no distinction between API and implementing classes?  Oh dear, you are in for years of trouble....

Best,

Nico



_______________________________________________
ImageJ-devel mailing list
[hidden email]
http://imagej.net/mailman/listinfo/imagej-devel