GMOD / jbrowse-components

Source code for JBrowse 2, a modern React-based genome browser
https://jbrowse.org/jb2
Apache License 2.0
199 stars 61 forks source link

Uninstalling plugin may need a "uninstall" method #2055

Open cmdcolin opened 3 years ago

cmdcolin commented 3 years ago

Similar to things like closing a connection -> deletes open tracks using that connection

Plugins will have particular configSchema's and such and if they are uninstalled, those entries will need to be removed from the config (or else the tracks and such from that plugin will cause the config/sessions to fail to load)

Alternatively, or maybe as an extra, we may want to find ways to improve loading of malformed sessions/configs(?)

Here is a screenshot of jbrowse desktop after uninstalling CIVIC plugin, which automatically adds a CIVIC track to the users session or config, but as a result, fails to load the browser after uninstalling

t1

cmdcolin commented 2 years ago

another example of this that is somewhat unexpected can come from e.g. adding the gwas plugin. i don't even have to create a gwas track for it to cause a problem, because jbrowse-plugin-gwas adds a displayType to FeatureTrack, and then any featuretrack gets a LinearManhattanDisplay in it's display list, and then uninstalling crashes. even without this somewhat weird behavior, we may still want uninstall for more expected reasons like above, or removing an explicit instanceof a linearmanhattan track, etc.

may also be worth saying that uninstalling is a dangerous thing to do since it can void sessions, etc.