TODO - update the following content since it is not up-to-date.
There's a few scenarios that might prompt a release:
| Scenario | Release type |
|---|---|
| New functionality¹ | minor |
| Breaking changes to existing macros | minor |
| Fixes to existing macros | patch |
| dbt minor release with no breaking changes | patch |
| dbt minor release with breaking changes | minor |
¹New macros were previously considered patch releases — we have brought them up to minor releases to make versioning for dependencies clearer.
At any point, there should be two long-lived branches:
main(default): This reflects the most recent release of dbt-utilsdev/0.x.0: This reflects the next minor release, wherexwill be replaced with the minor version number
The dev/0.x.0 branch should be merged into main branch when new releases are created.
e.g. for releasing 0.x.0
- Create the PR to merge
dev/0.x.0intomain. Also update theCHANGELOGas part of this PR, and merge it. - Create the GitHub release from the
mainbranch. - Delete the
dev/0.x.0branch, and create a new branchdev/0.x+1.0frommain, adding branch protection to it. - Create a new issue from the "dbt-utils Minor Release Follow-Up" template to also update any dependencies.
- Create the release.
- Then rebase the current
dev/0.x.0branch on top of themainbranch so that any fixes will be included in the next minor release.
No dependent packages need to be updated for patch releases (e.g. codegen, audit-helper)