You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Raise minimum supported dbt-core version to 1.8 (#2939)
## Summary
dbt-core 1.5, 1.6, and 1.7 have reached End of Life per the dbt Labs
support policy, and 1.5 specifically has an unresolvable jinja2
dependency conflict with modern Airflow (>=3.0) under a strict resolver.
This drops them from the supported/tested range.
- `pyproject.toml`: hatch dbt test matrix now starts at 1.8.
- `.github/workflows/test.yml`: removed the dedicated dbt-1.5.4 job in
favor of pinning it to 1.8 (the new floor); dropped 1.6/1.7 from the
DBT-Async matrix.
- `scripts/test/integration-dbt-1-5-4.sh` → `integration-dbt-1-8.sh`,
repinned to the 1.8 adapter series.
- `scripts/test/integration-dbt-async.sh`: dropped the 1.6-only
pydantic/google-cloud-bigquery workarounds.
- `docs/policy/compatibility-policy.rst`: bumped the minimum/supported
dbt Core versions in `Currently supported versions`, and dropped the
separate EOL callout sentence for 1.5-1.7 so the section reads as what's
supported rather than what was dropped.
- `execution-modes-local-conflicts.rst`: updated conflict table to
match.
- `watcher-execution-mode.rst`: updated the minimum-dbt-version
statement to match, and kept the "older versions are EOL, use
`ExecutionMode.LOCAL` instead" note, updated to reference dbt-core 1.8
instead of 1.5.
Why Dbt-core 1.8?
dbt-core 1.8 and Airflow 2.9 were released around the same time.
- dbt-core 1.8.0: released 2024-05-09
- apache-airflow 2.9.0: released 2024-04-08
Success CI:
https://github.com/astronomer/astronomer-cosmos/actions/runs/30535323883/job/90847155049?pr=2939.
the failed CI is using old configuration.
Fixes#2902.
## Test plan
- [x] CI passes on the updated dbt test matrix (1.8+)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
DBT_PROJECT_NAME: "altered_jaffle_shop"# The syntax of jaffle_shop is not supported in dbt 1.5.4, only in dbt >= 1.10
413
+
DBT_PROJECT_NAME: "altered_jaffle_shop"# The syntax of jaffle_shop is not supported in dbt 1.8, only in dbt >= 1.10
414
414
TEST_SINGLE_DAG: "basic_cosmos_task_group.py"# There are circumstances when we only need to run a single DAG, but we were parsing all the DAGs. This change is to avoid parsing all the DAGs.
DBT_PROJECT_NAME: "altered_jaffle_shop"# The syntax of jaffle_shop is not supported in dbt 1.5.4, only in dbt >= 1.10
483
+
DBT_PROJECT_NAME: "altered_jaffle_shop"# The syntax of jaffle_shop is not supported in dbt < 1.10
484
484
AIRFLOW__COSMOS__ENABLE_DATASET_ALIAS: 0# The altered_jaffle_shop project has non-ASCII characters which raise an exception in earlier versions of Airflow, as documented in https://github.com/astronomer/astronomer-cosmos/issues/1802
Copy file name to clipboardExpand all lines: CHANGELOG.rst
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,10 @@ Changelog
4
4
Unreleased
5
5
----------
6
6
7
+
Breaking Changes
8
+
9
+
* Raised the minimum supported dbt Core version to 1.8. dbt Core 1.5, 1.6, and 1.7 have reached End of Life per the `dbt Labs support policy <https://docs.getdbt.com/docs/dbt-versions/core>`_ and are no longer tested or supported; see the :doc:`compatibility policy </policy/compatibility-policy>` for the current supported range. See #2902.
10
+
7
11
Behaviour Changes
8
12
9
13
* Cosmos now removes the Airflow DAGs folder from dbt's plugin discovery path for the duration of each dbt invocation, in both ``InvocationMode.DBT_RUNNER`` (in-process, via ``sys.path``) and ``InvocationMode.SUBPROCESS`` (via ``PYTHONPATH``). Previously dbt-core imported DAG files named ``dbt_*.py`` as a side effect of plugin discovery, which leaked or duplicated DAGs across unrelated Cosmos DAGs when running in-process and could crash the dbt command in subprocess mode. This is enabled by default. As a result, a genuine dbt plugin named ``dbt_*`` placed inside the DAGs folder will no longer be discovered; set ``enable_dags_folder_exclusion_from_dbt=False`` (env var ``AIRFLOW__COSMOS__ENABLE_DAGS_FOLDER_EXCLUSION_FROM_DBT``) to restore the previous behaviour. See #1673 and #2893.
0 commit comments