Fusion package upgrade guide
Learn how to upgrade your packages to be compatible with the dbt Fusion engine.
Introduction
Thank you for being part of the dbt's package hub community and maintaining packages! Your work makes dbt’s ecosystem possible and helps thousands of teams reuse trusted models and macros to build faster, more reliable analytics.
This guide helps you upgrade your dbt packages to be Fusion-compatible. A Fusion-compatible package:
- Supports dbt Fusion Engine version
2.0.0 - Uses the
require-dbt-versionconfig to signal compatibility in the dbt package hub - Aligns with the latest JSON schema introduced in dbt Core v1.10.0
In this guide, we'll go over:
- Updating your package to be compatible with Fusion
- Testing your package with Fusion
- Updating the
require-dbt-versionconfig to include2.0.0 - Updating your README to note that the package is compatible with Fusion
Who is this for?
This guide is for any dbt package maintainer, like dbt-utils, that's looking to upgrade their package to be compatible with Fusion. Updating your package ensures users have the latest version of your package, your package stays trusted on dbt package hub, and users benefit from the latest features and bug fixes.
A user stores their package in a packages.yml or dependencies.yml file. If a package excludes 2.0.0, Fusion warns today and errors in a future release, matching dbt Core behavior.
This guide assumes you're using the command line and Git to make changes in your package repository. If you're interested in creating a new package from scratch, we recommend using the dbt package guide to get started.
Prerequisites
Before you begin, make sure you meet the following:
- dbt package maintainer — You maintain a package on dbt's package hub or are interested in creating one.
dbt-autofixinstalled — Installdbt-autofixto automatically update the package's YAML files to align with the latest dbt updates and best practices. We recommend using/installing uv/uvx to run the tool.- Run the command
uvx dbt-autofixfor the latest version of the tool. For more installation options, see the officialdbt-autofixdoc.
- Run the command
- Repository access — You’ll need permission to create a branch and release updates/a new version of your package. You’ll need to tag a new version of your package once it’s Fusion-compatible.
- A Fusion installation or test environment — You can use Fusion locally (using the
dbtfbinary) or in your CI pipeline to validate compatibility. - CLI and Git usage — You’re comfortable using the command line and Git to update the repository.
Upgrade the package
This section covers how to upgrade your package to be compatible with Fusion by:
- Using
dbt-autofixto automatically update your YAML files - Testing your package with Fusion
- Updating your
require-dbt-versionconfig - Publishing a new release of your package
If you're ready to get started, let's begin!
Run dbt-autofix
-
Before you begin, make sure you have
dbt-autofixinstalled. If you don't have it installed, run the commanduvx dbt-autofix. For more installation options, see the officialdbt-autofixdoc. -
In your dbt package repository, create a branch to work in. For example:
git checkout -b fusion-compat -
Run
dbt-autofix deprecationsin your package directory so it automatically updates your package code and rewrites YAML to conform to the latest JSON schema:dbt-autofix deprecations
Test package with Fusion
Now that you've run dbt-autofix, let's test your package with Fusion to ensure it's compatible before updating your require-dbt-version config. Refer to the Fusion limitations documentation for more information on what to look out for. You can test your package two ways:
- Running your integration tests with Fusion — Use if your package has integration tests using an
integration_tests/folder. - Manually validating your package — Use if your package doesn't have integration tests. Consider creating one to help validate your package.
Running your integration tests with Fusion
If your package includes an integration_tests/ folder (like dbt-utils), follow these steps:
- Navigate to the folder (
cd integration_tests) to run your tests. If you don't have anintegration_tests/folder, you can either create one or navigate to the folder that contains your tests. - Then, run your tests with Fusion by running the following
dbtf buildcommand (or whatever Fusion executable is available in your environment). - If there are no errors, your package likely supports Fusion and you're ready to update your
require-dbt-version. If there are errors, you'll need to fix them first before updating yourrequire-dbt-version.
Manually validating your package
If your package doesn't have integration tests, follow these steps:
- Create a small, Fusion-compatible dbt project that installs your package and has a
packages.ymlordependencies.ymlfile. - Run it with Fusion using the
dbtf runcommand. - Confirm that models build successfully and that there are no warnings. If there are errors/warnings, you'll need to fix them first. If you still have issues, reach out to the #package-ecosystem channel on Slack for help.
Update require-dbt-version
Only update the require-dbt-version config after testing and confirming that your package works with Fusion.
-
Update the
require-dbt-versionin yourdbt_project.ymlto include2.0.0. We recommend using a range to ensure stability across releases:require-dbt-version: [">=1.10.0,<3.0.0"]This signals that your package supports both dbt Core and Fusion. dbt Labs uses this release metadata to mark your package with a Fusion-compatible badge (to be introduced shortly) in the dbt package hub. Packages without this metadata don't display the Fusion-compatible badge.
-
Commit and push your changes to your repository.
Publish a new release
- After committing and pushing your changes, publish a new release of your package by merging your branch into main (or whatever branch you're using for your package).
- Update your
READMEto note that the package is Fusion-compatible. - (Optional) Announce it in #package-ecosystem on dbt Slack if you’d like.
When possible, add a step to your CI pipeline that runs dbtf build or equivalent to ensure ongoing Fusion compatibility.
Your package is now Fusion-compatible and the dbt package hub reflects these changes. To summarize, you've now:
- Created a fusion compatible branch
- Run
dbt-autofixdeprecations - Reviewed, committed, and tested changes
- Updated
require-dbt-version: [">=1.10.0,<3.0.0"]to include2.0.0 - Published a new release
- Announced the update (optional)
Final thoughts
Now that you've upgraded your package to be Fusion-compatible, users can use your package with Fusion! 🎉
By upgrading now, you’re ensuring a smoother experience for users, paving the way for the next generation of dbt projects, and helping dbt Fusion reach full stability.
If you have questions or run into issues:
- Join the conversation in the #package-ecosystem channel on Slack.
- Open an issue in the dbt-autofix repository on GitHub.
Lastly, thank you for your help in making the dbt ecosystem stronger — one package at a time 💜.
Frequently asked questions
The following are some frequently asked questions about upgrading your package to be Fusion-compatible.
Was this page helpful?
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.