[Packages] dbt Labs in the dbt Hub

On Wednesday, we announced that Fishtown Analytics is now dbt Labs. Neat! That means if you, like me, are in the habit of typing github dot com slash fishtown dash analytics slash dbt into a browser first thing each morning, you’re now magically redirected to a shorter, neater URL.

The dbt Hub has followed suit. On the homepage, you’ll now see links to plenty of packages in the dbt-labs organization. So, you might be asking: What does that mean for your packages.yml that looks like this?

packages:
  - package: fishtown-analytics/dbt_utils
    version: 0.6.4
  - package: fishtown-analytics/audit_helper
    version: 0.3.0
  - package: fishtown-analytics/codegen
    version: 0.3.1

Here’s the deal:

  • All existing package versions are stable and will continue working. That includes all references to fishtown-analytics in your packages.yml files. GitHub handles the redirect, the clone goes through, your deps succeed.
  • All existing versions of dbt Labs-maintained packages (as of July 1, 2021) are available in both namespaces, fishtown-analytics and dbt-labs.
  • After today, new versions of dbt Labs-maintained packages will only be available in the dbt-labs namespace.

Important! Dependency resolution for new package versions

All of us will take time to acclimate to the new name; “I work at Fishtown” is a hard habit to break! For now, dbt doesn’t know that fishtown-analytics/dbt_utils and dbt-labs/dbt_utils are really the same package. If your project installs packages that depend on dbt_utils, and you also specify dbt_utils as a dependency, you’ll need to coordinate namespaces.

For example, calogica/dbt_date v0.3.1 depends on fishtown-analytics/dbt_utils. So if you try:

packages:
  - package: calogica/dbt_date  # needs fishtown-analytics/dbt_utils
    version: 0.3.1
  - package: dbt-labs/dbt_utils  # that's not fishtown!
    version: 0.6.6

dbt thinks it needs to install a package named dbt_utils from two different places. So you’ll see an error like:

Encountered an error:
Found duplicate project "dbt_utils". This occurs when a dependency has the same project name as some other dependency.

For now, the simple fix is to switch back to a matching namespace:

packages:
  - package: calogica/dbt_date
    version: 0.3.1
  - package: fishtown-analytics/dbt_utils
    version: 0.6.6

Looking ahead: for package maintainers

We (dbt Labs) maintain a dozen packages on the Hub site, many of which depend on dbt-utils. Over the next week, we’re going to put out new minor versions of all our packages that:

If you’re a package maintainer, and your package depends on one of ours (likely dbt_utils), I’d ask that you please update to the dbt-labs namespace in your next minor-version release. With dbt v0.20 just around the corner, there’s never been a better time to establish forward compatibility. Let me know if you need help or have questions—you can thread them up here, and my DMs are always open.

2 Likes

Thanks @jerco !

I just released dbt-date 0.3.2 with this change for 0.19.x compatible projects.
Also, the dbt 0.20.0 compatible PR for dbt-date 0.4.0 points to dbt-labs well.

2 Likes

Thanks for the quick work Claus!

I just edited my post above to encourage this switch in the next minor version of packages, since hopefully users have pinned package versions accordingly.

I have tried to install the dbt_utils package and have followed the directions outlined in the DBT Essential on demand training and the packages documentation on getdbt.com. I get an error that “No packages were found in packages.yml”. Is there another step that I have missed?

  1. create packages.yml in project
  2. paste code from hub.getdbt
  3. save file
  4. execute dbt deps in terminal (Using Visual Studio code and dbt CLI connected to GitHub)
  5. get error “No packages were found in packages.yml”

So, I found my problem. When I created the file, it did not place it in my project folder but a project sub folder. I was moving it so that it would be closer to my project file and it asked me if I wanted to move it to the project folder. Once I did this and re-ran the dbt deps, the install completed successfully.

Hi @jerco ,

So for now we can’t upgrade dbt to the new version of 0.20.2 if the package that installed in our environment is from “fishtown-analytics/dbt_utils”? (dbt v0.20.2 require a newer dbt_utils version)

We are getting the error that you mentioned:

Encountered an error:
Found duplicate project “dbt_utils”. This occurs when a dependency has the same project name as some other dependency.

By now, most packages have released newer versions that:

  • are compatible with v0.20+
  • depend on dbt-labs/dbt_utils instead of fishtown-analytics/dbt_utils

If you’re running into issues with a specific package, could you post the details in the dbt Community Slack channel #dbt-package-releases, and some members of the community can help figure out what might be going on?