These are chat archives for fiji/fiji

20th
Dec 2015
Thorsten Wagner
@thorstenwagner
Dec 20 2015 00:49
@ctrueden really? how can I get easily a working fiji with java 8? just activating the java 8 update site?
And the Java 8 update site shores up some of (but not all, yet) of the weaknesses when using Java 8, particularly Java 3D.
Very, very soon we will have fixes in place for more stuff, including using Java in the Script Editor with Java 8.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 03:40
@ctrueden Fiji currently ships with Java 1.6, correct? That means that all Java >=1.7 compiled components do not run?
(I just do not notice because Fiji's Java 1.6 does not run on Ubuntu 15.04, or at least the launcher does not, so I fall back to system Java anyways)
and I am surprised to hear that BigWarp depends on Java 1.7 components, is that BigDataViewer?
Does that mean that nobody with the default distribution of Fiji can run the BigDataViewer?
tpietzsch
@tpietzsch
Dec 20 2015 12:07
@axtimwalde bdv-core should definitely not depend on anything 1.7 specific. bdv_fiji depends on 1.7 transitively because of SPIM_Registration. So, yes looks like that would mean that nobody with 1.6 can run bdv...
I could split up bdv_fiji.
Or we could move the export to HDF5 plugins to SPIM_Registration. This is the only reason bdv_fiji depends on 1.7 as far as I can tell (and it is only to deal with "legacy" SPIM_Registration datasets, that were made before Steffi used spim_data for the datasets).
So if we want to be compatible with 1.6 it should be easy to do. However, I would like to go to java 1.8 with bdv as soon as possible anyway.
Curtis Rueden
@ctrueden
Dec 20 2015 13:06
I feel like I am somehow not communicating something correctly here.
Nothing is being removed from Fiji core.
It's just that all components which now require J7 or J8 will no longer be updated on the core sites anymore. Only on the Java-8 site, which is the new "core" site for users running J8.
@axtimwalde @tpietzsch Please do not do anything drastic like reorganizing all the code.
As I said above: we will soon switch the Fiji downloads to ship Java 8 instead of Java 6, with the Java-8 update site on by default. So new users will continue receiving updates.
For existing users, all they have to do is: 1) ensure they are using Java 8; and then 2) turn on the Java-8 update site.
Users who fail to do these things will no longer receive updates of components which have migrated to J7 or J8, but they will continue to have access to the final release versions that worked with J6.
With this scheme, we do not need to maintain parallel integration branches for J6 vs. J8, nor backport any bug-fixes to said integration branches.
Of course, if you strongly want to do this for your component(s), feel free to create a java6 branch in any component that matters to you. But I would suggest you not bother, because then we have versioning complexity (e.g.: 3.0.0 vs. 3.0.0-java6).
Curtis Rueden
@ctrueden
Dec 20 2015 13:12
@tpietzsch If the dependency on SPIM_Registration is easy to isolate, then migrating that piece to its own component sounds fine, if you like. I may do that for imagej-ui-swing (haven't decided yet) since its only J8 dep is imagej-ops for its Ops browser.
But like you said: we want to switch to J8 completely soon anyway, so it is of very limited benefit.
I'd rather just encourage all our users to move to J8.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 13:48
hi @ctrueden and @tpietzsch our plan was to release a helper application for some Janelia folks before the holidays. To that end, we have tried to release a new version of BigWarp into the standard Fiji distribution. Reason: make it easy for them to get it to work. Adding new update sites or writing instructions how to run Java 8 on everybody's platform is not what we wanted. It's too much distraction. We therefore thought to use dependencies that are shipped in the current Fiji which seemed to work. Upgrading to the latest greatest pom-fiji, however, may have lead us in too new territories. We weren't aware of this. I understand that everything is supposed to better in the future and appreciate the effort a lot but that may be too far ahead for us. BigWarp depends on two BDV components directly (and more transitively, I get it), bigdataviewer-core-2.1.0 and bigdataviewer_fiji-2.0.0. These are the version distributed with Fiji's standard distribution which is supposed to run with Java 1.6. This is where I am not getting it. So again: Do bigdataviewer-core-2.1.0 and bigdataviewer_fiji-2.0.0 run on Java 6? If so, why can't we compile and release BigWarp for Java 6? Everything else can come later, at least in our opinion.
Curtis Rueden
@ctrueden
Dec 20 2015 13:49
@axtimwalde Fine, then revert the merge of my PR.
Or you can use mvn dependency:tree, or probably better, the dependency hierarchy view in Eclipse, to find out where the problem areas are.
If you want to make BigWarp work with Java 6 again, you need to purge the J7-specific deps. Or do it upstream as you suggest (i.e.: make bigdataviewer_fiji not depend on J7-specific components).
Stephan Saalfeld
@axtimwalde
Dec 20 2015 13:51
ok, what is the latest version of pom-fiji that just works?
Curtis Rueden
@ctrueden
Dec 20 2015 13:52
You mean, the latest version that works with Java 6.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 13:52
yes
sorry
Curtis Rueden
@ctrueden
Dec 20 2015 13:54
@axtimwalde I am not 100% certain, but you could try 18.1.0. That BOM may declare 1 or more missing artifacts, though.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 13:54
thanks
Curtis Rueden
@ctrueden
Dec 20 2015 13:54
Certainly 19.0.0 introduces many Java-7-and-8-specific components.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 13:55
ok
Curtis Rueden
@ctrueden
Dec 20 2015 13:55
And probably 18.1.0 declares imagej-ops 0.24.0 which is J8-only. But you don't use imagej-ops. It only matters for the components you use.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 13:55
what i still do not get: when I download fiji, I get bigdataviewer-core-2.1.0 and bigdataviewer_fiji-2.0.0
Curtis Rueden
@ctrueden
Dec 20 2015 13:55
It's easy: just keep putting a lower-numbered pom-fiji and remove the scijava.jvm.version declaration.
And see if enforcer fails.
If it fails, bump down again.
Keep going till it works.
The latest release of bigdataviewer_fiji is 2.0.0 which is still J6, IIRC.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 13:56
will bigdataviewer-core-2.1.0 and bigdataviewer_fiji-2.0.0 work with Java 6 then?
ok, then I do not get where bigwarp sucks in a transitive Java 7 dependency
Curtis Rueden
@ctrueden
Dec 20 2015 13:57
You can easily find out, using this script.
Just test it, man. Remove the scijava.jvm.version declaration and build. Enforcer will tell you exactly where.
Curtis Rueden
@ctrueden
Dec 20 2015 14:05
@axtimwalde Maybe this helps you: https://gist.github.com/ctrueden/8d0063e9a130975fb8f5
I think the confusion stems from the fact that your declared version of pom-fiji defines the inherited version of even transitive dependencies.
So even though bigdataviewer_fiji 2.0.0 was built using a version of SPIM_Registration that only needs J6... bigwarp's pom-fiji declares a newer version of SPIM_Registration that needs J7.
There is another thing you can do: explicitly override version properties in your properties section.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:07
All clear but I have no idea which versions trigger issues
the enfocer or whoever tells me that i found banned dependencies
Curtis Rueden
@ctrueden
Dec 20 2015 14:08
Click that gist (or refresh it—I updated it once) and see the list of J7-specific components at the bottom. You can try pinning to older versions of those.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:08
edu mines jtk and stuff
Curtis Rueden
@ctrueden
Dec 20 2015 14:08
Yep, edu-mines-jtk now requires J7 too.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:08
this is so far away from what I care about
Curtis Rueden
@ctrueden
Dec 20 2015 14:08
You can trace where that came from using mvn dependency:tree | grep -C 5 edu-mines-jtk
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:08
alright
Curtis Rueden
@ctrueden
Dec 20 2015 14:09
Well, I cannot fix this for you on a Sunday when I have a full day today. Nor really tomorrow because I have to actually get all this stuff uploaded and ready before end of Tuesday.
I explicitly said in my PR that this updates to requiring Java 7.
So again: just revert it if you don't have time.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:09
well---we ehave a fix on top
@ctrueden, yes you said that this requires java 7 which transitively should have told me that we would not get this to work in standard fiji for some time, just my transitive reasoning has failed me ;)
let me try some more
just for the record mvn dependency:tree | grep -C 5 edu-mines-jtk generates no output
Curtis Rueden
@ctrueden
Dec 20 2015 14:12
Oh sorry, mines-jtk
mines-jtk comes from imglib1
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:12
@#^$%!&@$^(*&@
Curtis Rueden
@ctrueden
Dec 20 2015 14:13
Which comes from SPIM_Registration of course.
I think @tpietzsch is right that this really all stems from SPIM_Registration.
You can just cheat if you want, and add an exclusion.
That is a fine hot-fix for the short term.
<exclusions>
<exclusion>
<groupId>sc.fiji</groupId>
<artifactId>SPIM_Registration</artifactId>
</exclusion>
</exclusions>
Inside the bigdataviewer_fiji dependency declaration.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:15
LOL
Curtis Rueden
@ctrueden
Dec 20 2015 14:15
Ha, yes, that works.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:15
:D
Awesome
pom-bigdataviewer-2.2.2 works too, but I'd prefer this exclusion because it keeps us more modern
Curtis Rueden
@ctrueden
Dec 20 2015 14:16
saalfeldlab/bigwarp#11
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:16
let me try
Curtis Rueden
@ctrueden
Dec 20 2015 14:16
Try that.
Well, it PRETENDS to keep you modern.
I mean, yes, there may be newer versions of some artifacts. And the enforcer tests are proof that none of them need J7+.
However, the exclusions means that at runtime, users may get errors.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:18
it is modern but drives a buick lesabre 1999 until the better car is ready
i love that
Curtis Rueden
@ctrueden
Dec 20 2015 14:18
If they do something with Bigwarp that calls the BDV that then calls SPIM_Registration... but it probably doesn't matter? You guys and @tpietzsch would know more.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:19
excuse my stupidity, where does the exclusion block go?
Curtis Rueden
@ctrueden
Dec 20 2015 14:19
Just merge my PR above.
It's already done.
So after saying I don't have time to fix this for you, I fixed it for you.
Argh, OK. deep breath Better now.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:20
thanks a lot!
Curtis Rueden
@ctrueden
Dec 20 2015 14:20
I hope it works! In practice, I mean.
If not: I will be around Mon and Tue to help put out any other fires.
Stephan Saalfeld
@axtimwalde
Dec 20 2015 14:21
Thanks so much!
John Bogovic
@bogovicj
Dec 20 2015 15:51
@ctrueden @axtimwalde Late to the party, but thank you!!