Dependency error with Vernalis extension during AP update

Hi. When trying to update AP version from 5.2 to 5.3 there is a dependency error. It seems the version from 5.2 has a higher version number than the one from 5.3. Can the developer check this?

Current workaround is to uninstall the extension, update AP and then install the extension again.

Error:

Cannot complete the install because of a conflicting dependency.
Software being installed: Vernalis KNIME Nodes 1.38.2.v202504171339 (com.vernalis.knime.feature.feature.group 1.38.2.v202504171339)
Software being installed: KNIME Basic File System Connectors 5.3.2.v202409010954 (org.knime.features.base.filehandling.feature.group 5.3.2.v202409010954)
Only one of the following can be installed at once:
KNIME Workbench Core 5.2.0.v202311161017 (org.knime.workbench.core 5.2.0.v202311161017)
KNIME Workbench Core 5.3.0.v202406101225 (org.knime.workbench.core 5.3.0.v202406101225)|
Cannot satisfy dependency:
From: Vernalis KNIME Nodes 1.38.2.v202504171339 (com.vernalis.knime.feature.feature.group 1.38.2.v202504171339)
To: org.eclipse.equinox.p2.iu; com.vernalis.knime.misc.blobs [1.38.2.v202504171339,1.38.2.v202504171339]
Cannot satisfy dependency:
From: Plugin for Vernalis Binary Object handling nodes 1.38.2.v202504171339 (com.vernalis.knime.misc.blobs 1.38.2.v202504171339)
To: osgi.bundle; org.knime.workbench.core [3.0.0,5.3.0)
Cannot satisfy dependency:
From: FTP Connector node 5.3.2.v202409010954 (org.knime.ext.ftp.filehandling 5.3.2.v202409010954)
To: osgi.bundle; org.knime.workbench.core [5.3.0,6.0.0)
Cannot satisfy dependency:
From: KNIME Basic File System Connectors 5.3.2.v202409010954 (org.knime.features.base.filehandling.feature.group 5.3.2.v202409010954)
To: org.eclipse.equinox.p2.iu; org.knime.ext.ftp.filehandling [5.3.2.v202409010954,5.3.2.v202409010954]

1 Like

Tagging @Vernalis and @s.roughley for visibility

2 Likes

Too late Scott, both of me (if you see what I mean?!) are aware - @steffen_KNIME has already emailed me too :slight_smile:

Investigating - more anon…

Thanks

Steve

Haha, sorry for the deluge!

1 Like

OK,

So some explanation as to what at least, if not why:

The dependency versions for KNIME AP v5.2 and earlier versions of our com.vernalis.knime.misc.blobs plugin are pinned different to KNIME AP v5.3 onwards:

For KNIME 5.2 / 5.1 (vernalis-knime-nodes/com.vernalis.knime.misc.blobs/META-INF/MANIFEST.MF at 820457494f7cda0add8bb06ecd54585c79c309e7 · vernalis/vernalis-knime-nodes · GitHub):

 org.knime.workbench.core;bundle-version="[3.0.0,5.3.0)",
 **org.knime.workbench.repository;bundle-version="[3.0.0,5.3.0)",** 
 org.knime.base;bundle-version="[3.0.0,5.3.0)",
 org.knime.time;bundle-version="[4.7.0,5.3.0)",
 com.vernalis.knime.core;bundle-version="[1.0.0,2.0.0)",
 **org.apache.commons.compress;bundle-version="[1.22.0,1.25.0)",**
 org.apache.commons.io;bundle-version="[2.8.0,3.0.0)"

(Key lines highlighted with ** both above and below)
Compare with the more recent KNIME 5.3 onwards (vernalis-knime-nodes/com.vernalis.knime.misc.blobs/META-INF/MANIFEST.MF at f6ee16ecfa3446c6fd0d3516b785b8cfa6ce7bd0 · vernalis/vernalis-knime-nodes · GitHub):

 org.knime.workbench.core;bundle-version="[3.0.0,6.0.0)",
 **org.knime.workbench.repository;bundle-version="[3.0.0,6.0.0)",**
 org.knime.base;bundle-version="[3.0.0,6.0.0)",
 org.knime.time;bundle-version="[4.7.0,6.0.0)",
 com.vernalis.knime.core;bundle-version="[1.0.0,2.0.0)",
 **org.apache.commons.commons-compress;bundle-version="[1.26.0,2.0.0)",**
 org.apache.commons.commons-io;bundle-version="[2.15.1,3.0.0)"

The reason for this is that KNIME 5.3 onwards bundles a newer version of the Apache Commons commons-compress bundle which:

  • Changes name (helpful!) from org.apache.commons.compress to org.apache.commons.commons-compress
  • (More significantly) Brings in some significant API changes to the ArchiveInputStream and ArchiveOutputStream which are not backwards compatible

That’s the “Why?” - What I don’t know is how to make the upgrade process work smoothly in this case…

You’ve already found one (clunky) workaround, and my guess is that in the update process this version constraint from an already installed plugin (the Vernalis one) stops the newer KNIME plugins installing - which in turn means that the part of the KNIME core backend which updates the update site links to point to the KNIME AP v5.3 links can’t be installed to find the new compatible Vernalis plugin, and then… boom! I don’t know what the “proper” Eclipse RCP solution is for this situation - if indeed there is one? (I guess you would have to ask someone who knows their way round far more of that than I do - maybe @wiswedel ?)

It may work as a less clunky workaround to manually add the KNIME 5.3 Trusted Community update site to the update sites in the KNIME preferences before you try the upgrade?

Sorry - I don’t know if that helps at all?!

(I did check that the various Jenkins Community build pipelines are using the correct branches of our github repo just in case that was an issue - they are!)

Steve