Contribute to YugabyteDB
We are big believers in open source. YugabyteDB is distributed under the Apache v2.0 license, which is very permissive open source license. We value external contributions and fully welcome them! We accept contributions as GitHub pull requests. This page contains everything you need to get you going quickly.
Learn about the architecture
There are a number of resources to get started, here is a recommended reading list:
- Go through the architecture section of the docs. It will give an overview of the high level components in the database.
Sign the CLA
When your first contribution is submitted as a pull request, you will be given a link to sign the Yugabyte Individual Contributor License Agreement (CLA).
Pick an area
There are a few areas you can get involved in depending on your interests.
Core database
This is the C++ code and the unit tests that comprise the core of YugabyteDB. You can follow the steps outlined here to get going with steps such as building the codebase and running the unit tests.
Docs
YugabyteDB documentation uses the Hugo framework. There are two types of docs issues - infrastructure enhancements, and adding or modifying content. You can follow the steps outlined here to get set up and make a contribution.
Find an issue
Issues are tagged with labels, as described in the following table.
Key labels | Comments |
---|---|
kind/bug | Bugs can have a small or large scope, so make sure to understand the bug. |
area/documentation | An issue related to the docs infrastructure, or content that needs to be added to the docs. |
kind/enhancement | An enhancement is often done to an existing feature, and is usually limited in scope. |
good first issue | A great first issue to work on as your initial contribution to YugabyteDB. |
help wanted | Issues that are very useful and relatively standalone, but not actively being worked on. |
kind/new-feature | An new feature does not exist. New features can be complex additions to the existing system, or standalone pieces. |
kind/question | A question that needs to be answered. |
-
If you're just starting out contributing to YugabyteDB, first off welcome and thanks! Look for issues labelled good first issue.
-
If you've already contributed and are familiar, then look for issues with the help wanted label.
Note
If you want to work on a feature and are not sure which feature to pick, or how to proceed with the one you picked - do not hesitate to ask for help in our Slack chat or our community forum.