Evaluate the complexity of your project

A good way to find a project properly sized for a first time contributor is to search for open issues with the label "help wanted".

We separate three levels of complexity for projects:

  • Low complexity: You can work on these projects on your own and tell us afterwards about it. These are often tagged label "easy" or "good first issue" in our issues list.
  • Medium complexity: You can work on these projects on your own, but you should write an RFC before you start implementing.
  • High complexity: You should discuss these projects with us before you start working on design or solution.

Below you’ll find steps for contributing to the codebase; we’ve broken these down by complexity.

How complex is your project?

A project is likely to be low complexity if all the following conditions apply:

  • Users do not need to change the way they use CockroachDB as a result.
  • Other CockroachDB contributors do not need to change the way they work as a result.
  • The architecture of the software or the project doesn’t change in a way that’s visible to more than a handful of developers.
  • The change doesn’t impact the cost model of CockroachDB (how much time and how much memory is used for common operations) in a way that's noticeable by users.
  • You can predict in advance that completing the change will not cost you more than a week of work (provided this isn’t your very first contribution).

A project is likely high complexity if any of the following conditions apply:

  • More than a few users/apps will need to change the way they use CockroachDB as a result.
  • More than a few other CockroachDB contributors will need to change the way they work as a result.
  • The architecture of the software or the project changes in a way visible to more than a handful of developers.
  • The change impacts the cost model of CockroachDB (how much time and how much memory is used for common operations) in a way that's noticeable by users.
  • New software dependencies are introduced.
  • New subdirectories/packages will be created in the repository.
  • You can predict in advance that completing this change will take more than a month.

Projects that are neither definitely simple nor complex can be considered medium complexity.