NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2817 most downloaded on PyPI
Orchestrate your dbt projects in Airflow
Last release 2 months ago
04 Aug 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
7 versions withdrawn
withdrawn after publishing
4 years old
208 releases · first in 2022
One column per quarter.
Avoid deprecated airflow.exceptions.AirflowSkipException import on Airflow 3.1+ by @pankajastro in #2796
Behaviour Changes
These changes adjust observable behaviour of the Kubernetes-based operators and of argument
validation in async execution mode. None of them break the public Cosmos API, but users relying
on the previous behaviour should review before upgrading.
ENTRYPOINT byarguments and any user-supplied cmds isdbt now require an explicit cmds=["dbt"].compiled_sql, freshness) via operator_args inCosmosValueError at DAG parse time instead of an opaqueTypeError. See #2868.Bug Fixes
env_var() Jinja when deriving ExecutionMode.WATCHER dataset namespace by @pankajastro in #2879airflow.exceptions.AirflowSkipException import on Airflow 3.1+ by @pankajastro in #2796operator_args path by @pankajastro in #2868ExecutionMode.WATCHER multi-parent test aggregation, so test sensors no longer hang by @hellowithchicken in #2901operator_kwargs under TestBehavior.AFTER_EACH by @tatiana in #2936on_warning_callback passed via operator_args by @tatiana in #2940--full-refresh overrides by @pankajastro in #2917Docs
ENTRYPOINT handling for Kubernetes modes by @pankajkoti in #2906ExecutionMode.WATCHER by @pankajastro in #2884contributing.rst by @tatiana in #2859Others
source_pruning_dag integration test by seeding the database first by @tatiana in #2927Honor on_warning_callback passed via operator_args by @tatiana in #2940
Bug fixes
on_warning_callback passed via operator_args by @tatiana in #2940--full-refresh overrides by @pankajastro in #2917Credit all parent models in ExecutionMode.WATCHER multi-parent test aggregation, so test sensors no longer hang by @hellowithchicken in #2901
Bug Fixes
Docs
Avoid deprecated airflow.exceptions.AirflowSkipException import on Airflow 3.1+ by @pankajastro in #2796
Pre-release alpha of Cosmos 1.15.1, the first cut from the clean
release-1.15maintenance line (branched from thev1.15.0tag with the milestone fixes cherry-picked).Note for
a1/a2testers: those alphas were hotfix cuts frommainand carried 1.16.0 features (#2844 dedicated WATCHER queues, #2871gcs_uploadretries) that this line does not ship. Thea2watcher--full-refreshfix (#2917) is not yet in this cut; it lands before GA.
Behaviour Changes
None of these break the public Cosmos API, but review before upgrading:
ENTRYPOINT by default: the full dbt command is passed via arguments and any user-supplied cmds is preserved. Images whose entrypoint is itself dbt now require an explicit cmds=["dbt"]. This restores the pre-1.15.0 default. See #2891.compiled_sql, freshness) via operator_args in async execution mode now raises CosmosValueError at DAG parse time instead of an opaque TypeError. See #2868.Bug Fixes
env_var() Jinja when deriving ExecutionMode.WATCHER dataset namespace by @pankajastro in #2879airflow.exceptions.AirflowSkipException import on Airflow 3.1+ by @pankajastro in #2796operator_args path by @pankajastro in #2868Docs
ENTRYPOINT handling for Kubernetes modes by @pankajkoti in #2906ExecutionMode.WATCHER by @pankajastro in #2884contributing.rst by @tatiana in #2859Others
source_pruning_dag integration test by seeding the database first by @tatiana in #2927Milestone: Cosmos 1.15.1
Release PR: #2935
Full changelog: astronomer-cosmos-v1.15.0...astronomer-cosmos-v1.15.1a3
Fix WATCHER_KUBERNETES consumer fallback dropping --full-refresh on templated params by @pankajastro in #2917
Bug Fixes
Hotfix alpha for validation. This alpha contains a single fix and is intended for the reporter of #2889 to confirm it resolves their issue before this
Hotfix alpha for validation. This alpha contains a single fix and is intended for the reporter of #2889 to confirm it resolves their issue before this is merged to main.
Bug Fixes
ENTRYPOINT by default in Kubernetes-based dbt operators (ExecutionMode.KUBERNETES, WATCHER_KUBERNETES, AWS_EKS, GCP_GKE, WATCHER_GCP_GKE). Previously, build_kube_args always set the pod container's command to ["dbt"], which overrode the image's ENTRYPOINT. Images that rely on their ENTRYPOINT to perform setup before dbt runs, such as sourcing secrets injected by a sidecar, would silently lose that setup. See #2889 and #2891.ExecutionMode.WATCHER and ExecutionMode.WATCHER_KUBERNETES are now stable, effective in Cosmos 1.15.0 (they were experimental through 1.14.x). This mi
Now Stable
ExecutionMode.WATCHER and ExecutionMode.WATCHER_KUBERNETES are now stable, effective in Cosmos 1.15.0 (they were experimental through 1.14.x). This milestone is the result of an ongoing effort across several releases; the highlights landing in this release include:
ExecutionMode.WATCHER_KUBERNETES mode with test handling. See #2529 and #2543.enable_watcher_reliable_retry config to harden watcher producer retries. See #2816.pod_manager context under Kubernetes. See #2805, #2806, and #2809.Breaking Changes
DBT_NO_TESTS_MSG and DBT_WARN_MSG constants and the module-level logger have been removed from cosmos.dbt.parser.output as part of a parser cleanup. If your custom code imported them, inline the literals ("Nothing to do" / "WARN") instead. See #2832.Behaviour Changes
These changes adjust observable behaviour. None of them breaks the documented public API, but review them before upgrading — especially if you rely on ephemeral models running dbt.
EmptyOperator by default (RenderConfig.ephemeral_models_as_empty_operator=True). They no longer run dbt or emit datasets/assets, callbacks, OpenLineage events, or compiled SQL. Set RenderConfig(ephemeral_models_as_empty_operator=False) to restore the previous behaviour. See #2759.on_warning_callback now fires for dbt test warnings in ExecutionMode.LOCAL subprocess mode (previously skipped on dbt 1.10+, where PASS=.. WARN=N is no longer the final stdout line). See #2832.compiled_sql and freshness are now rejected with CosmosValueError at task instantiation if passed via operator_args or directly to a local operator (they were previously overwritten by Cosmos at runtime, so any value silently had no effect); the guard covers both the synchronous local operators and the async BigQuery path. See #2726 and #2852.RenderConfig.exclude is now applied to per-model and detached test tasks under TestBehavior.AFTER_EACH and BUILD (previously only the AFTER_ALL aggregate test task honoured it), so exclusions such as exclude=["resource_type:unit_test"] now take effect without an operator_args workaround. See #2850.Features
ExecutionMode.GCP_GKE and ExecutionMode.WATCHER_GCP_GKE execution modes by @vricciardulli in #2488ExecutionMode.WATCHER_KUBERNETES mode with test handling by @vricciardulli in #2529 and #2543DbtDocsS3KubernetesOperator by @jx2lee in #2058use_tarball option to the upload_to_gcp_gs callback by @TTMichaelA in #2497freshness_callback in ExecutionConfig.setup_operator_args for ExecutionMode.WATCHER by @pankajastro in #2586ExecutionConfig by @pankajastro in #2728EmptyOperator by default by @pankajkoti in #2759query_tag from connection extras to dbt profile by @pankajastro in #2650cosmos.profiles by @pankajastro in #2668insecure_mode from connection Extra into dbt profile by @toor11 in #2744authenticator, client_session_keep_alive, host, and port by @Aaditya-git in #2748extra__google_cloud_platform__project in GoogleCloudServiceAccountDictProfileMapping by @jroachgolf84 in #2626enable_watcher_reliable_retry config to harden ExecutionMode.WATCHER producer retries by @tatiana in #2816Enhancements
openlineage-airflow with apache-airflow-providers-openlineage by @tatiana in #2753--no-static-parser flag in ExecutionMode.LOCAL by @pankajkoti in #2714_default_freshness_callback to return a list of (id, state) tuples by @pankajastro in #2572WATCHER_KUBERNETES producer default task_id with PRODUCER_WATCHER_TASK_ID by @tatiana in #2794EmptyOperator imports in a compatibility module by @pankajkoti in #2758safe_copy out of cosmos.cache into cosmos.fs by @pankajkoti in #2715store_compiled_sql by @pankajastro in #2751propagate_logs in provider_info by @pankajastro in #2712cosmos.log.get_logger consistently by @pankajastro in #2670# type: ignore comments and re-enable warn_unused_ignores by @pankajastro in #2710 and #2763functools.cache by @pankajastro in #2732registry_conn_id default by @pankajastro in #2766DBT_NO_TESTS_MSG / DBT_WARN_MSG constants and the module-level logger from cosmos.dbt.parser.output by @tatiana in #2832self.log by @pankajastro in #2681resource_name extraction from dbt unique_id by @pankajkoti in #2687# type: ignore comments to specify error codes by @pankajastro in #2711Variable in the ExecutionMode.WATCHER XCom backup to reduce log noise by @jhorlima in #2804ExecutionMode.WATCHER producer runs by @faridnsh in #2788self.log inside dbt operators for consistency by @pankajastro in #2798build_airflow_graph to satisfy the C901 complexity limit by @00yhj22-debug in #2689stdout/stderr in CosmosLoadDbtException by @DaPillah in #2826Bug Fixes
on_warning_callback skipping dbt test warnings in ExecutionMode.LOCAL subprocess mode by @tatiana in #2832example_cosmos_sources to use a dbt project with sources by @jroachgolf84 in #2614profiles.yml across dbt example projects by @yeoreums in #2501dbt-core<2.0 in virtualenv example DAGs to avoid alpha pickup by @pankajastro in #2752outlets passed to DbtRunLocalOperator when enable_dataset_alias=True by @jroachgolf84 in #2574cosmos_cache Variable insert IntegrityError as benign by @pankajkoti in #2800RenderConfig.exclude to per-model and detached test tasks for all test behaviours by @tatiana in #2850compiled_sql and freshness when passed via operator_args or to a local operator, on both the synchronous and async BigQuery paths by @00yhj22-debug in #2726 and @qorexdevs in #2852group_nodes_by_folder collapsing folders that share a leaf name under different parents (opt-in via enable_hierarchical_naming_for_group_nodes_by_folder) by @anor4k in #2824enable_hierarchical_naming_for_group_nodes_by_folder config (default False) to opt into hierarchical task-group naming for group_nodes_by_folder, rendering folders that share a leaf name under different parents as distinct task groups by @tatiana in #2862JSONDecodeError by @karanw330 in #2819partial_parse.msgpack cache by @mungiyo in #2815pod_manager for ExecutionMode.WATCHER_KUBERNETES by @vricciardulli in #2809ExecutionMode.WATCHER consumer logs by @pankajastro in #2806ExecutionMode.WATCHER mode by @pankajastro in #2805Docs
DbtDocsS3KubernetesOperator by @jx2lee in #2575ExecutionMode.WATCHER and the depends_on_past limitation by @tatiana in #2602watcher_dbt_execution_queue by @jroachgolf84 in #2705compiled_sql and freshness as output-only template fields by @00yhj22-debug in #2719node_conversion_by_task_group entry in render config docs by @pankajkoti in #2770self.log vs get_logger logging convention by @pankajastro in #2764ExecutionMode.WATCHER and ExecutionMode.WATCHER_KUBERNETES as stable (effective Cosmos 1.15.0) in the documentation by @pankajkoti in #2865Others
InProcessExecutionAPI by @pankajkoti in #2547pull_request workflow by Note truncated.
Pre-release alpha of Cosmos 1.15.0 .
Pre-release alpha of Cosmos 1.15.0.
Refresh of
a2with 28 additional milestone PRs merged since the second alpha. Headline:ExecutionMode.WATCHERandExecutionMode.WATCHER_KUBERNETESare now stable, effective Cosmos 1.15.0 (#2865). Also includes new Behaviour changes (output-only template fieldscompiled_sql/freshnessnow raise;RenderConfig.excludenow applies to per-model/detached test tasks) and an opt-inenable_hierarchical_naming_for_group_nodes_by_folderconfig. The head branch was synced withmainso this cut actually contains all of them. See the release PR for full provenance, the complete 162-PR changelog, and the test plan: #2810.
ExecutionMode.WATCHER and ExecutionMode.WATCHER_KUBERNETES are now stable, effective Cosmos 1.15.0 (they were experimental through 1.14.x).compiled_sql and freshness are now rejected with CosmosValueError at task instantiation if passed via operator_args or directly to a local operator; the guard covers both the sync local operators and the async BigQuery path by @00yhj22-debug in #2726 and @qorexdevs in #2852RenderConfig.exclude is now applied to per-model and detached test tasks under TestBehavior.AFTER_EACH and BUILD (previously only AFTER_ALL honoured it) by @tatiana in #2850enable_hierarchical_naming_for_group_nodes_by_folder config (default False) to opt into hierarchical task-group naming for group_nodes_by_folder by @tatiana in #2862stdout/stderr in CosmosLoadDbtException by @DaPillah in #2826RenderConfig.exclude to per-model and detached test tasks for all test behaviours by @tatiana in #2850group_nodes_by_folder collapsing folders that share a leaf name under different parents (opt-in via enable_hierarchical_naming_for_group_nodes_by_folder) by @anor4k in #2824JSONDecodeError by @karanw330 in #2819partial_parse.msgpack cache by @mungiyo in #2815pod_manager for ExecutionMode.WATCHER_KUBERNETES by @vricciardulli in #2809ExecutionMode.WATCHER consumer logs by @pankajastro in #2806ExecutionMode.WATCHER mode by @pankajastro in #2805self.log vs get_logger logging convention by @pankajastro in #2764ExecutionMode.WATCHER and ExecutionMode.WATCHER_KUBERNETES as stable (effective Cosmos 1.15.0) in the documentation by @pankajkoti in #2865apache-airflow 3.3 to the test matrix by @pankajkoti in #2831Milestone: Cosmos 1.15.0
Full changelog: astronomer-cosmos-v1.15.0a2...astronomer-cosmos-v1.15.0a3
Pre-release alpha of Cosmos 1.15.0 .
Pre-release alpha of Cosmos 1.15.0.
Refresh of
a1with 15 additional milestone PRs merged since the first alpha, plus newly surfaced Breaking and Behaviour changes (parser-constant removal in#2832; ephemeral models now render asEmptyOperatorby default). The head branch was synced withmainso this cut actually contains all of them. See the release PR for full provenance, the complete 134-PR changelog, and the test plan: #2810.
DBT_NO_TESTS_MSG and DBT_WARN_MSG constants and the module-level logger from cosmos.dbt.parser.output; if your custom code imported them, inline the literals ("Nothing to do" / "WARN") instead by @tatiana in #2832EmptyOperator by default (RenderConfig.ephemeral_models_as_empty_operator=True) — they no longer run dbt or emit datasets/assets, callbacks, OpenLineage events, or compiled SQL. Set RenderConfig(ephemeral_models_as_empty_operator=False) to restore the previous behaviour by @pankajkoti in #2759on_warning_callback now fires for dbt test warnings in ExecutionMode.LOCAL subprocess mode (previously skipped on dbt 1.10+, where PASS=.. WARN=N is no longer the final stdout line) by @tatiana in #2832ExecutionMode.GCP_GKE and ExecutionMode.WATCHER_GCP_GKE execution modes by @vricciardulli in #2488enable_watcher_reliable_retry config to harden ExecutionMode.WATCHER producer retries by @tatiana in #2816Variable in the ExecutionMode.WATCHER XCom backup to reduce log noise by @jhorlima in #2804ExecutionMode.WATCHER producer runs by @faridnsh in #2788self.log inside dbt operators for consistency by @pankajastro in #2798build_airflow_graph to satisfy the C901 complexity limit by @00yhj22-debug in #2689on_warning_callback skipping dbt test warnings in ExecutionMode.LOCAL subprocess mode by @tatiana in #2832outlets passed to DbtRunLocalOperator when enable_dataset_alias=True by @jroachgolf84 in #2574cosmos_cache Variable insert IntegrityError as benign by @pankajkoti in #2800Milestone: Cosmos 1.15.0
Full changelog: astronomer-cosmos-v1.15.0a1...astronomer-cosmos-v1.15.0a2
Add ExecutionMode.WATCHER_KUBERNETES mode with test handling by @vricciardulli in #2529 and #2543
Features
ExecutionMode.WATCHER_KUBERNETES mode with test handling by @vricciardulli in #2529 and #2543DbtDocsS3KubernetesOperator by @jx2lee in #2058use_tarball option to the upload_to_gcp_gs callback by @TTMichaelA in #2497freshness_callback in ExecutionConfig.setup_operator_args for ExecutionMode.WATCHER by @pankajastro in #2586ExecutionConfig by @pankajastro in #2728EmptyOperator by default by @pankajkoti in #2759query_tag from connection extras to dbt profile by @pankajastro in #2650cosmos.profiles by @pankajastro in #2668insecure_mode from connection Extra into dbt profile by @toor11 in #2744authenticator, client_session_keep_alive, host, and port by @Aaditya-git in #2748extra__google_cloud_platform__project in GoogleCloudServiceAccountDictProfileMapping by @jroachgolf84 in #2626Enhancements
openlineage-airflow with apache-airflow-providers-openlineage by @tatiana in #2753--no-static-parser flag in ExecutionMode.LOCAL by @pankajkoti in #2714_default_freshness_callback to return a list of (id, state) tuples by @pankajastro in #2572WATCHER_KUBERNETES producer default task_id with PRODUCER_WATCHER_TASK_ID by @tatiana in #2794EmptyOperator imports in a compatibility module by @pankajkoti in #2758safe_copy out of cosmos.cache into cosmos.fs by @pankajkoti in #2715store_compiled_sql by @pankajastro in #2751propagate_logs in provider_info by @pankajastro in #2712cosmos.log.get_logger consistently by @pankajastro in #2670# type: ignore comments and re-enable warn_unused_ignores by @pankajastro in #2710 and #2763functools.cache by @pankajastro in #2732registry_conn_id default by @pankajastro in #2766self.log by @pankajastro in #2681resource_name extraction from dbt unique_id by @pankajkoti in #2687# type: ignore comments to specify error codes by @pankajastro in #2711Bug Fixes
example_cosmos_sources to use a dbt project with sources by @jroachgolf84 in #2614profiles.yml across dbt example projects by @yeoreums in #2501dbt-core<2.0 in virtualenv example DAGs to avoid alpha pickup by @pankajastro in #2752Docs
DbtDocsS3KubernetesOperator by @jx2lee in #2575ExecutionMode.WATCHER and the depends_on_past limitation by @tatiana in #2602watcher_dbt_execution_queue by @jroachgolf84 in #2705compiled_sql and freshness as output-only template fields by @00yhj22-debug in #2719node_conversion_by_task_group entry in render config docs by @pankajkoti in #2770Others
InProcessExecutionAPI by @pankajkoti in #2547pull_request workflow by @pankajkoti in #2791release-* branches for pull_request_target to run CI on release branches by @pankajkoti in #2603persist-credentials: false for checkout in the actionlint workflow by @pankajkoti in #2793hatch run docs:build fail on Sphinx warnings by @pankajkoti in #2639DbtRunAirflowAsyncBigqueryOperator by @pankajastro in #2733DbtModel._extract_config branches by @pankajastro in #2779AGENTS.md; slim CLAUDE.md by @tatiana in #2703AGENTS.md for commands before running them by @pankajkoti in #2774CLAUDE.md by @pankajkoti in #2637 and #2665Milestone: Cosmos 1.15.0
Import ParamValidationError from airflow.sdk to silence deprecation warning by @pankajastro in #2645
Behaviour Changes
These changes adjust observable behaviour of the ExecutionMode.WATCHER execution mode.
None of them break the public Cosmos API, but users relying on undocumented internals
(graph wiring assertions, XCom backup Variable names, retry-on-recovery semantics, or
retry log format) should review before upgrading.
ExecutionMode.WATCHER + depends_on_past=True: when the producer task has
depends_on_past=True (typically set via default_args), the producer-done gateway
task inside DbtTaskGroup is now wired downstream of every consumer task, in addition
to the producer. This is required so that wait_for_downstream gating behaves
correctly across DAG runs and the task group acts as a single unit that must fully
succeed before the next run starts. Users with depends_on_past=False (the default)
see no topology change. See #2615.ExecutionMode.WATCHER downstream retry on upstream recovery: dbt models that were
skipped after an upstream-failure event are now retried in the same DAG run when the
upstream task succeeds on retry. Previously these models remained skipped for the run.
See #2684.ExecutionMode.WATCHER consumer-retry log format: the consumer's fallback dbt
invocation no longer inherits the producer's internal --log-format json flag, so
retry task logs now default to dbt's normal text format. Users who relied on JSON output
in retry logs can opt in via operator_args={"dbt_cmd_flags": ["--log-format", "json"]}.
See #2713.ExecutionMode.WATCHER XCom-backup Variable key scheme: the per-model XCom backup
Variable key now includes the full task-group path and sanitises disallowed characters
(+ / :) from run_id. External monitoring or cleanup scripts that match the
old key pattern will need updating. See #2629 and #2683.Bug Fixes
ExecutionMode.WATCHER interaction with depends_on_past by @johnhoran in #2615--log-format from producer flags on watcher consumer retry by @tatiana in #2713deferrable kwarg in DbtRunAirflowAsyncBigqueryOperator by @pankajastro in #2616src missing deployment path prefix by @pankajastro in #2640TaskInstance import in cluster policy to fix Sentry init crash by @pankajastro in #2662cosmos/__init__.py by @pankajastro in #2647ExecutionMode.WATCHER non-dbt stdout being suppressed from logs by @pankajastro in #2654ExecutionMode.WATCHER by @pankajkoti in #2658Docs
ExecutionMode.WATCHER by @pankajastro in #2617DbtRunLocalOperator, DbtTestLocalOperator, DbtSnapshotLocalOperator and DbtBuildLocalOperator by @pankajastro in #2643- for bullet points by @pankajkoti in #2631docs/guides/ and docs/index.rst by @pankajkoti in #2664ExecutionMode.AIRFLOW_ASYNC by @pankajastro in #2642Others
ParamValidationError from airflow.sdk to silence deprecation warning by @pankajastro in #2645DAG from airflow.sdk to silence deprecation warning by @pankajastro in #2644CLAUDE.md by @pankajastro in #2646CLAUDE.md by @pankajastro in #2679scripts/airflow3 directory by @pankajastro in #2661altered_jaffle_shop seed-dep CTE references by @pankajastro in #2690example_watcher_with_freshness by @pankajastro in #2692Import ParamValidationError from airflow.sdk to silence deprecation warning by @pankajastro in #2645
Pre-release alpha of Cosmos 1.14.2.
Refresh of
a3with eleven additional milestone PRs (nine from @pankajastro, two from @pankajkoti). All applied cleanly on top of the a3 cherry-picks. See the release PR for cherry-pick provenance and manual conflict resolution: #2708.
ExecutionMode.WATCHER interaction with depends_on_past by @johnhoran in #2615deferrable kwarg in DbtRunAirflowAsyncBigqueryOperator by @pankajastro in #2616src missing deployment path prefix by @pankajastro in #2640TaskInstance import in cluster policy to fix Sentry init crash by @pankajastro in #2662cosmos/__init__.py by @pankajastro in #2647ExecutionMode.WATCHER non-dbt stdout being suppressed from logs by @pankajastro in #2654ExecutionMode.WATCHER by @pankajkoti in #2658ExecutionMode.WATCHER by @pankajastro in #2617DbtRunLocalOperator, DbtTestLocalOperator, DbtSnapshotLocalOperator and DbtBuildLocalOperator by @pankajastro in #2643- for bullet points by @pankajkoti in #2631docs/guides/ and docs/index.rst by @pankajkoti in #2664ParamValidationError from airflow.sdk to silence deprecation warning by @pankajastro in #2645DAG from airflow.sdk to silence deprecation warning by @pankajastro in #2644CLAUDE.md by @pankajastro in #2646CLAUDE.md by @pankajastro in #2679scripts/airflow3 directory by @pankajastro in #2661altered_jaffle_shop seed-dep CTE references by @pankajastro in #2690example_watcher_with_freshness by @pankajastro in #2692Milestone: Cosmos 1.14.2
Full changelog: https://github.com/astronomer/astronomer-cosmos/compare/astronomer-cosmos-v1.14.2a3...astronomer-cosmos-v1.14.2a4
Import ParamValidationError from airflow.sdk to silence deprecation warning by @pankajastro in #2645
Pre-release alpha of Cosmos 1.14.2.
First alpha cut from
release-1.14with the full milestone applied (previous alphasa1/a2were point fixes off feature branches). See the release PR for cherry-pick provenance and manual conflict resolution: #2708.
ExecutionMode.WATCHER interaction with depends_on_past by @johnhoran in #2615deferrable kwarg in DbtRunAirflowAsyncBigqueryOperator by @pankajastro in #2616src missing deployment path prefix by @pankajastro in #2640TaskInstance import in cluster policy to fix Sentry init crash by @pankajastro in #2662cosmos/__init__.py by @pankajastro in #2647ExecutionMode.WATCHER non-dbt stdout being suppressed from logs by @pankajastro in #2654ExecutionMode.WATCHER by @pankajastro in #2617DbtRunLocalOperator, DbtTestLocalOperator, DbtSnapshotLocalOperator and DbtBuildLocalOperator by @pankajastro in #2643- for bullet points by @pankajkoti in #2631docs/guides/ and docs/index.rst by @pankajkoti in #2664ParamValidationError from airflow.sdk to silence deprecation warning by @pankajastro in #2645DAG from airflow.sdk to silence deprecation warning by @pankajastro in #2644Milestone: Cosmos 1.14.2
Full changelog: https://github.com/astronomer/astronomer-cosmos/compare/astronomer-cosmos-v1.14.1...astronomer-cosmos-v1.14.2a3
Test: Forward non-dbt stdout to task log in WATCHER mode in https://github.com/astronomer/astronomer-cosmos/pull/2654
Test: Forward non-dbt stdout to task log in WATCHER mode in https://github.com/astronomer/astronomer-cosmos/pull/2654
Test: Fix dbt docs iframe src missing deployment path prefix PR: https://github.com/astronomer/astronomer-cosmos/pull/2640
Test: Fix dbt docs iframe src missing deployment path prefix PR: https://github.com/astronomer/astronomer-cosmos/pull/2640
Fix ExecutionMode.WATCHER producer retry behaviour by @tatiana in #2559
Bug Fixes
ExecutionMode.WATCHER producer retry behaviour by @tatiana in #2559CosmosRichLogger crash on None log message by @tatiana in #2540ExecutionMode.WATCHER by @pankajastro in #2563dbt build when source freshness is enabled by @pankajastro in #2564source_rendering_behavior=None is passed by @pankajastro in #2570Variable.set() failures on Astro Remote Execution by @hkc-8010 in #2573Docs
ExecutionMode.WATCHER and depends_on_past limitation by @tatiana in #2602Others
cosmos_manifest_selectors_example DAG in CI by @pankajkoti in #2593reviewdog/action-actionlint from 1.71.0 to 1.72.0 by @dependabot in #2542Cut from release PR: https://github.com/astronomer/astronomer-cosmos/pull/2601
Cut from release PR: https://github.com/astronomer/astronomer-cosmos/pull/2601
Cut from release PR: https://github.com/astronomer/astronomer-cosmos/pull/2601
Cut from release PR: https://github.com/astronomer/astronomer-cosmos/pull/2601
Fix watcher producer retries behaviour by @tatiana in #2559
ExecutionMode.WATCHER_KUBERNETES as wellhttps://github.com/astronomer/astronomer-cosmos/pull/2559
Fix watcher producer retries behaviour by @tatiana in #2559
https://github.com/astronomer/astronomer-cosmos/pull/2559
Drop support for Airflow versions earlier than 2.9 by @jedcunningham in #2288
Breaking Changes
ExecutionMode.WATCHER: The per-node *_status XCom value is now a dict ({"status": "<status>", "outlet_uris": [...]}) instead of a plain string. Any custom code that reads these internal XCom keys directly will need to be updated by @pankajkoti in #2507Features
ExecutionMode.WATCHER sensor retries by @astro-anand in #2293LoadMode.DBT_MANIFEST by @pankajastro in #2375ExecutionMode.WATCHER by @pankajastro and @tatiana in #2467
ExecutionMode.WATCHER, this feature is experimental and its interface and implementation can change in the future.Enhancements
Bug Fixes
LoadMode.DBT_MANIFEST and RenderConfig.selector by @YourRoyalLinus in #2316compiled_sql for InvocationMode.SUBPROCESS in ExecutionMode.WATCHER by @pankajkoti in #2319emit_datasets=False for DbtTest* operators by @pankajastro in #2365extra_context for watcher consumer task instances by @pankajkoti in #2381deferrable=False from operator_args on watcher consumer sensors by @pankajkoti in #2384compiled_sql on ExecutionMode.WATCHER producers by @pankajkoti in #2440__cosmos_telemetry_metadata__ dag param by @pankajkoti in #2466retries=0 from watcher producer operators by @tatiana in #2479cosmos_debug_max_memory_mb XCom not pushed in Watcher sensor tasks by @tatiana in #2503TestBehavior.NONE and TestBehavior.AFTER_ALL exclude ignored with selectors in ExecutionMode.WATCHER by @pankajkoti in #2511ExecutionMode.WATCHER from producer to consumer sensors by @pankajkoti in #2507Docs
ExecutionMode.WATCHER sensor tasks by @pankajastro in #2315ExecutionMode.WATCHER documentation regarding test node implementation by @jroachgolf84 in #2355pre_dbt_fusion configuration rendering by @pankajastro in #2369DbtSeedLocalOperator by @jroachgolf84 in #2383Others
int or float for cosmos_debug_max_memory_mb in integration tests by @pankajkoti in #2352CODEOWNERS to prioritize oss-integrations by @tatiana in #2359ExecutionMode.WATCHER by @tatiana in #2373methodtools dependency by @tatiana in #2378load_from_dbt_manifest to reduce code complexity by @pankajkoti in #2399_handle_no_precursors_or_descendants to reduce complexity by @pankajkoti in #2400no-reload target for serving docs locally by @pankajkoti in #2405virtualenv <21 due to hatch incompatibility in CI by @pankajkoti in #2410hatch run docs:build issues by @tatiana in #2437docs: Updating "Project Policies" to "Policies" in menu bar by @jroachgolf84 in https://github.com/astronomer/astronomer-cosmos/pull/2526
WATCHER_KUBERNETES mode (#2529)" by @pankajkoti in https://github.com/astronomer/astronomer-cosmos/pull/2535Full Changelog: https://github.com/astronomer/astronomer-cosmos/compare/astronomer-cosmos-v1.14.0a8...astronomer-cosmos-v1.14.0a9
Fix typo in watcher execution mode docs by @evanvolgas in https://github.com/astronomer/astronomer-cosmos/pull/2485
ExecutionMode.WATCHER by @tatiana in https://github.com/astronomer/astronomer-cosmos/pull/2491cosmos_debug_max_memory_mb XCom not pushed in Watcher sensor tasks by @tatiana in https://github.com/astronomer/astronomer-cosmos/pull/2503InvocationMode by @tatiana in https://github.com/astronomer/astronomer-cosmos/pull/2498cosmos-conf.rst by @tatiana in https://github.com/astronomer/astronomer-cosmos/pull/2515TestBehavior.NONE and TestBehavior.AFTER_ALL exclude ignored with selectors in ExecutionMode.Watcher by @pankajkoti in https://github.com/astronomer/astronomer-cosmos/pull/2511ExecutionMode.WATCHER from producer to consumer sensors by @pankajkoti in https://github.com/astronomer/astronomer-cosmos/pull/2507Full Changelog: https://github.com/astronomer/astronomer-cosmos/compare/astronomer-cosmos-v1.14.0a5...astronomer-cosmos-v1.14.0a8
Cut from: https://github.com/astronomer/astronomer-cosmos/pull/2472 (branch: https://github.com/astronomer/astronomer-cosmos/tree/airflow_3.2)
Cut from: https://github.com/astronomer/astronomer-cosmos/pull/2472 (branch: https://github.com/astronomer/astronomer-cosmos/tree/airflow_3.2)
Fix cosmos_debug_max_memory_mb XCom not pushed in Watcher sensor tasks by @tatiana in #2503
cosmos_debug_max_memory_mb XCom not pushed in Watcher sensor tasks by @tatiana in #2503On top of the other changes in the main branch by the time #2503 was created
Add config to allow disabling dag versioning by @pankajkoti in https://github.com/astronomer/astronomer-cosmos/pull/2470
Features
Enhancements
Bugs
retries=0 from watcher producer operators by @tatiana in https://github.com/astronomer/astronomer-cosmos/pull/2479Others
Full Changelog: https://github.com/astronomer/astronomer-cosmos/compare/astronomer-cosmos-v1.14.0a4...astronomer-cosmos-v1.14.0a5
Drop support for Airflow versions earlier than 2.9 by @jedcunningham in #2288
Breaking changes
Features
ExecutionMode.WATCHER sensor retries by @astro-anand in #2293LoadMode.DBT_MANIFEST by @pankajastro in #2375Enhancements
Bug Fixes
LoadMode.DBT_MANIFEST and RenderConfig.selector by @YourRoyalLinus in #2316compiled_sql for InvocationMode.SUBPROCESS in ExecutionMode.WATCHER by @pankajkoti in #2319emit_datasets=False for DbtTest* operators by @pankajastro in #2365extra_context for watcher consumer task instances by @pankajkoti in #2381deferrable=False from operator_args on watcher consumer sensors by @pankajkoti in #2384compiled_sql on ExecutionMode.WATCHER producers by @pankajkoti in #2440Docs
ExecutionMode.WATCHER sensor tasks by @pankajastro in #2315ExecutionMode.WATCHER documentation regarding test node implementation by @jroachgolf84 in #2355pre_dbt_fusion configuration rendering by @pankajastro in #2369DbtSeedLocalOperator by @jroachgolf84 in #2383Others
int or float for cosmos_debug_max_memory_mb in integration tests by @pankajkoti in #2352CODEOWNERS to prioritize oss-integrations by @tatiana in #2359ExecutionMode.WATCHER by @tatiana in #2373methodtools dependency by @tatiana in #2378load_from_dbt_manifest to reduce code complexity by @pankajkoti in #2399_handle_no_precursors_or_descendants to reduce complexity by @pankajkoti in #2400no-reload target for serving docs locally by @pankajkoti in #2405virtualenv <21 due to hatch incompatibility in CI by @pankajkoti in #2410hatch run docs:build issues by @tatiana in #2437Alpha release to validate the branch: customer-issue-328-everything-together
Alpha release to validate the branch: customer-issue-328-everything-together
Drop support for Airflow under 2.9 by @jedcunningham in #2288
Breaking changes
Features
ExecutionMode.WATCHER sensor for retry by @astro-anand in #2293Enhancements
Docs
Others
Add Add cluster policy for ExecutionMode.WATCHER sensor for retry by @astro-anand in #2293
Features
ExecutionMode.WATCHER sensor for retry by @astro-anand in #2293Change Snowflake profile mappings to default to four threads by @tatiana in #2374
Enhancements
UnboundLocalError for producer_task in calculate_tasks_map by @rin in #2309Bug Fixes
dbt-loom by @award1230 in #2389compiled_sql for InvocationMode.SUBPROCESS in ExecutionMode.WATCHER by @pankajkoti in #2319extra_context for watcher consumer task instances by @pankajkoti in #2381deferrable=False from operator_args on consumer sensor by @pankajkoti in #2384LoadMode.DBT_MANIFEST and RenderConfig.selector by @YourRoyalLinus in #2316Docs
ExecutionMode.KUBERNETES limitations by @tatiana in #2326Others
Change Snowflake profile mappings to default to four threads by @tatiana in #2374
Enhancements
UnboundLocalError for producer_task in calculate_tasks_map by @rin in #2309Bug Fixes
dbt-loom by @award1230 in #2389compiled_sql for InvocationMode.SUBPROCESS in ExecutionMode.WATCHER by @pankajkoti in #2319extra_context for watcher consumer task instances by @pankajkoti in #2381deferrable=False from operator_args on consumer sensor by @pankajkoti in #2384LoadMode.DBT_MANIFEST and RenderConfig.selector by @jonbillings in #2316Docs
ExecutionMode.KUBERNETES limitations by @tatiana in #2326Others
Cut from: #2388
Support cross-referencing models across dbt projects using dbt-loom by @pankajkoti in #2271
Features
LoadMode.DBT_MANIFEST by @YourRoyalLinus in #2261ExecutionMode.WATCHER_KUBERNETES to use the watcher with KubernetesPodOperator by @tatiana in #2207WATCHER_KUBERNETES callback by @johnhoran in #2307Enhancements
_construct_dest_file_path by @jx2lee in #2077::group:: to group logs associated with DAG parsing by @tatiana in #2235DbtConsumerWatcherSensor for reusability by @tatiana in #2245ExecutionMode.WATCHER by @tiovader in #2241Bug Fixes
ExecutionMode.WATCHER by @tatiana in #2279TestBehavior.AFTER_ALL is missing project_name information when loading project using manifest file by @tuantran0910 in #2242Docs
Others
Support use of YAML selectors when using LoadMode.DBT_MANIFEST by @YourRoyalLinus in https://github.com/astronomer/astronomer-cosmos/pull/2261
Features
Bugs
Others
main branch failing tests by @tatiana in https://github.com/astronomer/astronomer-cosmos/pull/2296Full Changelog: https://github.com/astronomer/astronomer-cosmos/compare/astronomer-cosmos-v1.13.0a3...astronomer-cosmos-v1.13.0a4
Introduce ExecutionMode.WATCHER_KUBERNETES to use the watcher with KubernetesPodOperator by @tatiana in #2207
Features
Introduce ExecutionMode.WATCHER_KUBERNETES to use the watcher with KubernetesPodOperator by @tatiana in #2207
Leverage Airflow ::group:: to group logs associated with DAG parsing by @tatiana in #2235
Add support for StarRocks profile mapping by @kurkim0661 in #2256
Allow pushing URIs as XComs for Cosmos tasks by @corsettigyg in #2275
Add Scarf metrics to understand Cosmos feature usage patterns
Support cross-referencing models across dbt projects using dbt-loom by @pankajkoti in #2271 Enhancements
Refactor: remove duplicate _construct_dest_file_path by @jx2lee in #2077
Hide telemetry metadata parameters from the Airflow trigger UI by @pankajkoti in #2247
Refactor DbtConsumerWatcherSensor for reusability by @tatiana in #2245
Restore plain text output when using ExecutionMode.WATCHER by @tiovader in #2241
Bug Fixes
ExecutionMode.WATCHER by @tatiana in #2279TestBehavior.AFTER_ALL is missing project_name information when loading project using manifest file by @tuantran0910 in #2242Docs
Others
(Includes more changes - cut from the branch fix-empty-model-issue)
(Includes more changes - cut from the branch fix-empty-model-issue)
Features
ExecutionMode.WATCHER_KUBERNETES to use watcher with KubernetesPodOperator by @tatiana in #2207Enhancements
Bug Fixes
ExecutionMode.WATCHER by @tatiana in #2279(WIP) Introduce ExecutionMode.WATCHER_KUBERNETES to use watcher with KubernetesPodOperator by @tatiana in #2207
Features:
ExecutionMode.WATCHER_KUBERNETES to use watcher with KubernetesPodOperator by @tatiana in #2207Release cut from:
Fix DbtSourceWatcherOperator.template_fields to inherit from DbtSourceLocalOperator instead of DbtConsumerWatcherSensor by @pankajkoti in #2226
Bug Fixes
DbtSourceWatcherOperator.template_fields to inherit from DbtSourceLocalOperator instead of DbtConsumerWatcherSensor by @pankajkoti in #2226TypeError in Watcher mode with subprocess invocation by @pankajkoti in #2227RenderConfig.invocation_mode is incorrectly set by @tatiana in #2267Docs
ExecutionMode.AIRFLOW_ASYNC limitation in docs by @pankajastro in #2214Others
Fix DbtSourceWatcherOperator.template_fields to inherit from DbtSourceLocalOperator instead of DbtConsumerWatcherSensor by @pankajkoti in #2226
Bug Fixes
DbtSourceWatcherOperator.template_fields to inherit from DbtSourceLocalOperator instead of DbtConsumerWatcherSensor by @pankajkoti in #2226Docs
Others
Introduced in the PR #2080. The following functions are expected to be used internally only to Cosmos, so we hope these won't impact end-users, but we
Breaking changes
generate_task_or_group receives render_config instead of its individual configurations, such as test_behavior, source_rendering_behavior and enable_owner_inheritancecreate_task_metadata receives render_config instead of its individual configurations, such as test_behavior, source_rendering_behavior and enable_owner_inheritancecreate_task_metadata now expects the node_converters argumentFeatures
node_converter at a task level instead of task group level by @anyapriya in #1759DbtProducerWatcherOperator parameters via ExecutionConfig.setup_operator_args by @pankajastro in #2133ExecutionMode.WATCHER by @pankajastro in #2084ExecutionMode.WATCHER and InvocationMode.SUBPROCESS by @pankajastro in #2152Enhancements
constants.py by @tatiana in #2089airflow/graph.py to simplify the code base by @tatiana in #2080ExecutionMode.WATCHER consumer sensors immediately when the producer fails using Airflow context by @pankajkoti in #2126ExecutonMode.WATCHER: fetch producer status asynchronously from the Airflow runtime so deferrable sensors fail immediately when the producer task fails by @pankajkoti in #2144ExecutionMode.WATCHER InvocationMode.SUBPROCESS log parser by @tatiana in #2183Bug fixes
ExecutionMode.WATCHER deferrable failure messaging by @pankajkoti in #2124DbtProducerWatcherOperator dbt build flags by @michal-mrazek in #2127packages-install-path when it uses env_var by @tatiana in #2194template_fields in DbtConsumerWatcherSensor to include DbtRunLocalOperator template_fields`` by @tiovader and @emanuel-luis in #2209Docs
ExecutionMode.AIRFLOW_ASYNC by @varaprasadregani in #2143ExecutionMode.KUBERNETES guidance by @tatiana in #2139DbtConsumerWatcherSensor by @pankajastro in #2115setup_operator_args param by @pankajastro in #2136ExecutionMode.AIRFLOW_ASYNC by @pankajastro in #2153ExecutionMode.AIRFLOW_ASYNC dataset limits by @pankajkoti in #2167Others
jaffle_shop_kubernetes.py by @tatiana in #2140ExecutionMode.WATCHER by @pankajkoti in #2145ExecutionMode.WATCHER modules by @pankajkoti in #2150pydantic<2.0 for Airflow 2.6 compatibility by @pankajastro in #2172dbt-duckdb dependency by @pankajastro in #2170type: ignore for untyped decorators to fix mypy errors by @pankajastro in #2174load_method_from_module from _utils/importer.py by @pankajastro in #2176pyupgrade in pre-commit config by @pankajastro in #2190dependabot config by @pankajastro in #2189actions/checkout from 5.0.0 to 5.0.1 by @dependabot in #2135actions/checkout to 6.0.0 in GitHub workflows by @dependabot in #2147zizmorcore/zizmor-action from 0.2.0 to 0.3.0 by @dependabot in #2156actions/checkout from 5.0.1 to 6.0.0 by @dependabot in #2155actions/checkout from 6.0.0 to 6.0.1 by @dependabot in #2178codecov/codecov-action from 5.5.1 to 5.5.2 by @dependabot in #2208Everything in [v1.12.0a3](https://github.com/astronomer/astronomer-cosmos/releases/tag/astronomer-cosmos-v1.12.0a3) and additionally:
Everything in v1.12.0a3 and additionally:
Breaking changes
Features
ExecutionMode.WATCHER and InvocationMode.SUBPROCESS by @pankajastro in #2152Enhancements
ExecutionMode.WATCHER InvocationMode.SUBPROCESS log parser by @tatiana in #2183Bug fixes
Docs
setup_operator_args param by @pankajastro in #2136ExecutionMode.AIRFLOW_ASYNC by @pankajastro in #2153ExecutionMode.AIRFLOW_ASYNC dataset limits by @pankajkoti in #2167Others
jaffle_shop_kubernetes.py by @tatiana in #2140ExecutionMode.WATCHER modules by @pankajkoti in #2150pydantic<2.0 for Airflow 2.6 compatibility by @pankajastro in #2172dbt-duckdb dependency by @pankajastro in #2170type: ignore for untyped decorators to fix mypy errors by @pankajastro in #2174load_method_from_module from _utils/importer.py by @pankajastro in #2176pyupgrade in pre-commit config by @pankajastro in #2190dependabot config by @pankajastro in #2189zizmorcore/zizmor-action from 0.2.0 to 0.3.0 by @dependabot in #2156actions/checkout from 5.0.1 to 6.0.0 by @dependabot in #2155actions/checkout from 6.0.0 to 6.0.1 by @dependabot in #2178Release prepared via PR: https://github.com/astronomer/astronomer-cosmos/pull/2149 (branch: https://github.com/astronomer/astronomer-cosmos/tree/release-1.12)
Introduced in the PR #2080. The following functions are expected to be used internally only to Cosmos, so we hope these won't impact end-users, but we
Breaking changes
generate_task_or_group receives render_config instead of its individual configurations, such as test_behavior, source_rendering_behavior and enable_owner_inheritancecreate_task_metadata receives render_config instead of its individual configurations, such as test_behavior, source_rendering_behavior and enable_owner_inheritancecreate_task_metadata now expects the node_converters argumentFeatures
node_converter at a task level instead of task group level by @anyapriya in #1759DbtProducerWatcherOperator parameters via ExecutionConfig.setup_operator_args by @pankajastro in #2133ExecutionMode.WATCHER by @pankajastro in #2084Enhancements
constants.py by @tatiana in #2089airflow/graph.py to simplify the code base by @tatiana in #2080ExecutionMode.WATCHER consumer sensors immediately when the producer fails using Airflow context by @pankajkoti in #2126ExecutonMode.Watcher: fetch producer status asynchronously from the Airflow runtime so deferrable sensors fail immediately when the producer task fails by @pankajkoti in #2144Bug fixes
DbtProducerWatcherOperator dbt build flags by @michal-mrazek in #2127Docs
ExecutionMode.AIRFLOW_ASYNC by @varaprasadregani in #2143ExecutionMode.KUBERNETES guidance by @pankajastro in #2139DbtConsumerWatcherSensor by @pankajastro in #2115Others
ExecutionMode.WATCHER by @pankajkoti in #2145actions/checkout from 5.0.0 to 5.0.1 by @dependabot in #2135actions/checkout to 6.0.0 in GitHub workflows by @dependabot in #2147Release prepared via PR: #2149 (branch: https://github.com/astronomer/astronomer-cosmos/tree/release-1.12)
Introduced in the PR #2080. The following functions are expected to be used internally only to Cosmos, so we hope these won't impact end-users, but we
Breaking changes
generate_task_or_group receives render_config instead of its individual configurations, such as test_behavior, source_rendering_behavior and enable_owner_inheritancecreate_task_metadata receives render_config instead of its individual configurations, such as test_behavior, source_rendering_behavior and enable_owner_inheritancecreate_task_metadata now expects the node_converters argumentFeatures
node_converter at a task level instead of task group level by @anyapriya in #1759Enhancements
airflow/graph.py to simplify code-base by @tatiana in #2080Others
Introduced in the PR #2080. The following functions are expected to be used internally only to Cosmos, so we hope these won't impact end-users, but we
Breaking changes
generate_task_or_group receives render_config instead of its individual configurations, such as test_behavior, source_rendering_behavior and enable_owner_inheritancecreate_task_metadata receives render_config instead of its individual configurations, such as test_behavior, source_rendering_behavior and enable_owner_inheritancecreate_task_metadata now expects the node_converters argumentFeatures
node_converter at a task level instead of task group level by @anyapriya in #1759Enhancements
airflow/graph.py to simplify code-base by @tatiana in #2080Others
(back-ported) Fix resolution of packages-install-path when it uses env_var by @tatiana in #2194
Bug Fixes
packages-install-path when it uses env_var by @tatiana in #2194Force DbtProducerWatcherOperator retries to zero by @pankajkoti in #2114
Bug fixes
DbtProducerWatcherOperator retries to zero by @pankajkoti in #2114DbtConsumerWatcherSensor tasks immediately when the DbtProducerWatcherOperator fails using Airflow context by @pankajkoti in #2126DbtProducerWatcherOperator dbt build flags by by @michal-mrazek in #2127Documentation
ExecutionMode.KUBERNETES guidance by @tatiana in #2139ExecutionMode.AIRFLOW_ASYNC by @varaprasadregani in #2143Fix ExecutionMode.WATCHER deadlock in Airflow 3.0 & 3.1 by @tatiana in #2087
Bug fixes
ExecutionMode.WATCHER deadlock in Airflow 3.0 & 3.1 by @tatiana in #2087ExecutionMode.AIRFLOW_ASYNC TaskGroup XCom issue by @tatiana in #2088ExecutionMode.WATCHER to use install_dbt_deps from ProjectConfig by @michal-mrazek in #2112Enhancements
Docs
ExecutionMode.AIRFLOW_ASYNC docs by @tatiana in #2103operator_args to operator_kwargs by @jx2lee in #2091Others
Fix ExecutionMode.WATCHER deadlock in Airflow 3.0 & 3.1 by @tatiana in #2087
Bug fixes
ExecutionMode.WATCHER deadlock in Airflow 3.0 & 3.1 by @tatiana in #2087ExecutionMode.AIRFLOW_ASYNC TaskGroup XCom issue by @tatiana in #2088Enhancements
Others
Introduce ExecutionMode.WATCHER to reduce DAG run time by 1/5 in several PRs. Learn more about it here. This feature was implemented via multiple PRs,
Features
Introduce ExecutionMode.WATCHER to reduce DAG run time by 1/5 in several PRs. Learn more about it here. This feature was implemented via multiple PRs, including:
DbtProducerWatcherOperator for the proposed ExecutionMode.WATCHER by @pankajkoti in #1982DbtConsumerWatcherSensor for the proposed ExecutionMode.WATCHER by @pankajastro in #1998DbtProducerWatcherOperator by @pankajkoti in #1995compiled_sql as a template fields on ExecutionMode.WATCHER when using run_results.json by @pankajastro in #2070push_run_results_to_xcom kwargs correctly for invocation mode subprocess and Watcher mode by @pankajastro in #2067ExecutionMode.WATCHER by @pankajkoti in #2068ExecutionMode.WATCHER by @tatiana in #2046State.UPSTREAM_FAILED tasks when WATCHER consumer upstream tasks fail by @tatiana in #2062ExecutionMode.WATCHER producer task fails by @pankajastro in #2040TestBehavior.AFTER_ALL with ExecutionMode.WATCHER by @pankajastro in #2049TestBehavior.NONE with ExecutionMode.WATCHER by @pankajastro in #2047ExecutionMode.WATCHER behaviour with DbtTaskGroup by @tatiana in #2044InvocationMode.DBT_RUNNER by @tatiana in #2048Add Airflow 3 plugin for dbt docs with multiple dbt projects support by @pankajkoti in #2009, check the documentation.
Initial support to dbt Fusion by @tatiana in #1803. More details here.
Support to prune sources without downstream references in dbt projects by @corsettigyg in #1988
Allow to set task display name as a user-defined function by @corsettigyg in #1761
Add dbt project's hash to dag docs to support dag versioning in Airflow 3 by @pankajkoti in #1907
feat: Add Jinja templating support for dbt_cmd_flags by @skillicinski in #1899
Add Scarf metric to collect the execution mode uses by @pankajastro in #1981
Support Airflow 3.1 by @tatiana in #1980
Add MySQL profile mapping by @Lee2532 in #1977
Add sqlserver profile mapping by @pankajastro in #1737
Enhancement
ExecutionMode.AIRFLOW_ASYNC by 36% , via the following tickets:
ExecutionMode.AIRFLOW_ASYNC by @pankajastro in #1934AIRFLOW_ASYNC teardown so it doesn't install the virtualenv by @pankajastro in #1938AIRFLOW_ASYNC setup task by @pankajastro in #1939downstreams to DbtNode by @wornjs in #2028Bug fixes
Documentation
cache_dir by @seokyun.ha in #2027Others
contributors.rst by @tatiana in #1983dag.test() for Airflow 3.1+ by syncing DAG to database bby @kaxil in #2037ObjectStoragePath in main branch by @tatiana in #2012Co-authored-by: Pankaj Koti pankaj.koti@astronomer.io Co-authored-by: Pankaj Singh pankaj.singh@astronomer.io
Features
Introduce ExecutionMode.WATCHER to reduce DAG run time by 1/5 in several PRs. Learn more about it here. This feature was implemented via multiple PRs, including: * Expose new execution mode by @tatiana @pankajastro @pankajkoti in #1999 * Add DbtProducerWatcherOperator for the proposed ExecutionMode.WATCHER by @pankajkoti in #1982 * Add DbtConsumerWatcherSensor for the proposed ExecutionMode.WATCHER by @pankajastro in #1998 * Push producer's task completion status to XCOM by @pankajkoti in #2000 * Add default priority_weight for DbtProducerWatcherOperator by @pankajkoti in #1995 * Add sample dbt events for the dbt watcher execution mode by @pankajkoti in #1952 * Add compiled_sql as a template fields on `ExecutionMode.WATCHER` when using run_results.json by @pankajastro in #2070 * Set push_run_results_to_xcom kwargs correctly for invocation mode subprocess and Watcher mode by @pankajastro in #2067 * Store compiled SQL as template field for dbt callback events in ExecutionMode.WATCHER by @pankajkoti in #2068 * Add initial documentation for ExecutionMode.WATCHER by @tatiana in #2046 * Support running State.UPSTREAM_FAILED tasks when WATCHER consumer upstream tasks fail by @tatiana in #2062 * Fail sensor tasks immediately if the ExecutionMode.WATCHER producer task fails by @pankajastro in #2040 * Add WATCHER to GitHub issue template by @tatiana in #2056 * Add support for TestBehavior.AFTER_ALL with ExecutionMode.WATCHER by @pankajastro in #2049 * Add support for TestBehavior.NONE with ExecutionMode.WATCHER by @pankajastro in #2047 * Fix ExecutionMode.WATCHER behaviour with DbtTaskGroup by @tatiana in #2044 * Fix Cosmos behaviour when using watcher with InvocationMode.DBT_RUNNER by @tatiana in #2048
Add Airflow 3 plugin for dbt docs with multiple dbt projects support by @pankajkoti in #2009, check the documentation.
Initial support to dbt Fusion by @tatiana in #1803. More details here..
Support to prune sources without downstream references in dbt projects by @corsettigyg in #1988
Allow to set task display name as a user-defined function by @corsettigyg in #1761
Add dbt project's hash to dag docs to support dag versioning in Airflow 3 by @pankajkoti in #1907
feat: Add Jinja templating support for dbt_cmd_flags by @skillicinski in #1899
Add Scarf metric to collect the execution mode uses by @pankajastro in #1981
Support Airflow 3.1 by @tatiana in #1980
Add MySQL profile mapping by @Lee2532 in #1977
Add sqlserver profile mapping by @pankajastro in #1737
Enhancement
Use XCom to store sql when using ExecutionMode.AIRFLOW_ASYNC by @pankajastro in #1934
Refactor AIRFLOW_ASYNC teardown so it doesn't install the virtualenv by @pankajastro in #1938
Reuse the virtual env for AIRFLOW_ASYNC setup task by @pankajastro in #1939
Improve dataset/asset experience in Cosmos by @tatiana in #2030
Add downstreams to DbtNode by @wornjs in #2028
Bug fixes
Fix tags extraction by @ms32035 in #1915
Fix task flow operator args by @anyapriya in #2024
Documentation
Add documentation for Airflow 3 Plugin supporting dbt docs for multiple dbt projects by @pankajkoti in #2063
Add Cosmos Deferrable Operator Guide by @pankajastro in #1922
Add dbt Fusion documentation by @tatiana in #1824 #1830
Update dbt-fusion.rst to explicitly highlight it is in alpha by @tatiana in https://github.com/astronomer/astronomer-cosmos/pull/1838
Fix a bunch of docs build errors and warnings by @pankajkoti in https://github.com/astronomer/astronomer-cosmos/pull/1886
Add docs note for param virtualenv_dir for async execution mode by @pankajastro in #1969
Use pepy.tech downloads badge in README by @pankajkoti in #1920
Correct the default value of cache_dir by @seokyun.ha in #2027
Improve ExecutionMode.WATCHER docs by @tatiana in #2071
Others
Promote @corsettigyg to committer by @tatiana in #1985
Add @pankajkoti and @pankajastro to contributors.rst by @tatiana in #1983
Update setup script for airflow3 script by @dwreeves in #2023
Prevent pytest from trying to test classes that aren't actually tests by @anyapriya in #2032
Fix dag.test() for Airflow 3.1+ by syncing DAG to database by @kaxil in #2037
Disable Scarf in CI by @pankajastro in #2016
Fix failing dbt Fusion tests when run in parallel in CI by @pankajkoti in https://github.com/astronomer/astronomer-cosmos/pull/1896
Fix MyPy issues related to ObjectStoragePath in main branch by @tatiana in #2012
Cleanup example dbt event JSON dictionaries kept for XCOM reference by @pankajkoti in #1997
Bump min hatch version that includes fixes for click>=8.3.0 by @pankajkoti in #1996
Use official postgres image from Docker hub for kubernetes setup by @pankajkoti in #1986
Use click<8.3.0 for hatch as click 8.3 breaks hatch by @pankajkoti in #1987
Pin Airflow version in type check CI job by @pankajastro in #2003
Improve comments after feedback on #1948 by @tatiana in #1963
Fix running tests with dbt Fusion 2.0.0 preview versions by @tatiana in #1948
Test hardening of dbt node having tags as unset or missing by @pankajkoti in #1918
Fix Sphinx issue in the main branch by @tatiana in #2064
pre-commit autoupdate in #2065, #2043, #2033, #2019, #1990, #2019, #2008, #1941, #1935, #1924
GitHub dependabot update in #2051, #2050, #2038, #2022, #1947, #1955, #1946, #1944, #1945, #1928, #1921, #1917
Nothing published for this version
Failured fixes in fix_1960_additional_fixes
Failured fixes in fix_1960_additional_fixes
Latest improvements on ExecutionMode.WATCHER
Latest improvements on ExecutionMode.WATCHER
Includes fixes based on early feedback on ExecutionMode.WATCHER:
Includes fixes based on early feedback on ExecutionMode.WATCHER:
Fixed issues with DbtTaskGroup and ExecutionMode.WATCHER when there is an upstream task to the task group. Airflow 3.1 support is close to completion.
Fixed issues with DbtTaskGroup and ExecutionMode.WATCHER when there is an upstream task to the task group.
Airflow 3.1 support is close to completion.
Cut from af-31.
Improvement on DbtTaskGroup with ExecutionMode.WATCHER and Airflow 3.1 support - cut from af-31 branch.
Improvement on DbtTaskGroup with ExecutionMode.WATCHER and Airflow 3.1 support - cut from af-31 branch.
cut from branch: af3-plugin-draft PR: https://github.com/astronomer/astronomer-cosmos/pull/2009
cut from branch: af3-plugin-draft PR: https://github.com/astronomer/astronomer-cosmos/pull/2009
cut from branch: af3-plugin-draft PR: https://github.com/astronomer/astronomer-cosmos/pull/2009
cut from branch: af3-plugin-draft PR: https://github.com/astronomer/astronomer-cosmos/pull/2009
Introduce ExecutionMode.WATCHER to reduce DAG run time by 1/5 in several PRs, including:
Features
ExecutionMode.WATCHER to reduce DAG run time by 1/5 in several PRs, including:
DbtProducerWatcherOperator for the proposed ExecutionMode.WATCHER by @pankajkoti in #1982DbtConsumerWatcherSensor for the proposed ExecutionMode.WATCHER by @pankajastro in #1998DbtProducerWatcherOperator by @pankajkoti in #1995dbt Fusion by @tatiana in #1803. More details here. <https://astronomer.github.io/astronomer-cosmos/configuration/dbt-fusion>_.dbt_cmd_flags by @skillicinski in #1899Enhancement
ExecutionMode.AIRFLOW_ASYNC by @pankajastro in #1934AIRFLOW_ASYNC teardown so it doesn't install the virtualenv by @pankajastro in #1938AIRFLOW_ASYNC setup task by @pankajastro in #1939Bug fixes
Documentation
pepy.tech downloads badge in README by @pankajkoti in #1920Others
contributors.rst by @tatiana in #1983ObjectStoragePath in main branch by @tatiana in #2012Set bq deferrable false for testing (bq_sync_mode)
Set bq deferrable false for testing (bq_sync_mode)
Reuse the virtual env for the AIRFLOW_ASYNC setup task PR: https://github.com/astronomer/astronomer-cosmos/pull/1939
Reuse the virtual env for the AIRFLOW_ASYNC setup task PR: https://github.com/astronomer/astronomer-cosmos/pull/1939
Your coding agent can read these notes before it upgrades. Set up the MCP server →