Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
2036e6b
docs: add sqlbuild.com landing page
kvlonge Sep 25, 2026
8104d42
docs: remove internal ticket references
kvlonge Sep 25, 2026
19658ec
docs: remove the legacy docs folder
kvlonge Sep 25, 2026
12a378a
docs: explain configurable replay windows on the landing page
kvlonge Sep 25, 2026
322cfa1
docs: tighten landing page feature cards
kvlonge Sep 25, 2026
d14dfbb
docs: use the real SQLBuild logo on the landing page
kvlonge Sep 25, 2026
fb3aa3d
docs: add a Starlight docs site pilot
kvlonge Sep 25, 2026
5bff35b
docs: centre the docs layout with our own page frame
kvlonge Sep 25, 2026
6fd212b
docs: calmer page header, table and contents styling
kvlonge Sep 25, 2026
ddc5b81
docs: docs header label, quieter pagination and icon cards
kvlonge Sep 25, 2026
76a9b2b
docs: port every page from the Mintlify docs
kvlonge Sep 25, 2026
d896834
docs: Mintlify-style sidebar, callouts, links and code blocks
kvlonge Sep 25, 2026
66f4f45
docs: scroll wide tables on small screens
kvlonge Sep 25, 2026
58c5c76
docs: serve the homepage and docs as one site at /docs, with a larger…
kvlonge Sep 25, 2026
e7fe936
docs: show Docs as a small badge next to the logo
kvlonge Sep 25, 2026
9763ae3
docs: add a janitor step to the landing page
kvlonge Sep 25, 2026
b15738e
docs: rewrite the docs introduction around the landing page message
kvlonge Sep 25, 2026
8abb833
docs: remove virtual environments from the docs
kvlonge Sep 25, 2026
aa9d030
docs: colour the janitor output like the CLI
kvlonge Sep 25, 2026
2888f43
docs: keep the projects behind the landing page output
kvlonge Sep 25, 2026
63ec18e
docs: animate a model move and rename in the landing page hero
kvlonge Sep 25, 2026
ca58209
docs: fix the hero terminal font and match step 07 colours to the CLI
kvlonge Sep 25, 2026
5ce1099
ci: build the website and deploy it to GitHub Pages
kvlonge Sep 25, 2026
00ed386
ci: skip Python checks and test suites for website-only changes
kvlonge Sep 25, 2026
7173b03
docs: describe migration promotion as staged on the landing page
kvlonge Sep 25, 2026
86147e4
docs: show real semantic compile errors in landing page step 01
kvlonge Sep 25, 2026
7adac06
chore: merge main into feat/website
kvlonge Sep 25, 2026
be64915
docs: clearer landing page navigation
kvlonge Sep 25, 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
38 changes: 29 additions & 9 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
name: Classify verification scope
runs-on: ubuntu-24.04
outputs:
checks: ${{ steps.scope.outputs.checks }}
duckdb: ${{ steps.scope.outputs.duckdb }}
postgres: ${{ steps.scope.outputs.postgres }}
performance: ${{ steps.scope.outputs.performance }}
Expand All @@ -39,11 +40,12 @@ jobs:
echo "performance=$3"
echo "format_performance=$4"
echo "rules_performance=$5"
echo "checks=$6"
} >> "${GITHUB_OUTPUT}"
}

if [[ "${EVENT_NAME}" != "pull_request" ]]; then
write_scope true true true true true
write_scope true true true true true true
exit 0
fi

Expand All @@ -54,8 +56,15 @@ jobs:
rules_performance=false
broad=false
changed=false
# The website builds and deploys in its own workflow, so a change that only touches it
# skips the Python checks and test suites.
website_only=true
while IFS= read -r -d '' path; do
changed=true
case "${path}" in
website/*|.github/workflows/website.yml) ;;
*) website_only=false ;;
esac
case "${path}" in
crates/*|Cargo.toml|Cargo.lock|pyproject.toml|uv.lock)
broad=true
Expand Down Expand Up @@ -94,7 +103,7 @@ jobs:
format_performance=true
rules_performance=true
;;
.github/*|docs/*|*.md|.gitignore|LICENSE)
.github/*|docs/*|website/*|*.md|.gitignore|LICENSE)
;;
*)
broad=true
Expand All @@ -103,10 +112,15 @@ jobs:
done < <(git diff --name-only -z "${BASE_SHA}" "${HEAD_SHA}")

if [[ "${changed}" != "true" ]]; then
write_scope true true true true true
write_scope true true true true true true
exit 0
fi

checks=true
if [[ "${website_only}" == "true" ]]; then
checks=false
fi

if [[ "${broad}" == "true" ]]; then
duckdb=true
postgres=true
Expand All @@ -117,7 +131,8 @@ jobs:
"${postgres}" \
"${performance}" \
"${format_performance}" \
"${rules_performance}"
"${rules_performance}" \
"${checks}"

lockfile:
name: Lockfile consistency
Expand All @@ -137,7 +152,8 @@ jobs:

checks:
name: Static checks and unit + integration tests
needs: lockfile
needs: [changes, lockfile]
if: needs.changes.outputs.checks == 'true'
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
Expand Down Expand Up @@ -542,6 +558,7 @@ jobs:
- name: Confirm all required verification jobs passed
env:
CHANGES_RESULT: ${{ needs.changes.result }}
CHECKS_SELECTED: ${{ needs.changes.outputs.checks }}
LOCKFILE_RESULT: ${{ needs.lockfile.result }}
CHECKS_RESULT: ${{ needs.checks.result }}
E2E_SHARDS_RESULT: ${{ needs.e2e_shards.result }}
Expand All @@ -553,10 +570,13 @@ jobs:
RULES_PERFORMANCE_RESULT: ${{ needs.rules_performance.result }}
POSTGRES_RESULT: ${{ needs.postgres.result }}
run: |
if [[ "${CHANGES_RESULT}" != "success" || \
"${LOCKFILE_RESULT}" != "success" || \
"${CHECKS_RESULT}" != "success" ]]; then
echo "Required classification, lockfile, or static checks did not pass" >&2
if [[ "${CHANGES_RESULT}" != "success" || "${LOCKFILE_RESULT}" != "success" ]]; then
echo "Required classification or lockfile checks did not pass" >&2
exit 1
fi
if [[ "${CHECKS_RESULT}" != "success" ]] && \
! [[ "${CHECKS_SELECTED}" == "false" && "${CHECKS_RESULT}" == "skipped" ]]; then
echo "Required static checks did not pass: ${CHECKS_RESULT}" >&2
exit 1
fi
for result in \
Expand Down
67 changes: 67 additions & 0 deletions .github/workflows/website.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Website

on:
push:
branches: [main]
paths:
- "website/**"
- ".github/workflows/website.yml"
pull_request:
paths:
- "website/**"
- ".github/workflows/website.yml"
workflow_dispatch:

permissions:
contents: read

concurrency:
group: website-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
name: Build sqlbuild.com
runs-on: ubuntu-24.04
defaults:
run:
working-directory: website
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: website/package-lock.json

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Check links
run: python3 scripts/check_links.py dist

- name: Upload site
if: github.event_name != 'pull_request'
uses: actions/upload-pages-artifact@v3
with:
path: website/dist

deploy:
name: Deploy to GitHub Pages
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
needs: build
runs-on: ubuntu-24.04
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy
id: deployment
uses: actions/deploy-pages@v4
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -1730,11 +1730,11 @@

### Features

* **cli:** adopt balanced color hierarchy for human output (CHI-45) ([eac4ddc](https://github.com/chio-labs/sqlbuild/commit/eac4ddc9842a670038a1f57c9821fb6ab92d8fe4))
* **cli:** adopt balanced color hierarchy for human output ([eac4ddc](https://github.com/chio-labs/sqlbuild/commit/eac4ddc9842a670038a1f57c9821fb6ab92d8fe4))
* **cli:** clarify virtual state and expand previews ([3b94316](https://github.com/chio-labs/sqlbuild/commit/3b943167e06784f8cc174b92ef71ef489b2f67ee))
* **cli:** dim kind columns, accent change actions, fix spinner wrap and error-label padding ([b17b1ef](https://github.com/chio-labs/sqlbuild/commit/b17b1efc31f98fa77c0596707a282373dff95025))
* **cli:** refine hierarchy and add output previews ([7607c4f](https://github.com/chio-labs/sqlbuild/commit/7607c4f08636a00d525fdc406a7b65e4939d8804))
* **cli:** structural output hierarchy across SQLBuild CLI (CHI-45) ([7c46d43](https://github.com/chio-labs/sqlbuild/commit/7c46d43174f1e61238e919a4201e37e699b63d80))
* **cli:** structural output hierarchy across SQLBuild CLI ([7c46d43](https://github.com/chio-labs/sqlbuild/commit/7c46d43174f1e61238e919a4201e37e699b63d80))
* **cli:** structure source freshness output ([c0e42f4](https://github.com/chio-labs/sqlbuild/commit/c0e42f4ef110995d985b9b32e559ae154b657ae7))
* **cli:** structured build surface - phase lines, status cells, dim timings ([e321e11](https://github.com/chio-labs/sqlbuild/commit/e321e11232e414fc9d954c61c23cafd59da5a1d2))
* **cli:** structured clone completion and connection phase lines ([e5a154d](https://github.com/chio-labs/sqlbuild/commit/e5a154d711125854449c8e309eaee285bbb7e7a5))
Expand Down
10 changes: 2 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ All state is persisted as append-only tables in the warehouse alongside your dat
- **Cursor-based incremental processing.** Automatic gap detection and resume, with microbatch mode for large ranges. No external checkpoint to maintain.
- **Ingestion and Python nodes.** Load external data with Python `@loader` functions, and run `@task`, `@asset`, and `@check` nodes as first-class members of the same DAG as your SQL models.

See the [documentation](https://docs.sqlbuild.com) for the full feature set, including providers, lifecycle hooks, Python macros, UDFs, custom materializations, data diffs, zero-copy cloning, and virtual environments. This repository also includes focused guides to [target execution limits](docs/execution-limits.md) and [model and raw-query diffs](docs/query-diffs.md). To coordinate dbt and SQLBuild projects, see the [dbt compatibility guide](https://docs.sqlbuild.com/concepts/dbt-compatibility/overview).
See the [documentation](https://docs.sqlbuild.com) for the full feature set, including providers, lifecycle hooks, Python macros, UDFs, custom materializations, data diffs, zero-copy cloning, and virtual environments. To coordinate dbt and SQLBuild projects, see the [dbt compatibility guide](https://docs.sqlbuild.com/concepts/dbt-compatibility/overview).

## Quick start

Expand Down Expand Up @@ -198,7 +198,7 @@ Family selectors automatically include new built-in rules on upgrade. Exact-code
their current membership and must be updated manually. In particular, selecting `SQBRSQL` enables
`SQBRSQL040` (plain JOIN predicates) and `SQBRSQL041` (terminal CTE naming); existing projects may
need to extract computed join keys into input CTEs and rename their last CTE to `final`.
See the [SQL rule conventions](docs/native-lint-rule-matrix.md#join-keys-and-final-cte-names)
See the [SQL rule conventions](https://sqlbuild.com/docs/concepts/rules/configuration-and-selection/#join-keys-and-final-cte-names)
for their exact scope and relationship to `SQBRSQL035`.

`sqb format` reports a file-specific `format-unsafe` fault whenever a SQL body cannot be safely
Expand Down Expand Up @@ -308,12 +308,6 @@ digest, not SQL text. Executed SQL artifacts are stored separately under the sen

Full documentation is available at [docs.sqlbuild.com](https://docs.sqlbuild.com).

Runtime operator and extension contracts:

- [Execution observability and local troubleshooting](docs/execution-observability.md)
- [SQLite and PostgreSQL execution history](docs/execution-history.md)
- [Typed lifecycle and command-output sinks](docs/sinks.md)

## Contributing

We welcome contributions. Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
Expand Down
156 changes: 0 additions & 156 deletions docs/compiler-cache.md

This file was deleted.

Loading
Loading