Plugin and Node Restructuring

Hi,

I have an update site S which provides Plugins Pa and Pb. Pa contains Node X and Y. Pb contains Node Z.

Now I want to restructure my plugins. I want to provide Pa in a new update site Sa and Pb in an update site Sb.

What happens if somebody has installed Pa and Pb from update site S, but updated versions are only provided in the new update sites Sa and Sb. Is it sufficient to only add the new update sites?
What happen if somebody has installed Pa from Site S and tries to install Pa from Site Sa also?

Could I also put a Node into a different plugin (e.g. Node Y into Plugin Pb) without endangering old workflows?

Are there any other issues to consider?

Best regards,
Hendrik

Hi @henehr,

What happens if somebody has installed Pa and Pb from update site S, but updated versions are only provided in the new update sites Sa and Sb. Is it sufficient to only add the new update sites?

Moving extensions between update sites is not an issue, unless explicitly instructed not to do so, KNIME AP use all configured update sites to fulfill installation requests.

What happen if somebody has installed Pa from Site S and tries to install Pa from Site Sa also?

You can not install the same extension twice, in this case they will be offered an update, if the version provided by Sa is higher than the installed version.

Could I also put a Node into a different plugin (e.g. Node Y into Plugin Pb) without endangering old workflows?

This depends, if you do not change the package of the Nodefactory class, old workflows will work out of the box. You can also deal with new package names by using a NodeFactoryClassMapper, see this example form the Vernalis extension:

What is a bit more complicated, is dealing with the use case of opening an old workflow when you do not have the extensions installed, AP will try to install the extension that originally provided the node. If that extension does not contain the node anymore, users are stuck in a loop. They need to manually install extension, that now provides the node.

best,
Gabriel

2 Likes