Updater: depencies broken after group id change

In the Neuroanatomy update site we use jzy3d as a dependency. For a while we used jitpack artifacts because we needed unreleased functionality of jzy3d. A new release of jzy3d is now available through maven central, so in an effort to standardize things (and maintain semVer adoption) we replaced the dependency, which is simply a ‘trivial’ change of group id, done here:

This morning, when I pushed things to the updater, the updater complained about jzy3d conflicts. I ended up breaking the dependency to the old jzy3d jars from jitpack, marking such jars for uninstall, and uploading the new maven central jars.

The problem now is that on the user-end of things, the updater uninstalls the jitpak jars but does not mark for download the new jzy3d jars from maven.

Any ideas on how to fix this?
(pinging @arshadic , @ctrueden , @hinerm)

1 Like

@tferr it’s kind of silly but existing installations can run the updater a second time. You then have to manually install the jzy3d jars:

Definitely confusing :frowning:

I noticed that. But it will annoy the crap out of people. The updater does not give any feedback on what needs to be done. Folks will have to:
1, select “Advanced Mode”
2. “View files from the ‘Neuroanatomy’ site” in the ‘view’ options
3. Find the rows tagged “not installed” and set them for download.
I predict mayhem coming :slight_smile:

For sure there must bee a better solution? like pushing a new release to convince the updater that those are indeed dependencies? or something else.

My suspicion is this would only work for users who had already received the first update.

However I think you need to do something to reconnect the dependency to jzy3d. Right now, the api.jar depends on the core.jar, but nothing on your site depends on the api.jar that I can see.

What if you manually add jars/jazy3d-api.jar as a dependency of, say, SNT.jar, then upload it?
(although I’m not sure if this will cause problems for users who haven’t updated at all yet and still have the com.github jars that need to be removed… :frowning: )

@hinerm, that is strange. the jzy3d-api IS declared in the SNT pom (here). Why do you say nothing on the site depends on that? Where do you see that? I guess it is because I broke the dependency when I upload it? Where did that decision (of breaking the dependency) get stored?

It’s in the details pane of the advanced mode in the UI. I believe marking it obsolete will remove the dependency to that jar. The info gets written to the db.xml.gz… but it looks like you may have found it? I just updated and it knew found the new SNT.jar and its dependencies. Hooray!

@hinerm, you are way faster at testing things than me posting back. :slight_smile:
I thought about what you said. In the pom we declare jzy3d-api but not its dependency (jzy3d-jdt-core). So I declared jzy3d-jdt-core in the project pom, And voilà! the updater noticed it and now displays this message to users caught in this state:
Image 3-11-21 at 19.31.
Problem solved! thanks a lot for the pointer!
PS: If this hadn’t worked I was tempted to just create a dummy maven project declaring the dependencies not ‘recognized’ by the updater and upload that. That would have worked, correct?

1 Like