diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a760e1d95d..66e9af5eaa 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,18 +1,20 @@ Changelog ========= -1.5.0a9 (2024-06-25) --------------------- +1.5.0 (2024-06-27) +------------------ New Features * Speed up ``LoadMode.DBT_LS`` by caching dbt ls output in Airflow Variable by @tatiana in #1014 +* Support to cache profiles created via ``ProfileMapping`` by @pankajastro in #1046 * Support for running dbt tasks in AWS EKS in #944 by @VolkerSchiewe * Add Clickhouse profile mapping by @roadan and @pankajastro in #353 and #1016 * Add node config to TaskInstance Context by @linchun3 in #1044 Bug fixes +* Support partial parsing when cache is disabled by @tatiana in #1070 * Fix disk permission error in restricted env by @pankajastro in #1051 * Add CSP header to iframe contents by @dwreeves in #1055 * Stop attaching log adaptors to root logger to reduce logging costs by @glebkrapivin in #1047 @@ -23,6 +25,10 @@ Enhancements * Support deep linking dbt docs via Airflow UI by @dwreeves in #1038 * Add ability to specify host/port for Snowflake connection by @whummer in #1063 +Docs + +* Fix rendering for env ``enable_cache_dbt_ls`` by @pankajastro in #1069 + Others * Update documentation for DbtDocs generator by @arjunanan6 in #1043 @@ -32,6 +38,7 @@ Others * Mark plugin integration tests as integration by @tatiana in #1057 * Ensure compliance with linting rule D300 by using triple quotes for docstrings by @pankajastro in #1049 * Pre-commit hook updates in #1039, #1050, #1064 +* Remove duplicates in changelog by @jedcunningham in #1068 1.4.3 (2024-06-07) diff --git a/cosmos/__init__.py b/cosmos/__init__.py index ee860228ac..4412702824 100644 --- a/cosmos/__init__.py +++ b/cosmos/__init__.py @@ -5,7 +5,7 @@ Contains dags, task groups, and operators. """ -__version__ = "1.5.0a9" +__version__ = "1.5.0rc2" from cosmos.airflow.dag import DbtDag diff --git a/cosmos/dbt/graph.py b/cosmos/dbt/graph.py index 62b6d88bf0..7c9abbd40d 100644 --- a/cosmos/dbt/graph.py +++ b/cosmos/dbt/graph.py @@ -131,16 +131,20 @@ def parse_dbt_ls_output(project_path: Path | None, ls_stdout: str) -> dict[str, except json.decoder.JSONDecodeError: logger.debug("Skipped dbt ls line: %s", line) else: - node = DbtNode( - unique_id=node_dict["unique_id"], - resource_type=DbtResourceType(node_dict["resource_type"]), - depends_on=node_dict.get("depends_on", {}).get("nodes", []), - file_path=project_path / node_dict["original_file_path"], - tags=node_dict.get("tags", []), - config=node_dict.get("config", {}), - ) - nodes[node.unique_id] = node - logger.debug("Parsed dbt resource `%s` of type `%s`", node.unique_id, node.resource_type) + try: + node = DbtNode( + unique_id=node_dict["unique_id"], + resource_type=DbtResourceType(node_dict["resource_type"]), + depends_on=node_dict.get("depends_on", {}).get("nodes", []), + file_path=project_path / node_dict["original_file_path"], + tags=node_dict.get("tags", []), + config=node_dict.get("config", {}), + ) + except KeyError: + logger.warning("SKIPPING Could not parse the node even though it is a valid JSON `%s`", line) + else: + nodes[node.unique_id] = node + logger.debug("Parsed dbt resource `%s` of type `%s`", node.unique_id, node.resource_type) return nodes