GMOD / jbrowse-components

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

move most plugins into packages/ directory in monorepo #333

Closed rbuels closed 5 years ago

rbuels commented 5 years ago

Right now most plugins are in jbrowse-web/src, but they need to move out into packages/

cmdcolin commented 5 years ago

@garrettjstevens and I discussed that many parsers could possibly go into a single core datastores plugin

cmdcolin commented 5 years ago

possibly that is of practical significance if dynamically loading many plugins causes any slowdown

garrettjstevens commented 5 years ago

I'm adding JBrowse1 connections and UCSC TrackHub connections to a "core-connections" package. What about doing other similar groupings? I was working on the "add data hub" drawer widget and moved it and a couple other drawer widgets into a "core-drawer-widgets" package as an experiment. It seemed to work well.

rbuels commented 5 years ago

My problem with groupings like this has always been that there is no way to make a clear distinction of what goes in the grouping and what doesn't.

"Is this thing core? Yes? No? Maybe we should move it into the core package?" "This thing is causing problems, we need to kick it out of the core package, but is that going to break this other thing over here that depends on it being in the core package?"

garrettjstevens commented 5 years ago

That's fair. I do think that we might want to combine some of our plugins, though, for better code organization. Maybe have BamAdapter, AlignmentsTrack, and PileupRenderer be a single package (and add CramAdapter, etc. in there later)? Or the same for BigWigAdapter, WiggleTrack, and WiggleRenderer?

rbuels commented 5 years ago

yeah those sound like good natural groupings