How to find out the pom-scijava version of the currently used Fiji version?

Hi everyone,
I would like to use for my Plugins the same pom-scijava version as my currently running Fiji. I think that this would be the best way to avoid inconsistencies of libraries.

Usually, I download Fiji from the archive https://downloads.imagej.net/fiji/archive/ but can’t figure out how to get the corresponding pom-scijava versions.

Many thanks in advance,
Helmut

Maven shows the sci-java version: https://mvnrepository.com/artifact/org.scijava/pom-scijava

Indeed, the goal is that the latest RELEASE version of pom-scijava always reflects what is shipped by the ImageJ, Fiji and Java-8 update sites.

However, in the past, this sometimes hasn’t been the case, because uploading to the update sites is still triggered manually, and some maintainers with upload permissions had to upload quick fixes etc. without pom-scijava getting updated accordingly, so things got out of sync at times. With automated deployment and uploads using all the awesome SciJava tooling by @ctrueden, I hope this will be less frequently the case in the future.

1 Like

Thank you @schmiedc and @imagejan for the clarification.
So the latest Fiji version is usually built with the latest available pom-scijava version, and it is not possible to get the used pom-scijava version from the Fiji package itself.

Thanks again,
Helmut

It is possible. Here are two ways:

Checking the pom.xml on GitHub

You can tell which version of pom-scijava is used for a given version of Fiji by checking it on GitHub. For example, for Fiji 2.1.1:

Unfortunately, Fiji does not currently report this 2.1.1 version string upon clicking the title bar—only the versions of ImageJ2 and ImageJ1 are given. But you can check the file jars/fiji-x.y.z.jar in the distribution to infer the version from the filename. Or, you can find out the version of Fiji from within Fiji by executing the following snippet via the search bar:

!ui.showDialog(app.getApp("Fiji").getVersion())

From within Fiji itself

From within Fiji, you can display the version of pom-scijava upon which that Fiji was built using this snippet:

!ui.showDialog(app.getApp("Fiji").getPOM().getParentVersion())

But like @imagejan said, people may have uploaded newer bug-fixed versions of things on top. We are moving toward keeping all of this fully in sync on the Maven side, to minimize version skew. But we need to do it in a way that will continue to allow plugin developers to make rapid releases.

2 Likes

Thanks a lot @ctrueden!
that saves a lot of development time when plugins may get incompatible because of different pom-scijava versions.

Best wishes,
Helmut

1 Like