Skip to content

CI Upgrade - Adding in CI stage to run tests for DBT v1.12 #5993

Description

@cmgoffena13

Add dbt 1.12 to CI matrix (AI Notes)

Background

CI already tests dbt versions 1.3–1.10 via the test-dbt-versions job in .github/workflows/pr.yaml. dbt-core 1.12 is released; SQLMesh should add it to the matrix.

Steps

  1. Add '1.12' to the CI matrix in .github/workflows/pr.yaml: dbt-version: ['1.3', '1.4', '1.5', '1.6', '1.7', '1.8', '1.9', '1.10', '1.11', '1.12']
  2. Verify locally before opening PR:
uv venv .venv && source .venv/bin/activate
UV=1 make install-dev-dbt-1.12
make dbt-fast-test
cd examples/sushi_dbt && sqlmesh info --skip-connection
  1. Fix Makefile if install fails (install-dev-dbt-% in Makefile):
  • 1.12 uses the default path (pins all dbt-* to ~=1.12.0)
  • If dependency resolution fails, may need special handling like 1.10 (some adapters unpinned: dbt-duckdb, dbt-bigquery, etc.)
  1. Fix tests if needed:
  • Version-gated tests in tests/dbt/ using DBT_VERSION from sqlmesh/dbt/util.py
  • Feature gates in sqlmesh/dbt/ (e.g. DBT_VERSION >= (1, 9, 0) for event_time)
  1. No CI script changes expected for 1.12:
  • >= 1.6 → keeps semantic_models/metrics in test fixtures
  • >= 1.5 → keeps version params in sushi_dbt example
  • Not 1.6 → runs full make dbt-fast-test (not the stripped pytest path)

Gotchas

  • Dependency conflicts: 1.10 needed special Makefile handling (unpin some adapters). 1.12 may need similar.
  • numpy: Makefile applies numpy<2 for dbt 1.3–1.5 and 1.10 only. If 1.12 install pulls numpy 2 and breaks, extend the awk condition.
  • pydantic: Only 1.6 skips web/lsp install. 1.12 should install full dev deps.
  • dbt-duckdb pin in pyproject.toml: Base pyproject.toml has dbt-duckdb>=1.7.1 — install-dev-dbt-1.12 temporarily rewrites this during install, then restores.
  • dbt-snowflake!=1.10.1: Base pyproject excludes a bad snowflake release; verify 1.12 snowflake adapter resolves cleanly.
  • New breaking changes: 1.12 may introduce manifest/adapter API changes not present in 1.11 — watch for new test failures beyond dependency resolution.

Acceptance criteria

  • '1.12' in test-dbt-versions matrix
  • UV=1 make install-dev-dbt-1.12 succeeds locally
  • make dbt-fast-test passes
  • sqlmesh info --skip-connection works in examples/sushi_dbt
  • CI green on PR to upstream

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions