[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.