-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ship sciview with Fiji? Or make the sciview update site stay in sync with Fiji seamlessly #520
Comments
I am comfortable with doing this now. I think we're finally ready. Thank you for the suggestion @ctrueden |
Doing this would close #402 |
I expect that the way we handle this issue will resolve/close #374. |
I'm making progress on this. But there's one major issue I forgot about when I proposed this solution: scenery+sciview now require Java 11. So if we ship it with Fiji, we need to upgrade to Java 11, or at least somehow tolerate the scenery+sciview JARs being present at a bytecode version too new for Java 8. I have some ideas, and will keep poking at it. |
Oh, the other issue is the Launcher. I need to make it really work with Java 11, and finally update it for all Fiji users. We'll give it another go and see who complains! |
Updating to Java 11 will also require updating the JavaFX-dependent projects. It's time to start a new Java-11-based update site, and dead-end the Java-8 one. 👍 |
I rewrote the populate-app logic, which is now as a Gradle task thanks to @elect86's initial prototyping; see e620414. The logic is now more robust (addressing 1), avoids shadowing core libraries (addressing 2) unless the sciview site is already shadowing them, and warns when skipping a sciview dep that's newer than what's on the core sites (helping with, but not fully addressing, 3).
I am now mostly done with a new launcher for Fiji called Jaunch. This launcher is much smarter about discovering Java installations, as well as launching Java properly across the different major Java versions. For example, it will pass the needed The plan is still to start shipping sciview with Fiji, so I'll leave this issue open till we achieve that. |
This issue should be grouped with this issue: #563 |
Related: #498 |
Related: #392 |
@ctrueden should we be doing more Jaunch testing now? |
Sure, if you like. I just tried briefly to combine the scijava-ops and sciview update sites. First, I followed the instructions to install SciJava Ops into Fiji (As explained on https://ops.scijava.org/). Then, I enabled the sciview update site, installed it, restarted Fiji, and tried to launch sciview. I encountered two small issues:
So it should now almost work to turn on both the scijava-ops and sciview update sites and enjoy the synergy. You might just have to do the same workaround I did in (1) above. |
I did run into a novel issue when playing with the Game of Life 3D, though: trying to zoom around, the zoom behavior was very coarse. So then I tried "Circle camera around current object" while the GoL volume was actively animating, and it crashed Fiji outright with no errors on the console. Whee! |
Over time there have been various issues and dependency skew with the sciview update site(s) not matching what is currently shipped on the core update sites for vanilla Fiji. E.g. #422, #392, #179. This issue intends to document what the fundamental problem is, and ways we could/should resolve it.
The sciview dependencies must stay in sync with Fiji's dependencies. That's what the pom-scijava Bill of Materials is for: keeping dependencies at consistent versions. But it only fully works if: A) sciview and fiji releases extend the same (ideally latest release) version of pom-scijava; and B) the dependency versions uploaded to the sciview and Java-8 update sites respectively align with those releases.
This has been historically tricky for a couple of reasons. We have tooling to populate a Fiji installation with a Maven coordinate including its dependencies, and upload the resulting state to an update site, but there are a couple of wrinkles:
jars/<platform>
orlib/<platform>
);To help scenery+sciview stay in better sync with Fiji henceforth, I propose that we add sciview to Fiji, so that it comes with Fiji. No extra update site needed—it works out of the box.
Needed steps to make this happen:
melting-pot.sh
script to know how to override dependency versions in the scenery+sciview gradle builds.sc.fiji:fiji
POM file.And I think that's it?
@kephale @skalarproduktraum If you would rather keep scenery+sciview on a separate update site, I think that would also be OK. But we would then need to address the three wrinkles mentioned above: 1) fix any bugs in
populate-app.sh
, 2) stop shadowing core libs, 3) update scenery+sciview synchronously with Fiji whenever core libs break things. (Though ideally, core libs would not break things in the first place...)The text was updated successfully, but these errors were encountered: