This seems like useful functionality, but I'd encourage rethinking it a bit.
I would like to avoid doing things like re-running meta-scan stuff or firing on_app_launch() code at arbitrary times. Plugins will generally assume that those things happen in a set order and exactly one time, and if that is sometimes not the case I worry it would introduce subtle bugs since people would not be testing those cases. It is sort of like reloading a python module; it is technically possible, but in my experience the results are not always safe or predictable (though it can still sometimes be useful during development).
I think something like this could be great implemented as some sort of GUI plugin (perhaps with a warning that it may cause unpredictable results). I'm hoping to add a 'debug panel' GUI soon which is accessible from anywhere; perhaps something like this could go there..
I would like to avoid doing things like re-running meta-scan stuff or firing on_app_launch() code at arbitrary times. Plugins will generally assume that those things happen in a set order and exactly one time, and if that is sometimes not the case I worry it would introduce subtle bugs since people would not be testing those cases. It is sort of like reloading a python module; it is technically possible, but in my experience the results are not always safe or predictable (though it can still sometimes be useful during development).
I think something like this could be great implemented as some sort of GUI plugin (perhaps with a warning that it may cause unpredictable results). I'm hoping to add a 'debug panel' GUI soon which is accessible from anywhere; perhaps something like this could go there..
Originally posted by @efroemling in https://github.com/efroemling/ballistica/issues/160#issuecomment-676531132