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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions