Closed rbuels closed 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.
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.