Breaking changes
- When using
LoadMode.DBT_LS, Cosmos will now attempt to use thedbtRunneras opposed to subprocess to rundbt ls.
While this represents significant performance improvements (half the vCPU usage and some memory consumption improvement), this may not work in
scenarios where users had multiple Python virtual environments to manage different versions of dbt and its adaptors. In those cases,
please, setRenderConfig(invocation_mode=InvocationMode.SUBPROCESS)to have the same behaviour Cosmos had in previous versions.
Additional informationhere <https://astronomer.github.io/astronomer-cosmos/configuration/parsing-methods.html#dbt-ls>_ andhere <https://astronomer.github.io/astronomer-cosmos/configuration/render-config.html#how-to-run-dbt-ls-invocation-mode>_.
Features
- Use
dbtRunnerin the DAG Processor when usingLoadMode.DBT_LSifdbt-coreis available by @tatiana in #1484. Additional informationhere <https://astronomer.github.io/astronomer-cosmos/configuration/parsing-methods.html#dbt-ls>_. - Allow users to opt-out of
dbtRunnerduring DAG parsing withInvocationMode.SUBPROCESSby @tatiana in #1495. Check out thedocumentation <https://astronomer.github.io/astronomer-cosmos/configuration/render-config.html#how-to-run-dbt-ls-invocation-mode>_. - Add structure to support multiple db for async operator execution by @pankajastro in #1483
- Support overriding the
profile_configper dbt node or folder using config by @tatiana in #1492. More informationhere <https://astronomer.github.io/astronomer-cosmos/profiles/#profile-customise-per-node>_. - Create and run accurate SQL statements when using
ExecutionMode.AIRFLOW_ASYNCby @pankajkoti, @tatiana and @pankajastro in #1474 - Add AWS ECS task run execution mode by @CarlosGitto and @aoelvp94 in #1507
- Add support for running
DbtSourceOperatorindividually by @victormacaubas in #1510 - Add setup task for async executions by @pankajastro in #1518
- Add teardown task for async executions by @pankajastro in #1529
- Add
ProjectConfig.install_dbt_deps& change operatorinstall_deps=Trueas default by @tatiana in #1521 - Extend Virtualenv operator and mock dbt adapters for setup & teardown tasks in
ExecutionMode.AIRFLOW_ASYNCby @pankajkoti, @tatiana and @pankajastro in #1544
Bug Fixes
- Fix select complex intersection of three tag-based graph selectors by @tatiana in #1466
- Fix custom selector behaviour when the model name contains periods by @yakovlevvs and @60098727 in #1499
- Filter dbt and non-dbt kwargs correctly for async operator by @pankajastro in #1526
Enhancement
- Fix OpenLineage deprecation warning by @CorsettiS in #1449
- Move
DbtRunnerrelated functions intodbt/runner.pymodule by @tatiana in #1480 - Add
on_warning_callbacktoDbtSourceKubernetesOperatorand refactor previous operators by @LuigiCerone in #1501 - Gracefully error when users set incompatible
RenderConfig.dbt_depsandoperator_argsinstall_depsby @tatiana in #1505 - Store compiled SQL as template field for
ExecutionMode.AIRFLOW_ASYNCby @pankajkoti in #1534
Docs
- Improve
RenderConfigarguments documentation by @tatiana in #1514 - Improve callback documentation by @tatiana in #1516
- Improve partial parsing docs by @tatiana in #1520
- Fix typo in selecting & excluding docs by @pankajastro in #1523
- Document
async_py_requirementsadded inExecutionConfigforExecutionMode.AIRFLOW_ASYNCby @pankajkoti in #1545
Others
- Ignore dbt package tests when running Cosmos tests by @tatiana in #1502
- Refactor to consolidate async dbt adapter code by @pankajkoti in #1509
- Log elapsed time for sql file(s) upload/download by @pankajastro in #1536
- Remove the fallback operator for async task by @pankajastro in #1538
- GitHub Actions Dependabot: #1487
- Pre-commit updates: #1473, #1493, #1503, #1531