SoilJ - a plugin for a semi-automatized 3-D image analyses of soil samples

Hej everyone,

I would like to bundle the SoilJ plugin with Fiji.
It is a wrapper that is designed to semi-automatize 3-D image analyses of soil samples.
The plugin is presented in the following publication.
https://dl.sciencesocieties.org/publications/vzj/abstracts/17/1/170062

SoilJ comes as a mavenized ImageJ 1 plugin that relies on
ImageJ, Fiji, Java-8, 3D ImageJ Suite, IJPB-plugins.
It is stored under https://github.com/johnkoestel/soilj.

I am presently reading through the howto on imagej.net. But I would be glad about some more personalized guidance.

Cheers from the North,

John

2 Likes

Hi John,
The best to distribute your plugins is to create an update site.
The wiki is quite detailed but let us know if you need more guidance about what to upload…

1 Like

OK, thanks for the advice. I had not yet found this page, yet.

Please give us an update when you do get that done, I’m interested.
Bob

I’m very interested! Please, update when you do it.

Interested and following!!!

Here is the page describing best practices for distributing your plugin to users:

As @LThomas said, an update site is a great way to go. That said, if you do decide you still want to distribute your plugin with Fiji itself, there is a process for that:

Just let us know what you decide to do.

2 Likes

Hej Curtis,

thanks for the answer. Exactly: this was why I had not found the website that Laurent had recommended. I would like to distribute SoilJ with Fiji itself. This is also why I posted the announcement in the forum, as the site on how to distribute plugins recommends to do it if you want to distribute it with Fiji. I had not expected to get an answer on how to not distribute it with Fiji itself. : )
But sure, the way I had written the forum entry was probably not too clear on that point.

I will read the Fiji/contribution requirements more carefully today, as planned. I will probably come back with some questions then.

Cheers and thanks,

/John

1 Like

@johnkoestel Thanks for clarifying!

I took a look at your source. Here are some things we would need to solve in order to make it feasible to distribute SoilJ with Fiji:

  1. The POM currently extends pom-scijava 12.0.0. This needs to be updated to 27.0.1, since that is the version with which Fiji is currently aligned. If we do not update this, your plugin will depend on old library versions at build time, and then not work properly at runtime with current Fiji. Note that updating pom-scijava to later versions requires the inclusion of more metadata fields documenting things like SciJava team roles; see the guide to these fields for details, and let me know if you have any questions. I am willing to file a PR against your repository doing this work, if it helps.

  2. Your plugin needs to have a release version cut, rather than staying at SNAPSHOT forever. To do that, all its dependencies must also be at release versions. In practice here, that means we need to have a release of com.github.mcib3d:mcib3d-core. We would need to work with @ThomasBoudier to make that happen. Alternately, you could eliminate that dependency in favor of some other 3D-capable libraries such as the 3D Viewer, or ImgLib2 + SciView, depending on the functionality you need.

  3. If your plugin ships with Fiji, then all its dependencies must also ship with Fiji. Otherwise, people who download Fiji will not be able to use your plugin as expected. That means Fiji would need to start shipping the 3D ImageJ Suite and MorphoLibJ, meaning the authors (@ThomasBoudier and @iarganda respectively) would need to agree also. Alternately, you could change your plugin so that the functionality using 3D ImageJ Suite and MorphoLibJ is optional—that way, users who download Fiji can still use your plugin, but would gain extra functionality by enabling those two update sites. E.g., this is what @iarganda and I did for Trainable Weka Segmentation’s use of the ImageScience code when it moved to a separate update site.

With these factors in mind: do you still want to pursue distribution with Fiji? We need buy-in from @iarganda and @ThomasBoudier. And it would be a bit of work to get your codebase to where it needs to be to work correctly with Fiji. There are major advantages, though: easier to ensure your plugin continues working as time goes on; and makes your plugin available in other deployment contexts, such as in Python via pyimagej, without needing a local Fiji installation—so you could use it e.g. from Jupyter notebooks.

1 Like

Hi @ctrueden, @johnkoestel,

Just regarding 3D suite, following advice from Curtis there is now a version number 3.96 that you can use in your pom.xml . I am still a bit confused, if this will become a plugin in Fiji with an update site, it will just require to have other dependencies, one being 3D Suite ? Anyway happy to help if needed.

Best,

Thomas

@ThomasBoudier Ah, since you are using jitpack.io, there are reproducible builds for every commit, and available from maven.scijava.org thanks to proxying—see here for examples.

My understanding is that @johnkoestel does not want to create an update site for SoilJ, but rather wants to ship the SoilJ JAR file with Fiji itself—which would entail shipping all of SoilJ’s dependencies with Fiji as well. Since one of its dependencies is com.github.mcib3d:mcib3d-core, that artifact would then be shipped with Fiji. This has ramifications for the 3D ImageJ Suite update site, since there would then be artifact overlap. It might make sense to then also ship mcib3d_plugins with Fiji, and dispense with the separate 3D ImageJ Suite update site altogether.

Does that clarify things?

Hej Curtis and Thomas,

Thanks a lot for your replies! Also apologies for the delayed reaction to these. Believe it or not, but I am presently at a hotel without internet Connection, including a lack of mobile net coverage.

Yes, I would like to ship SoilJ JAR with Fiji, but I also would like to continue to use the mcib3d_plugins in SoilJ. I was not aware on the requirement that the 3D suite also needs to be shipped with Fiji in this case.

So, I now understand whether you, Thomas, and Ignacio would also follow the same example. It now depends on what you decide and then, what the alternatives would be for me (i.e. if I could make do without the 3D suite… which I do not believe, actually).

So far for now,

thanks again and cheers,

/John

P.S.: yes, I will implement the suggested versions into the POM as soon as I have time for it.

Hi @johnkoestel and @ctrueden,

Regarding mcib3d, it makes sense to always ship them together since they are kind of part of the same project. Excuse my down to earth approach, but why not zip your actual Fiji and distribute it, of course you may need to disallow automatic update and from time to time release new zips. Maybe you can have a look to Bio7 which is a customized release of Fiji if I understand correctly.

Anyway if I can help by migrating mcib3d or part of it to Fiji, I will be happy to do.

Best,

Thomas

Sorry to join the conversation so late. Distributing MorphoLibJ with is totally fine, of course. What is the current status of the situation?

1 Like

Sorry for dropping the ball on this thread. @johnkoestel It sounds like both @ThomasBoudier and @iarganda are OK with their components becoming part of Fiji core. Do you still want SoilJ to become part of Fiji core? If so, do you have the bandwidth to address the issues I listed above (pom-scijava update to 28.0.0; Travisification and release cut)? Or do you need help?

Looking again at the repository: we should rewrite the git history to purge the Binaries directory, and move the Source directory to the top level. This will reduce the size of the repository. The binaries can be deployed to maven.scijava.org.

1 Like

Hej Curtis,

No, in fact thank you for dropping the ball. I still want, but I am busy with other things.

What do you think: How much time will be required? If it is not more than one or two days, I am inclined to try working on it right away.

Otherwise, I hope to find time in May.

I would need guidance for setting up the Git properly.

Cheers and thanks,

/John

image001.jpg

Hej Curtis,

… and yes, help with
Travisification and release cut will also be needed.

Cheers and thanks,

John

image001.jpg

@ThomasBoudier Bio7 is a RCP platform based on Eclipse. The ImageJ plugin based on ImageJ is just one part of the software.

If it is from interest, here an older overview:

The Eclipse ImageJ plugin is available as a separate download:

1 Like