Welcome to dbt-semantic-interfaces
! We're excited to have you here. This document will help you get started with contributing to the project.
- Familiarize yourself with our Code of Conduct. In summary - be kind to each other. We're all here trying to make the data world a better place to work.
- Make sure you can sign our Contributor License Agreement. Unfortunately, we cannot accept PRs unless you have signed. If you are not able to sign the agreement you may still participate in our Slack community or interact with Issues. To sign the agreement simply put up a PR, and you will receive instructions there.
- Ensure you have Python >=
3.8
. - Create a fork of the repo and clone it locally.
- Set up your environment using
hatch
. We provide the following two commands to help you get set up:make install-hatch
: Installs hatchmake install
: uses hatch to install all the dependencies
- Begin developing!
You're ready to start! Note all make
commands should be run from your repository root unless otherwise indicated.
- Run some tests to make sure things happen:
- Run the full test suite:
make test
- Run a subset of tests based on path:
hatch run pytest TODO: DIRECTORY PATH
- Run the full test suite:
- Now you may wish to break some tests. Make some local changes and run the relevant tests again and see if you broke them!
- Run the linters with
make lint
at any time, but especially before submitting a PR. We use:Black
for formattingRuff
for general Python lintingMyPy
for typechecking
We use changie to generate CHANGELOG
entries. Note: Do not edit the CHANGELOG.md
directly. Your modifications will be lost.
In order to use it, you can:
- Follow the steps to install
changie
for your system. - Once changie is installed and your PR is created for a new feature, run the following command and changie will walk you through the process of creating a changelog entry.
changie new
. - Commit the file that's created and your changelog entry is complete!
- (Optional if contributing to a feature in progress) Modify the changie yaml file in
dbt-semantic-interfaces/.changes/unreleased/
related to your change. If you need help finding this file, please ask within the discussion for the pull request!
You don't need to worry about which dbt-semantic-interfaces
version your change will go into. Just create the changelog entry with changie
, and open your PR against the main
branch. All merged changes will be included in the next minor version of dbt-semantic-interfaces
. The maintainers may choose to "backport" specific changes in order to patch older minor versions. In that case, a maintainer will take care of that backport after merging your PR, before releasing the new version of dbt-semantic-interfaces
.
- Merge your changes into your fork of the
dbt-semantic-interfaces
repository - Make a well-formed Pull Request (PR) from your fork into the main repository. If you're not clear on what a well-formed PR looks like, fear not! We provide a structure to follow.
- One of our core contributors will review your PR and either approve it or send it back with requests for updates
- Once the PR has been approved, our core contributors will merge it into the main project.
- You will get a shoutout in our changelog/release notes. Thank you for your contribution!