From 5bb8b9790fb32e60506c1165c191ee13c5cd769e Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Mon, 3 Aug 2020 20:14:25 -0700 Subject: [PATCH] docs: new contributing language around adding new plugins (#10507) * Update CONTRIBUTING.md * nixing bugfix line (unnecessary) Co-authored-by: Jesse Yang * proper caps on TypeScript Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com> Co-authored-by: Jesse Yang Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com> --- CONTRIBUTING.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bd0e1ea53..9a15cf48f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -814,7 +814,7 @@ Then, [extract strings for the new language](#extracting-new-strings-for-transla ### Improving visualizations -Superset is working towards a plugin system where new visualizations can be installed as optional npm packages. To achieve this goal, we are not accepting pull requests for new community-contributed visualization types at the moment. However, bugfixes for current visualizations are welcome. To edit the frontend code for visualizations, you will have to check out a copy of [apache-superset/superset-ui](https://github.com/apache-superset/superset-ui): +To edit the frontend code for visualizations, you will have to check out a copy of [apache-superset/superset-ui](https://github.com/apache-superset/superset-ui): ```bash git clone https://github.com/apache-superset/superset-ui.git @@ -847,6 +847,18 @@ The topic of authoring new plugins, whether you'd like to contribute it back or not has been well documented in the [So, You Want to Build a Superset Viz Plugin...](https://preset.io/blog/2020-07-02-hello-world/) blog post +To contribute a plugin to Superset-UI, your plugin must meet the following criteria: +* The plugin should be applicable to the community at large, not a particularly specialized use case +* The plugin should be written with TypeScript +* The plugin should contain sufficient unit/e2e tests +* The plugin should use appropriate namespacing, e.g. a folder name of `plugin-chart-whatever` and a package name of `@superset-ui/plugin-chart-whatever` +* The plugin should use them variables via Emotion, as passed in by the ThemeProvider +* The plugin should provide adequate error handling (no data returned, malformatted data, invalid controls, etc.) +* The plugin should contain documentation in the form of a populated `README.md` file +* The plugin should have a meaningful and unique icon +* Above all else, the plugin should come with a *commitment to maintenance* from the original author(s) + +Submissions will be considered for submission (or removal) on a case-by-case basis. ### Adding a DB migration