Skip to main content

Coding contributions

Contribute to dbt Packages

Overview

dbt Packages are the easiest way for analytics engineers to get involved with contributing code to the dbt Community, because dbt Packages are just standard dbt Projects. If you can create a dbt Project, write a macro, and ref a model: you can make a dbt Package. Packages function much like libraries do in other programming languages. They allow for prewritten, modularized development of code to solve common problems in analytics engineering. You can view all dbt Packages on the dbt Package Hub.

Contribution opportunities

  • Create a new package for the dbt Package Hub. This might be a new set of macros or tests that have been useful to you in your projects, a set of models for engaging with a commonly used datasource or anything else that can be done from within a dbt project.
  • Improve an existing package: Alternatively you can help improve an existing package. This can be done by creating and engaging with Issues or by functionality to address an existing issue via opening a PR.

Sample contributions

Get started

  • Use packages in your own projects! The best way to know how to improve a package is to use it in a production environment then look for ways it can be modified or improved.
  • Read the following resources on package development:
  • Need help: Visit #package-ecosystem in the dbt Slack

Contribute to dbt open source software

Overview

dbt Core, adapters, tooling, and the sites powering the Package Hub and Developer Hub are all vibrant open source projects. Unlike dbt Packages, contributing code to these projects typically requires some working knowledge of programming languages outside of SQL and Jinja, but the supportive community around these repositories can help you advance those skills. Even without contributing code, there are many ways to be part of open source development in these projects, detailed below. You can find a curated list of the most active OSS projects that dbt Labs supports here.

Contribution opportunities

There are three primary ways to contribute to the dbt OSS projects. We’ll use dbt Core as an example, as it’s the most active and mature OSS project we support, and a great place to start for newcomers:

  • Open an issue to suggest an improvement or give feedback.
  • Comment / engage on existing issues or discussions. This could be upvoting issues that would be helpful for your organization, commenting to add nuance to a feature request or sharing how a feature would impact your dbt usage.
  • Create a pull request that resolves an open Issue. This involves writing the code and tests that add the feature/resolve the bug described in an Issue, and then going through the code review process asynchronously with a dbt Labs engineer.

Sample contributions

Get started

Need help?

The following channels in the dbt Community Slack are a great place to ask questions:

  • #dbt-core-development
  • #adapter-ecosystem
0