Skip to main content

Contributing guide

Thank you for your interest in contributing to Grafana! We welcome all people who want to contribute in a healthy and constructive manner within our community.

Code of Conduct

All participants must adhere to the Code of Conduct. We pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

Getting started

Before making your first contribution:
  1. Set up your development environment - Follow the developer guide
  2. Read the style guides - Familiarize yourself with our frontend and backend style guides
  3. Understand our workflow - Review our pull request guidelines
  4. Sign the CLA - You’ll need to sign our Contributor License Agreement before we can accept your pull request

Ways to contribute

Code contributions

Browse issues to find something to work on. You can filter by help wanted label. Requirements:

Plugin development

Grafana plugins let you extend the platform with new data sources, panels, and more:
  1. Read the plugin development guide
  2. Scaffold your plugin using the recommended tools
  3. Develop and test your plugin locally
  4. Follow best practices for code style, testing, and documentation
  5. Publish your plugin or submit it for review

Non-code contributions

You can help even if you don’t write code:
We do not currently accept contributions for translations. Please do not submit pull requests translating grafana.json files. We do accept contributions to mark up phrases for translation.

Communication channels

Use the right channel for your needs:
  • GitHub issues - For reproducible bugs, actionable feature requests, and code/docs changes via pull requests
  • Grafana community forums - For questions, troubleshooting, best practices, and early idea discussion
  • Grafana Community Slack - For quick, time-sensitive chats and networking
  • Not sure where to start? - Start with a forum topic; maintainers will redirect you if needed

Development workflow

Grafana uses trunk-based development:
  • Main and release branches must always build without failure
  • Branches should be merged often
  • Larger changes should be activated with feature flags until ready
  • Long-lived development branches should be avoided

Branch structure

  • MAJOR releases - Based on main
  • MINOR releases - Based on main
  • PATCH releases - Split from the relevant MINOR release branch

Release cadence

  • MAJOR: Yearly
  • MINOR: Every 4-6 weeks
  • PATCH: As needed

Governance

Merging pull requests

Different requirements apply based on PR size and complexity:
  • Every merge - Approved by at least one team member
  • Non-trivial changes - Approved by at least two team members, or one subsystem maintainer
  • Significant changes - Approved by at least two team members AND the relevant subsystem maintainer
Team members contributing substantially to a PR must not count against review requirements.

Community resources