Seeking Guidance for Publishing Grafana Custom Panel with Palindrome.js Integration

Hello Grafana community,

We are currently in the process of developing a custom Grafana plugin using React and TypeScript with the aim of creating a Palindrome.js panel for Grafana, utilizing Prometheus as its data source. Palindrome.js is a 3D visualization library available at Palindrome.js GitHub repository.

Our custom panel plugin uses a built version of Palindrome.js library.

We have several questions and seek your advice to ensure the acceptance of our plugin:

  • The Palindrome.js project is licensed under the Apache License. Will utilizing this library within our custom panel, which we intend to make public, align with the licensing requirements?

  • As we plan to release this plugin to the public, are there specific license files we need to include?

  • While the custom panel works correctly, there is an issue with the Palindrome.js library not conforming to lint guidelines. Is adherence to lint standards a prerequisite for acceptance, or are there exceptions?

  • Are Cypress end-to-end tests mandatory for acceptance, or are they optional?

  • Do we need to provide any usage documentation to the reviewers?

  • Finally, do you have any additional advice or recommendations to increase the likelihood of our plugin being accepted?

Thank you for your assistance!

1 Like

Hi @mohamedyacoubi and first, thanks so much for wanting to contribute to Grafana.

The Palindrome.js project is licensed under the Apache License. Will utilizing this library within our custom panel, which we intend to make public, align with the licensing requirements?

You can read about plugin licensing here Plugins | Grafana Labs

As we plan to release this plugin to the public, are there specific license files we need to include?

You must include a license for your plugin and respect the license of any libraries you use. Please refer to the previous link about plugins licensing.

While the custom panel works correctly, there is an issue with the Palindrome.js library not conforming to lint guidelines. Is adherence to lint standards a prerequisite for acceptance, or are there exceptions?

Plugins are distributed bundled to Grafana so linting is not relevant for plugins to work. During the review process we conduct a code review and linting is not a strict requirement but much appreciated for code readability.

Are Cypress end-to-end tests mandatory for acceptance, or are they optional?

Optional. We strongly encourage you to write tests for your plugin but you decide.

Do we need to provide any usage documentation to the reviewers?

Yes. It is important you provide us with documentation on how to test your plugin [1]

Finally, do you have any additional advice or recommendations to increase the likelihood of our plugin being accepted?

Do provide documentation on how to test your plugin[1], make sure you use our plugin validator GitHub - grafana/plugin-validator: Tool for validating Grafana community plugins to verify your package and source code.

[1] by “how to test your plugin” I don’t mean how to install it in grafana or how to create a panel or a new datasource instance, but, how we can see your plugin working, what data is required, or what options are required.

If a external service is required (e.g. a mysql database) we will need to know how to boot one of these services our own (a docker-compose file is the best way) or you will need to provide us with access to this service if we can’t procure one ourselves without additional costs.

In the case of panels, the best you can do is write a clear documentation in your README file for your users and we’ll use it to test the panel plugin.

1 Like