Open tmiranda1962 opened 9 years ago
The issue is we need to somehow mark what plugins were manually installed. It's entirely possible, for instance, that a manually installed plugin (Phoenix Core for instance), is meeting a prerequisite for only a single downstream plugin. In most cases, you would not always want removing BMT to also remove the Phoenix Core. Even though BMT might have been the only plugin that was using Phoenix Core, we can't assume that removing BMT should also remove the core. right?
Correct. I wrote some code that uses a recursive algorithm to walk the plugin tree and only remove those dependency plugins that are not dependencies of other plugins. Take a look here: https://code.google.com/p/tmiranda/source/browse/#svn%2Ftrunk%2FRPAD%2Fsrc%2Ftmiranda%2Frpad
Once I wrap my head around the core I could take a shot at it but right now I'm not up to it.
On Mon, Aug 17, 2015 at 9:11 PM, Christopher Piper <notifications@github.com
wrote:
The issue is we need to somehow mark what plugins were manually installed. It's entirely possible, for instance, that a manually installed plugin (Phoenix Core for instance), is meeting a prerequisite for only a single downstream plugin. In most cases, you would not always want removing BMT to also remove the Phoenix Core. Even though BMT might have been the only plugin that was using Phoenix Core, we can't assume that removing BMT should also remove the core. right?
— Reply to this email directly or view it on GitHub https://github.com/google/sagetv/issues/18#issuecomment-132015281.
I agree with Fuzzy's comment...I don't think this is a good idea to do unless we are also tracking which plugins were manually installed. Otherwise you could remove something the user manually requested to install.
Maybe make it an option? I think there are very few users who will manually install a plugin that happens to be a dependency of another plugin. Why would a user do that in the first place? On Aug 18, 2015 2:38 PM, "Jeffrey Kardatzke" notifications@github.com wrote:
I agree with Fuzzy's comment...I don't think this is a good idea to do unless we are also tracking which plugins were manually installed. Otherwise you could remove something the user manually requested to install.
— Reply to this email directly or view it on GitHub https://github.com/google/sagetv/issues/18#issuecomment-132312697.
Fuzzy gave a reason why someone would do it. :) And I don't see that much actual benefit from removing plugins that are no longer needed as they aren't hurting anything....but if you remove something the user actually wanted there, then that's a problem.
Making some other option that removes all the unneeded dependencies via first figuring them out, and then prompting the user about what's going to be removed, that would be fine with me. :) But would of course then require extra things in the STV to make that happen. Lol...I guess this could actually be a plugin. :D
Ok, you win :) On Aug 18, 2015 3:19 PM, "Jeffrey Kardatzke" notifications@github.com wrote:
Fuzzy gave a reason why someone would do it. :) And I don't see that much actual benefit from removing plugins that are no longer needed as they aren't hurting anything....but if you remove something the user actually wanted there, then that's a problem.
Making some other option that removes all the unneeded dependencies via first figuring them out, and then prompting the user about what's going to be removed, that would be fine with me. :) But would of course then require extra things in the STV to make that happen. Lol...I guess this could actually be a plugin. :D
— Reply to this email directly or view it on GitHub https://github.com/google/sagetv/issues/18#issuecomment-132323126.
What about the ability to see what a plugin is dependent on and what dependents on it in its properties. That at least allows for manually removing unneeded plugins.
Not a bad idea at all. :)
When a plugin is uninstalled the plugin manager should also remove all dependencies that are not needed for any other plugin. I have written code to do this for the "Remove Plugin and dependencies" plugin.