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:- Set up your development environment - Follow the developer guide
- Read the style guides - Familiarize yourself with our frontend and backend style guides
- Understand our workflow - Review our pull request guidelines
- 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:- Write or update tests for your changes (see Testing guidelines)
- Adhere to code style guidelines (see Code style)
- Create a clear, descriptive pull request (see Pull request guidelines)
Plugin development
Grafana plugins let you extend the platform with new data sources, panels, and more:- Read the plugin development guide
- Scaffold your plugin using the recommended tools
- Develop and test your plugin locally
- Follow best practices for code style, testing, and documentation
- Publish your plugin or submit it for review
Non-code contributions
You can help even if you don’t write code:- Report bugs - Use the bug report template and include steps to reproduce
- Request features - Submit a feature request
- Improve documentation - Follow the documentation contribution guide
- Triage issues - Help by reviewing, labeling, and clarifying issues
- Report security issues - Follow our security policy
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
Community resources
- Grafana Champions program - Recognition for active contributors
- Forums - Knowledge base and community support
- Meetups - Join local Grafana & Friends groups
- YouTube - Tutorials and getting started videos
- Contributor Survey - Share your feedback on the contributor experience