Skip to content

Commit 7273b35

Browse files
chore: release v2.0.0-alpha.2
Release workflow: https://github.com/dbt-labs/dbt-core/actions/runs/27760689255
1 parent 2b5f966 commit 7273b35

70 files changed

Lines changed: 10856 additions & 468 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changes/2.0.0-alpha.2.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
## 2.0.0-alpha.2
2+
3+
Released June 18, 2026
4+
5+
### Features
6+
7+
- [dbt-fusion] Added --empty support in seed command.
8+
- [dbt-fusion] Homebrew distribution: install the dbt Fusion CLI with `brew install dbt` from the official tap.
9+
- [dbt-fusion] GET /api/v1/models: add catalog field (row_count_stat, bytes_stat, last_modified_stat from warehouse INFORMATION_SCHEMA) and materialized field; dbt build --write-index now queries warehouse catalog stats and writes them to the parquet index
10+
- [dbt-fusion] Detect how dbt was installed (Homebrew, pip, winget, or the standalone installer) and surface the matching upgrade command; `dbt system update` now refuses to overwrite a binary managed by a package manager unless `--force` is passed.
11+
- [dbt-fusion] Redshift: use SHOW TABLES FROM SCHEMA for cross-database source freshness when datasharing is enabled
12+
- [dbt-fusion] Emit project-wide catalogs count on the parse-time ResourceCounts telemetry event
13+
- [dbt-fusion] (fabric) supports dbt init
14+
- [dbt-fusion] Interactive dbt login honors the DBT_OAUTH_SCOPES env var to request additional OAuth scopes.
15+
- [dbt-fusion] dbt docs serve reports actual login status in GET /api/v1/distribution
16+
- [dbt-fusion] Add Workload Identity Federation auth for BigQuery via Microsoft Entra
17+
- [internal] Add daily conformance-analysis collection: scheduled GHA collects the previous UTC day and uploads per-day error-lines parquet to S3; new `cargo conformance fetch`/`push` sync the bucket and `collect --start/--end` + `log-overlap --days N` enable multi-day analysis
18+
- [internal] Add `cargo conformance report`: a self-contained static HTML UI for an log-overlap run — templates ranked by impact, the concrete strings filling each drain3 `<*>` wildcard, and drill-down into the original log lines
19+
20+
### Fixes
21+
22+
- [dbt-fusion] (fix adapters/databricks) restore token-first dispatch for Databricks OAuth so dbt Studio's U2M flow works correctly.
23+
- [dbt-fusion] equals macro now uses IS NOT DISTINCT FROM clause for comparison
24+
- [dbt-fusion] update try_or_compiler_error to match dbt-core
25+
- [dbt-index] Preserve runtime invocation/run-result timestamps during direct fusion metadata ingest so dbt_rt.invocations.generated_at and dbt_rt.run_results.created_at are populated again
26+
- [dbt-fusion] Fix /api/v1/search returning 500 when dbt_rt.run_results parquet is absent (project never run with --use-index)
27+
- [dbt-fusion] Fix v2-parser path - preserve raw user-provided source identifier (including any embedded quote characters) on __source_attr__.identifier so dbt-core's source(...).identifier round-trips for packages like fivetran/zendesk that pre-quote reserved-word table names (e.g. Snowflake's GROUP)
28+
- [dbt-fusion] source freshness on_run_end hooks can now access result.node (unique_id, relation_name, etc.) — fixes compatibility with elementary and other packages that read result.node in on_run_end macros
29+
- [dbt-fusion] dbt State auth no longer caches the organization ID; it is always resolved from the live token scope, avoiding unnecessary browser re-authentication when a user's organization access changes between invocations
30+
- [dbt-fusion] Fix v2-parser path - hydrate ColumnInfo.dimension and ColumnInfo.entity from the column when YAML omits required fields, and skip serializing Option::None so dbt-core's mashumaro can deserialize fusion's writable manifest into ColumnDimension/ColumnEntity dict-form variants
31+
- [dbt-fusion] Fix v2-parser path - only blank path and original_file_path on public model nodes imported via publication artifacts; keep paths for public models from locally-resolved (local/git/registry) packages so dbt-core can write per-model compiled SQL instead of crashing with Errno 21 trying to write to an empty path
32+
- [dbt-fusion] Fix v2-parser path - emit hook operation nodes with original_file_path of ./dbt_project.yml (package-internal) and path with .sql extension so dbt-core writes compiled hook artifacts to the same per-package location it does without --use-v2-parser
33+
- [dbt-fusion] Fix Databricks panic when flattening `STRUCT` keys that were not string.
34+
- [dbt-core] Fix YAML selector `selector:` shorthand being silently ignored inside exclude/union, and fix nested `exclude` being dropped from the serialized manifest ([#15140](https://github.com/dbt-labs/dbt-core/issues/15140))
35+
- [dbt-fusion] Show a clear warning when dbt_cloud.yml fails to parse instead of a misleading 'no credentials configured' error
36+
- [dbt-fusion] Fix schema routing for test failures when +schema: null is set in dbt_project.yml with store_failures: true
37+
- [dbt-fusion] Read DuckDB catalog column_index as a 32-bit integer instead of a decimal, fixing a type-mismatch error when collecting DuckDB column metadata
38+
- [dbt-fusion] Fix re.findall Capture objects to be sliceable sequences when pattern has 3+ capture groups
39+
- [dbt-fusion] Disable dbt State for unsupported adapters
40+
- [dbt-fusion] Fix manifest deserialization failing on no configs
41+
- [dbt-fusion] Fix manifest deserialization for fields that are not present
42+
- [dbt-fusion] Include Databricks-specific config attributes (auto_liquid_cluster, databricks_tags) in the semantic extras so dbt state comparison detects changes to them
43+
- [dbt-fusion] Search results are now ranked by relevance: exact name matches appear first, followed by prefix matches, then field-priority matches (name, column, tag, fqn, description), with resource type and modeling layer as tiebreakers.
44+
- [dbt-fusion] (fix adapter/databricks) retry on retryable errors
45+
- [dbt-fusion] Capture and surface failures for unit test schema fetch phase
46+
- [dbt-fusion] `Relation` now renders properly when the `region` is set on `project` or `database`
47+
- [dbt-fusion] Fix `model` storing none values as undefined
48+
- [dbt-fusion] LSP false dbt1089 warning
49+
- [dbt-fusion] Honor model-level `full_refresh: false` config on microbatch models under `dbt build --full-refresh`
50+
- [dbt-fusion] Emit M015 (DepsInstallInfo) only on successful package install, not M016
51+
- [dbt-fusion] Allow target variables to be used in dbt_project.yml
52+
- [dbt-fusion] fix seed configs rejecting valid fields
53+
- [dbt-fusion] sidecar: DATEADD on TIMESTAMPTZ no longer fails the DuckDB binder under --compute sidecar
54+
- [dbt-fusion] Fix dbt State reuse for new data tests without cached results
55+
56+
### Under the Hood
57+
58+
- [dbt-fusion] Remove "models" path segment in computed fqn for manifest parity with Core
59+
- [dbt-fusion] Manifest parity with core fixes for groups
60+
- [dbt-fusion] Snapshot errors and logs now show phase-accurate paths for artifacts
61+
- [internal] Add `cargo ci homebrew render` and `cargo ci homebrew publish` subcommands for rendering and publishing Homebrew formulas.
62+
- [internal] Add reusable `publish-homebrew.yml` workflow that renders the formula and pushes it to a Homebrew tap. Used by the release pipeline and invokable ad-hoc via `workflow_dispatch`.
63+
- [dbt-fusion] Improve ClickHouse init: remove database and make password optional
64+
- [dbt-fusion] Extract package resolution behind PackageResolver trait per package kind, with concurrent resolution per BFS level
65+
- [dbt-fusion] Serialize external and its subfields for manifest parity with Core
66+
- [dbt-fusion] Refactor dbt-deps install to a trait-based PackageInstaller running concurrently via futures::join_all; per-variant impls only do install work and populate a shared InstallOutcome, while span lifecycle, telemetry, and error-path partial-progress stamping live in the trait default
67+
- [fusion] Route view-traversal source extraction through TypeOps so the run-cache uses sdf-frontend bind-context in proprietary builds and the SA sqlparser path otherwise
68+
- [dbt-fusion] Execute hooks on dbt State reuse
69+
- [dbt-index] perf(dbt-lineage): --write-lineage overhead reduced from +20s to +2.4s at 5 843 models: bypass build_lineage_environment via direct LineageRow→CLL edge extraction, fix redundant epoch-0 compaction
70+
- [internal] Add a dedicated dbt Core changelog (CHANGELOG-dbtcore.md) and sync it through copybara so dbt-core publishes its own changelog, starting at 2.0.0-alpha.1, separate from the dbt-fusion changelog
71+
- [dbt-fusion] Bump dbt-docs-v2 UI bundle to add dbt State banner (a0c6c196807e9e6f2b9ea4fa953e99c2d1031657)
72+
- [internal] Unify TypeOps source-extraction methods into a single extract_upstreams; absorb the standalone sdf_frontend dep_analysis::extract_sources_from_str into the same canonical path
73+
- [dbt-fusion] Emit catalog_type on the RunModel telemetry event, resolved from the model's catalog_name via the active write integration in catalogs.yml
74+
- [dbt-fusion] Re-enable and re-wire the dbt-repl integration test suite, disabled during the dbt-main modularization
75+
- [dbt-fusion] Use lag_tolerance in freshness reuse messages
76+
- [internal] Centralize server version lookup: `DistInfoProvider` gains a default `server_version()` method so `env!("CARGO_PKG_VERSION")` is defined in one place.
77+
- [dbt-fusion] Remove quoting field from SourceConfig; adapter-specific quoting defaults are now applied directly during source resolution instead of being propagated through the config struct
78+
- [internal] conformance: add `resolve-repro` subcommand (run_id → S3 artifact path via Datadog) and broaden `fetch-repro` to resolve the Teleport app + bucket per cell (global prod/prod-emea/prod-au, us-multicell, jp1), with --app/--aws-role/--bucket overrides for cells whose account isn't auto-resolved (eu/us2/us3/onprem)
79+
- [dbt-fusion] Bump bigquery driver for WIF auth support
80+
81+
### Contributors
82+
- [@HannanNaeem](https://github.com/HannanNaeem)
83+
- [@agarovat](https://github.com/agarovat)
84+
- [@aiguofer](https://github.com/aiguofer)
85+
- [@ajhlee-dbt](https://github.com/ajhlee-dbt)
86+
- [@akbog](https://github.com/akbog)
87+
- [@b-per](https://github.com/b-per)
88+
- [@dataders](https://github.com/dataders)
89+
- [@dbtagarovat](https://github.com/dbtagarovat)
90+
- [@eakmanrq](https://github.com/eakmanrq)
91+
- [@eddowh](https://github.com/eddowh)
92+
- [@itsnamangoyal](https://github.com/itsnamangoyal)
93+
- [@izeigerman](https://github.com/izeigerman)
94+
- [@j-clemons](https://github.com/j-clemons)
95+
- [@jcserv](https://github.com/jcserv)
96+
- [@kczimm](https://github.com/kczimm)
97+
- [@koletzilla](https://github.com/koletzilla)
98+
- [@lottaquestions](https://github.com/lottaquestions) ([#15140](https://github.com/dbt-labs/dbt-core/issues/15140))
99+
- [@mach-kernel](https://github.com/mach-kernel)
100+
- [@ragesh-g](https://github.com/ragesh-g)
101+
- [@serramatutu](https://github.com/serramatutu)
102+
- [@sriramr98](https://github.com/sriramr98)
103+
- [@tauhid621](https://github.com/tauhid621)
104+
- [@vgapeyev](https://github.com/vgapeyev)
105+
- [@xuliangs](https://github.com/xuliangs)

.changes/unreleased/Features-20260507-194933.yaml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changes/unreleased/Features-20260527-093239.yaml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changes/unreleased/Features-20260528-185026.yaml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changes/unreleased/Features-20260531-143702.yaml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changes/unreleased/Features-20260601-114953.yaml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changes/unreleased/Features-20260601-165415.yaml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changes/unreleased/Features-20260602-125757.yaml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changes/unreleased/Features-20260602-213336.yaml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changes/unreleased/Features-20260602-222844.yaml

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)