It’s hilarious. They give you an option to install but give you no option to delete. It’s a case of “if you can’t see it it’s not there”. That’s just asking for trouble and product support requests. Maybe there’s method in their madness after all.
I thinks it’s here to prevent cross referenced file from being removed but still be useful for plugins. If it was me to be in charge for plugins architecture, I’d be chosen a separate folder structure for each plugin and a manifest to describe them.
Yes there is a possibility that you could delete dependencies for other plugins while manually deleting a plugin. The question I am asking is could a plugin have an uninstall feature included in its package that would reverse the install process and physically remove all of its own components.
I doubt that this would be a problem to implement. Possibly an uninstall script supplied with each plugin would resolve this.
The first thing any new user does is to try out plugins, when they can get the App Store to load of course They soon fill their Vera device and of course processes like firmware updates become an issue.
Your suggestion does not resolve the problem with dependencies between plugins.
Say for example you install two plugins relying on one same file. If one plugin has it in its file list, upon removal, it will also affect the second plugin.
This would require a repository like recording of dependencies which the vera does not have for its plugin management. The separate folders per plugin is more elegant but may lead to larger (precious) storage. Would not be a problem if the vera was not so limited.
Obviously the plugin folder would be a more sensible route to go but the Vera Edge is what it is. A low spec Z Wave controller souped up to run a home automation system way beyond its capabilities. Too many features crammed in and it stops working efficiently.
A SBC along the lines of the Raspberry or Orange Pi would make more sense but that would be entering dangerous territory
MiOS actually knows (mostly) which files are used by a plugin. Sadly, you’d have to look at the user_data InstalledPlugins2 structure to find out… unless, of course, you were using AltUI, in which case the Plugins page has a handy Files menu against each plugin.
You can’t guarantee, though, that another plugin doesn’t use those files, although this is unlikely.
Proper namespace managerment would certainly help with addressing this issue.