Immortal Pure-Python Extension Plugins

Hi KNIMErs!

In a recent call with @gab1one, we briefly touched upon a topic that we decided to get advice on here:

I developed a pure-Python extension for KAP 5.1.1 (Windows). Its installation and usage work as expected. However, uninstalling it does not really make it disappear. Here is what I observe afterwards:

  • My extension’s nodes are no longer available in KAP. :white_check_mark:
  • My extension is removed from the features folder of my KAP installation. :white_check_mark:
  • Two folders related to my extension continue to exist in the plugins folder. :x:

These two folders are not just empty directories, but actually my extension’s entire source code alongside its fully functional conda environment.

While I suppose that backward compatibility is the reason for keeping them around when I update my extension, I cannot make sense of it when uninstalling (other than saving time in case of a future reinstall).

Is this intended behavior and I am missing something, or is it a bug?

Cheers!

Hi @DerMaxdorfer

Thank you for your feedback. We looked into this, and this is because eclipse does not immediately clean up older plugin installations. You can run this command in the folder your installed KNIME AP in:
./knime -nosplash -consolelog -application org.eclipse.equinox.p2.garbagecollector.application
On windows this command is:
knime.exe -nosplash -consolelog -application org.eclipse.equinox.p2.garbagecollector.application

This should remove all old features / plugins from your installation.

We are working on a different mechanism for future versions of AP that does suffer from this issue.
best,
Gabriel

(edited to add windows version of command)

5 Likes

Thanks, @gab1one! If you say “not immediately”, how frequently does the clean-up currently happen? Or is there any event that triggers it apart from the command?

Where exactly do I need to run this command from? Somewhere inside KAP? I tried the different consoles, but they either do not take any input or do not recognize the command. It was not recognized by the Windows cmd with %USERPROFILE%\KNIME\knime_5.1.1 as the current directory either. What am I missing?

Hi @DerMaxdorfer,

I updated my original message to include the instructions for Windows. Can you try it again ?

best,
Gabriel

Works like a charm, @gab1one!

One more question:

The command opens a new cmd window for the garbage collector. It runs, but nothing is displayed except for a blinking cursor. Can I somehow expose what the garbage collector is doing? Preferably to the cmd window from which I ran the command, as the one of the garbage collector is closed automatically.

The reason behind my question is that I cannot tell at the moment if it ran successfully or not unless I go and check in the folders myself. I currently only confirm if %ERRORLEVEL% == 0 in my Batch script, but I do not know if this will do the trick, as I have no idea how the garbage collector behaves.

Or do I simply have to trust that it never fails? :smiley:

Hi @DerMaxdorfer,

This command does not produce any output if everything goes well, if it fails it will output something.
In my experience it only fails if it can not delete the plugins because of file permission issues.

best,
gabriel

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.