GMOD / jbrowse-components

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

central plugin store JSON and website display #1838

Closed rbuels closed 3 years ago

rbuels commented 3 years ago

Make a JSON file that gets deployed to jbrowse.org, that is the central plugin list, which is just a list of npm module names that we have accepted into the plugin store.

The JSON file will be in its own little repo: https://github.com/GMOD/jbrowse-plugin-list Need a little bit of CI on that repo to copy the plugin list to S3 when the main branch is updated.

And then the docusaurus build would go through that list, fetch the metadata about each plugin, and make a nice plugin list that Google can index and that people can browse on jbrowse.org to see all the cool plugins that JBrowse 2 has.

Plugin metadata is everything in the package.json, plus a plugin logo (svg or png). Plugin icon/logo would be at jbrowse.plugin_logo in the package.json.

Plugins are npm modules, hosted by npm (and from there, unpkg). Plugins are loaded into browsers from unpkg URLs.

elliothershberg commented 3 years ago

Quick implementation note on this as I go:

There is a lot of project/dev specific stuff in the metadata of a package.json, I think I'm going to model the metadata for plugins a bit closer to the JB1 registry (https://github.com/GMOD/jbrowse-registry).

For that, an example of a plugin is:

- author: Colin Diesh
  description: |
    A JBrowse plugin for plotting multiple bigwig files on a single track.
    Includes a storeclass that accepts multiple bigwig URLs and a custom
    tracktype for rendering the subtracks.
  gmodProject: JBrowse
  location: https://github.com/cmdcolin/multibigwig
  name: multibigwig
  license: MIT
  image: multibigwig.png

Where the plugin author had the option of adding an image when submitting the PR.

So for JB2, I'm thinking:

{
  "name": "msaview",
  "author": "Colin Diesh",
  "description": "multiple sequence alignment browser plugin for JBrowse 2",
  "location": "https://github.com/GMOD/jbrowse-plugin-msaview",
  "license": "Apache License 2.0",
  "image": "msaview.png"
}

For each plugin in the JSON array.