Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
ecc4784
fix(format): render warehouse-SQL header properties with the model di…
mday-io Aug 6, 2026
0a71611
test(format): assert header formatting is idempotent
mday-io Aug 6, 2026
f67fd27
fix(format): render macro properties in the header with the model dia…
mday-io Aug 7, 2026
e6cb87b
fix(format): recurse into nested Pydantic models and preserve macro p…
mday-io Aug 9, 2026
157e38b
fix(format): stop kind's own render policy from transpiling scalar si…
mday-io Aug 9, 2026
ad2d113
docs: fix doubled words and a misspelling in the docs (#5946)
latent-9 Aug 10, 2026
909ee91
TSC change: replace Reid Hooper with Cortland Goffena on the TSC (#5935)
StuffbyYuki Aug 12, 2026
7a09da6
fix: error when invalidating a nonexistent environment (#5878)
NishchayMahor Aug 17, 2026
839c5b2
fix: raise ValueError for an out-of-range epoch in to_datetime (#5951)
eeshsaxena Aug 17, 2026
7bd09ef
Bump fastapi to >=0.136.3 and starlette to >=1.01 for Python >= 3.10 …
hongha912 Aug 18, 2026
86cd3b7
fix(makefile): exclude web install for dbt 1.6 to fix test (#5964)
cmgoffena13 Aug 21, 2026
19cd73a
feat: Add Development Container and Windows specific development pre-…
davem-bis Aug 21, 2026
24bb095
Feat: Support gateway in model defaults (#5962)
josephfinlayson Aug 21, 2026
17d0e45
Chore(deps): Bump actions/upload-artifact from 5 to 7 (#5717)
dependabot[bot] Aug 23, 2026
cef5ec5
Chore(deps): Bump dorny/paths-filter from 3 to 4 (#5733)
dependabot[bot] Aug 23, 2026
9f2ef73
Chore(deps): Bump actions/download-artifact from 4 to 8 (#5734)
dependabot[bot] Aug 23, 2026
43e656b
Chore(deps): Bump actions/cache from 4 to 5 (#5735)
dependabot[bot] Aug 23, 2026
e6ac0e5
Chore(deps): Bump actions/checkout from 5 to 7 (#5605)
dependabot[bot] Aug 23, 2026
9dcddba
Chore(deps): Bump actions/setup-node from 6 to 7 (#5982)
dependabot[bot] Aug 24, 2026
ff0f66f
Chore(deps): Bump actions/setup-python from 6 to 7 (#5981)
dependabot[bot] Aug 24, 2026
d4c262f
Chore(deps): Bump pnpm/action-setup from 4 to 6 (#5983)
dependabot[bot] Aug 24, 2026
43678ed
Chore(deps): Bump actions/cache from 5 to 6 (#5984)
dependabot[bot] Aug 24, 2026
db84671
fix: stabilize disable restatement test at UTC boundary (#5980)
nightcityblade Aug 25, 2026
b4c2d29
Chore(deps): Bump softprops/action-gh-release from 2 to 3 (#5985)
dependabot[bot] Aug 25, 2026
b44b9d3
Perf: add opt-in project-index loading for lint (#5913)
fresioAS Aug 25, 2026
ada45e9
fix(tests): make Athena S3 prefix tests self cleaning to avoid flaky …
Chaitanya-0310 Aug 28, 2026
7a68c2a
fix: removing time machine to fix auth (#5975)
cmgoffena13 Aug 28, 2026
0317c1b
fix(postgres): randomize test username and update grant tests (#5990)
sakshipatil-hue Aug 29, 2026
fc2976a
chore: Resolve starlette deprecation warnings (#5967)
davem-bis Aug 30, 2026
3667124
fix(model): keep quoting when normalizing column_descriptions keys (#…
ReguiguiMohamed Aug 31, 2026
c99553f
chore(ci): add dbt 1.11 to the test matrix (#5999)
ARAVIND281 Aug 31, 2026
cf0b176
fix(web): adjusting paths to fix windows (#5998)
cmgoffena13 Aug 31, 2026
4c54937
chore(docs): updating engine lists (#6001)
cmgoffena13 Aug 31, 2026
240471c
fix(clickhouse): register table comments via command instead of inlin…
cookieark7 Sep 1, 2026
b2fa0a6
fix: open files read-only during format --check (#5961)
avakili-voleon Sep 1, 2026
4b20362
chore(docs): dbt audits are supported (#5995)
cmgoffena13 Sep 1, 2026
cc30650
fix(bigquery): ci test now partitions correctly (#5989)
cmgoffena13 Sep 1, 2026
869248c
feature: adding smarter unit test execution (#5966)
cmgoffena13 Sep 1, 2026
5a68ce6
fix: write file cache entries atomically to avoid read races (#6011)
7487 Sep 5, 2026
b1e36b9
ci: add dbt 1.12 to test matrix (#6028)
ravi-p-k-1 Sep 5, 2026
0c89897
fix: Resolve test collisions when capsys used (#6013)
davem-bis Sep 7, 2026
c0ae2db
fix: Simplify Java Installation in DevContainer (#6012)
davem-bis Sep 9, 2026
847de8c
fix(state_sync): skip interval removal when there is nothing to remov…
avakili-voleon Sep 9, 2026
11ac31a
fix(test): create ModelTests before concurrent pool workers (#6040)
devtechedge Sep 10, 2026
8d0b4de
Fix: stale IntervalUnit docstring to match enum members (#5957)
maupatel Sep 10, 2026
68f5b95
fix(test): support out-of-nanosecond-range timestamps in unit test co…
mokashang Sep 11, 2026
7e4f83e
ci: turn on and fix `ui-style` and `test-vscode` stages (#6054)
tripleaceme Sep 12, 2026
80731de
fix(web): resolve model paths against their own project root (#6052)
tripleaceme Sep 12, 2026
ee57c61
fix(ci): minio image switch to chainguard (#6055)
cmgoffena13 Sep 13, 2026
2c30f83
Fix/snowflake iceberg clone dialect error (#5722)
sineline Sep 14, 2026
d3e5f0b
chore(lsp): limiting prettier formatting scope (#6056)
cmgoffena13 Sep 15, 2026
15c6030
feature(ci): filter dbt tests to same as python tests (#6005)
cmgoffena13 Sep 15, 2026
17fb177
Chore(deps-dev): Bump yaml from 2.8.0 to 2.9.0 (#5186)
dependabot[bot] Sep 15, 2026
c4524e5
Minor fix for Windows web UI interface (#4752)
codetalker-ai Sep 15, 2026
e30fe61
chore(md): noting pre-commit command (#6050)
cmgoffena13 Sep 15, 2026
18074a8
fix(tests): prevent schema collisions between integration test params…
cookieark7 Sep 16, 2026
ad2377e
feat(test): add `--local` to run tests without loading state (#6060)
tripleaceme Sep 16, 2026
76225c6
feat(test): treat model file paths as test selectors (#6061)
tripleaceme Sep 20, 2026
a6ba67d
fix(vscode): scope render tab assertions to the editor tab (#6076)
tripleaceme Sep 22, 2026
df6e3a5
fix(vscode): stop the LSP restarting on unrelated configuration chang…
tripleaceme Sep 24, 2026
9bd35b7
feat(cli): report state backend versions on rollback and info (#6088)
tripleaceme Sep 24, 2026
1b93a9a
Merge branch 'main' into claude/changes-y8l3ib
mday-io Aug 10, 2026
11d2e62
fix(format): render header list properties as dialect-native arrays
mday-io Sep 24, 2026
f7de34b
test(format): cover `sqlmesh format` on BigQuery header lists
mday-io Sep 24, 2026
1e0c859
Chore(deps): Bump @swc/core-linux-x64-gnu from 1.13.2 to 1.16.2 (#6080)
dependabot[bot] Sep 24, 2026
68da7f4
fix(format): keep boolean literals stable in dialect-rendered header …
mday-io Sep 25, 2026
1e8dc95
fix(mssql): skip dbo on drop schema (#6026)
cmgoffena13 Sep 25, 2026
5f1911d
fix(ci): fixing 1.5 dbt tests (#6073)
cmgoffena13 Sep 25, 2026
4b351f9
Merge branch 'main' into claude/changes-y8l3ib
mday-io Sep 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"version": "2.5.9",
"resolved": "ghcr.io/devcontainers/features/common-utils@sha256:cb0c4d3c276f157eed17935747e364178d75fee17f55c4e129966f64633deb3a",
"integrity": "sha256:cb0c4d3c276f157eed17935747e364178d75fee17f55c4e129966f64633deb3a"
},
"ghcr.io/devcontainers/features/docker-in-docker:4": {
"version": "4.0.0",
"resolved": "ghcr.io/devcontainers/features/docker-in-docker@sha256:4fa87399214366e320d489991769c4f3f461e1ffe461f54eea78a41b34945bb5",
"integrity": "sha256:4fa87399214366e320d489991769c4f3f461e1ffe461f54eea78a41b34945bb5"
},
"ghcr.io/devcontainers/features/python:1": {
"version": "1.8.0",
"resolved": "ghcr.io/devcontainers/features/python@sha256:fbcad6955caeecc5ad3f7886baf652e25cba5225a6c4c2287c536de2e5607511",
"integrity": "sha256:fbcad6955caeecc5ad3f7886baf652e25cba5225a6c4c2287c536de2e5607511"
}
}
}
18 changes: 18 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "SQLMesh Python Dev",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04",
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {},
"ghcr.io/devcontainers/features/python:1": {
"version": "3.12"
},
"ghcr.io/devcontainers/features/docker-in-docker:4": {}
},
"postCreateCommand": "bash .devcontainer/post-create-command.sh",
"customizations": {
"vscode": {
"extensions": ["ms-python.python", "ms-python.vscode-pylance"]
}
},
"remoteUser": "vscode"
}
27 changes: 27 additions & 0 deletions .devcontainer/post-create-command.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/bash

# This script is intended to be run by an Ubuntu development container

# Exit immediately if any command returns a non-zero code
set -e

# Install OS-level dependencies

## Ensure that the Microsoft package repository is available as it is required for msodbcsql18. Note that the repository
## may have already been added by a development container feature (e.g. docker-in-docker or java).
if apt-cache policy | grep -q 'packages.microsoft.com'; then
echo "Microsoft package repository already present"
else
echo "Microsoft package repository not present, it will be added."

# ref: https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server
curl -sSL -O https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
fi

ALL_DEPENDENCIES="libpq-dev netcat-traditional unixodbc-dev default-jdk msodbcsql18"
sudo apt-get clean && sudo apt-get -y update && sudo ACCEPT_EULA='Y' apt-get -y install $ALL_DEPENDENCIES

# Install Python dependencies
make install-dev
121 changes: 80 additions & 41 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ jobs:
outputs:
python: ${{ steps.filter.outputs.python }}
client: ${{ steps.filter.outputs.client }}
vscode: ${{ steps.filter.outputs.vscode }}
ci: ${{ steps.filter.outputs.ci }}
steps:
- uses: actions/checkout@v5
- uses: dorny/paths-filter@v3
- uses: actions/checkout@v7
- uses: dorny/paths-filter@v4
id: filter
with:
filters: |
Expand All @@ -34,6 +35,8 @@ jobs:
- 'pyproject.toml'
client:
- 'web/client/**'
vscode:
- 'vscode/**'
ci:
- '.github/**'
- 'Makefile'
Expand All @@ -48,9 +51,9 @@ jobs:
env:
UV: '1'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: '3.10'
- name: Install uv
Expand Down Expand Up @@ -79,11 +82,11 @@ jobs:
PYTEST_XDIST_AUTO_NUM_WORKERS: 2
UV: '1'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
Expand Down Expand Up @@ -115,7 +118,7 @@ jobs:
source .venv/bin/activate
make cicd-test
- name: Upload test results
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
name: test-results-style-cicd-${{ matrix.python-version }}
Expand All @@ -131,11 +134,11 @@ jobs:
steps:
- name: Enable symlinks in git config
run: git config --global core.symlinks true
- uses: actions/checkout@v5
- uses: actions/checkout@v7
- name: Install make
run: choco install make which -y
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: '3.12'
- name: Install SQLMesh dev dependencies
Expand All @@ -151,7 +154,7 @@ jobs:
python --version
make fast-test
- name: Upload test results
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
name: test-results-windows
Expand All @@ -168,11 +171,11 @@ jobs:
SQLMESH__DISABLE_ANONYMIZED_ANALYTICS: '1'
UV: '1'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: '3.10'
- name: Install uv
Expand All @@ -188,22 +191,23 @@ jobs:

ui-style:
needs: [changes]
if: false
# needs.changes.outputs.client == 'true' || needs.changes.outputs.ci ==
# 'true' || github.ref == 'refs/heads/main'
if:
needs.changes.outputs.client == 'true' || needs.changes.outputs.vscode ==
'true' || needs.changes.outputs.ci == 'true' || github.ref ==
'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: '22'
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
with:
version: latest
- name: Get pnpm store directory
id: pnpm-cache
run: echo "store=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
- uses: actions/cache@v6
with:
path: ${{ steps.pnpm-cache.outputs.store }}
key: pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
Expand All @@ -222,7 +226,7 @@ jobs:
container:
image: mcr.microsoft.com/playwright:v1.54.1-jammy
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v7
- name: Install pnpm via corepack
run: |
npm install --global corepack@latest
Expand Down Expand Up @@ -252,15 +256,25 @@ jobs:
fail-fast: false
matrix:
engine:
[duckdb, postgres, mysql, mssql, trino, spark, clickhouse, risingwave, starrocks]
[
duckdb,
postgres,
mysql,
mssql,
trino,
spark,
clickhouse,
risingwave,
starrocks,
]
env:
PYTEST_XDIST_AUTO_NUM_WORKERS: 2
SQLMESH__DISABLE_ANONYMIZED_ANALYTICS: '1'
UV: '1'
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: '3.12'
- name: Install uv
Expand All @@ -277,7 +291,7 @@ jobs:
source .venv/bin/activate
make ${{ matrix.engine }}-test
- name: Upload test results
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
name: test-results-docker-${{ matrix.engine }}
Expand Down Expand Up @@ -342,9 +356,9 @@ jobs:
FABRIC_TENANT_ID: ${{ secrets.FABRIC_TENANT_ID }}
FABRIC_WORKSPACE_ID: ${{ secrets.FABRIC_WORKSPACE_ID }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: '3.12'
- name: Install uv
Expand Down Expand Up @@ -385,24 +399,27 @@ jobs:
./.github/scripts/manage-test-db.sh "${{ matrix.engine }}"
"$TEST_DB_NAME" down
- name: Upload test results
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
name: test-results-cloud-${{ matrix.engine }}
path: test-results/
retention-days: 7

test-vscode:
needs: changes
if:
needs.changes.outputs.vscode == 'true' || needs.changes.outputs.ci ==
'true' || github.ref == 'refs/heads/main'
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
runs-on: ubuntu-latest
if: false
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: '22'
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
with:
version: latest
- name: Install dependencies
Expand All @@ -415,17 +432,17 @@ jobs:
# As at 2026-01-12 this job flakes 100% of the time. It needs investigation
if: false
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: '22'
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@v6
with:
version: latest
- name: Install dependencies
run: pnpm install
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: '3.12'
- name: Install uv
Expand All @@ -446,22 +463,38 @@ jobs:
run: |
source ../../.venv/bin/activate
pnpm run test:e2e
- uses: actions/upload-artifact@v5
- uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
name: playwright-report
path: vscode/extension/playwright-report/
retention-days: 30
test-dbt-versions:
needs: changes
if:
needs.changes.outputs.python == 'true' || needs.changes.outputs.ci ==
'true' || github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
dbt-version: ['1.3', '1.4', '1.5', '1.6', '1.7', '1.8', '1.9', '1.10']
dbt-version:
[
'1.3',
'1.4',
'1.5',
'1.6',
'1.7',
'1.8',
'1.9',
'1.10',
'1.11',
'1.12',
]
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: '3.10'
- name: Install uv
Expand Down Expand Up @@ -514,13 +547,19 @@ jobs:
echo "DBT version is ${{ matrix.dbt-version }} (>= 1.6.0), keeping semantic_models and metrics sections"
fi

make dbt-fast-test
# dbt 1.6 installs without web/lsp (pydantic conflict); skip collecting those tests
if [[ "${{ matrix.dbt-version }}" == "1.6" ]]; then
pytest -n auto -m "dbt and fast" --reruns 3 --ignore=tests/lsp --ignore=tests/web
else
make dbt-fast-test
fi
- name: Test SQLMesh info in sushi_dbt
working-directory: ./examples/sushi_dbt
run: |
source ../../.venv/bin/activate
sed -i 's/target: in_memory/target: postgres/g' profiles.yml
if [[ $(echo -e "${{ matrix.dbt-version }}\n1.5.0" | sort -V | head -n1) == "${{ matrix.dbt-version }}" ]] && [[ "${{ matrix.dbt-version }}" != "1.5.0" ]]; then
if [[ "${{ matrix.dbt-version }}" == "1.3" ]] || \
[[ "${{ matrix.dbt-version }}" == "1.4" ]]; then
echo "DBT version is ${{ matrix.dbt-version }} (< 1.5.0), removing version parameters..."
sed -i -e 's/, version=1) }}/) }}/g' -e 's/, v=1) }}/) }}/g' models/top_waiters.sql
else
Expand Down
Loading
Loading