:sparkles: Features
* Add ability to override the engine adapter of a unit test (2553) georgesittas
* Provide helpful error for invalid model defaults keys (2564) treysp
* Add virtual_properties and rename table_properties to physical_properties (2561) Kayrnt
* Allow macro functions to be used as model meta properties (2574) georgesittas
* Allow user-supplied queries to generate unit test data (2579) georgesittas
:beetle: Bug fixes
* Track visited in cll to avoid infinite loop (2568) mykalmax
* Reset active nodes when changing model in lineage + show source on hover (2569) mykalmax
* Support missing parents when constructing the deployability index (2570) izeigerman
* Change databricks to replace where (2571) eakmanrq
* Prepend model name to CTE and derived table node names (2578) vchan
* Monospace `plan_id` (2583) plaflamme
* Limit the file name length for the cache entry in the dbt loader (2582) izeigerman
* Support macros when rendering dbt variables (2581) izeigerman
* Use spark 3.5.0 in the Airflow test image izeigerman
* Properly format regex (2586) tobymao
* Remove accidental pyspark dependency added in ruff refactor (2587) georgesittas
* Execution_time was not getting passed in from plan (2573) tobymao
* Remove write race conditions in cache operations (2592) eakmanrq
:broom: Chore
* Additional tests for lineage with derived tables (2545) vchan
* Add test for snowflake _df_to_source_queries USE SCHEMA calls (2562) crericha
* Update API documentation SQLMesh logo (2563) georgesittas
* Add documentation for new duckdb catalog options (2566) eakmanrq
* Bump sqlglot to v23.14.0 (2575) georgesittas
* Only warn about table_properties deprication when loading a model from the local file system izeigerman
* Upgrade and unpin deps to support python 3.12 (2572) tobymao
* Upgrade dev spark to fix integration tests (2580) tobymao
* Always use the view_properties argument when creating a view (2577) izeigerman
* Replace autoflake+black+isort with ruff (2584) georgesittas
* Fix build, ensure all dfs have unified date time types tobymao
* Format output tobymao
* Fix the Airflow tests by switching from table to view for raw.demographics izeigerman
* Fix tests izeigerman
* Move Docker related files for UI dev into web directory (2590) vchan
* Update sqlglot (2591) tobymao
* Bump tobymao
:alien: Other
* Feat: Full support for Duckdb attach options (2565) wseaton