<div dir="ltr">Hi Nico,<br><div><div><br>><span class="im"></span>How does it deal with the "SNAPSHOT" designation?  Does it see that
    as a separate plugin?<br><br></div><div>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".<br><br>><span class="im"></span>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?<span class="im"><br><br></span></div><div>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.<br><br>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.<br><br></div><div>Let us know if you have more questions.<br><br></div><div>Best,<br></div><div>Mark<br></div><div><br>[1] <a href="http://imagej.net/Reproducible_builds#Reproducible_builds">http://imagej.net/Reproducible_builds#Reproducible_builds</a><br>[2] <a href="http://stackoverflow.com/questions/4903879/package-names-impl-v-internal">http://stackoverflow.com/questions/4903879/package-names-impl-v-internal</a><br>[3] <a href="https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html">https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html</a><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 30, 2015 at 3:09 PM, Nico Stuurman <span dir="ltr"><<a href="mailto:nico.stuurman@ucsf.edu" target="_blank">nico.stuurman@ucsf.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <font size="-1">Hi Mark,</font><span class=""><br>
    <br>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div>> Are there guidelines for plugin developers to follow?<br>
          <br>
        </div>
        <div>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].<br>
        </div>
      </div>
    </blockquote></span>
    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?<span class=""><br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">
        <div>>Will the updater figure it out that this is the same
          plugin?<br>
          <br>
        </div>
        <div>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.<br>
        </div>
      </div>
    </blockquote></span>
    How does it deal with the "SNAPSHOT" designation?  Does it see that
    as a separate plugin?<br>
    <br>
    <br>
    Best,<br>
    <br>
    Nico<span class=""><br>
    <br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">
        <div><br>
        </div>
        <div>Hope that helps.<br>
          <br>
        </div>
        <div>Best,<br>
        </div>
        <div>Mark<br>
        </div>
        <div><br>
          [1] <a href="http://imagej.net/Development" target="_blank">http://imagej.net/Development</a><br>
          [2] <a href="http://imagej.net/Versioning" target="_blank">http://imagej.net/Versioning</a><br>
          [3] <a href="http://imagej.net/Fiji_contribution_requirements#Versioning_and_dependency_convergence" target="_blank">http://imagej.net/Fiji_contribution_requirements#Versioning_and_dependency_convergence</a><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Thu, Jul 30, 2015 at 2:38 PM, Nico
          Stuurman <span dir="ltr"><<a href="mailto:nico.stuurman@ucsf.edu" target="_blank">nico.stuurman@ucsf.edu</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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?<br>
            <br>
            Thanks!<br>
            <br>
            Nico<br>
            <br>
            _______________________________________________<br>
            ImageJ-devel mailing list<br>
            <a href="mailto:ImageJ-devel@imagej.net" target="_blank">ImageJ-devel@imagej.net</a><br>
            <a href="http://imagej.net/mailman/listinfo/imagej-devel" rel="noreferrer" target="_blank">http://imagej.net/mailman/listinfo/imagej-devel</a><br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
    </span><span class="HOEnZb"><font color="#888888"><pre cols="72">-- 
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</a>
<a href="mailto:nico.stuurman@ucsf.edu" target="_blank">nico.stuurman@ucsf.edu</a></pre>
  </font></span></div>

</blockquote></div><br></div>