From 4e6f63bdce48c17a65d62d3a00fb49ac50b7d292 Mon Sep 17 00:00:00 2001 From: Vincent-Dalstra <51883563+Vincent-Dalstra@users.noreply.github.com> Date: Wed, 17 Sep 2025 14:48:39 +0800 Subject: [PATCH 1/2] fix: Add quotes around node ID in dependency graph Graphviz node ID's are represented as strings, that can only use a restricted set of characters (characters, digits, and underscores), and must not match a reserved keyword. These restrictions do not apply when the string is wrapped in double quotes. This allows for component names with dashes in them, for example. Closes https://github.com/espressif/esp-idf/pull/17594 --- tools/cmake/depgraph.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/cmake/depgraph.cmake b/tools/cmake/depgraph.cmake index fc312db7ad..9e80666265 100644 --- a/tools/cmake/depgraph.cmake +++ b/tools/cmake/depgraph.cmake @@ -35,10 +35,10 @@ function(depgraph_add_edge dep_from dep_to) # However, show which components are "common" by adding an edge from a node named "common". # If necessary, add a new build property to customize this behavior. if(NOT dep_from IN_LIST common_reqs) - idf_build_set_property(__BUILD_COMPONENT_DEPGRAPH "common -> ${dep_to}" APPEND) + idf_build_set_property(__BUILD_COMPONENT_DEPGRAPH "\"common\" -> \"${dep_to}\"" APPEND) endif() else() - idf_build_set_property(__BUILD_COMPONENT_DEPGRAPH "${dep_from} -> ${dep_to} ${attr}" APPEND) + idf_build_set_property(__BUILD_COMPONENT_DEPGRAPH "\"${dep_from}\" -> \"${dep_to}\" ${attr}" APPEND) endif() endfunction() From f5fccb7f3d219e81727416919921cb03da9b432c Mon Sep 17 00:00:00 2001 From: Frantisek Hrbata Date: Tue, 23 Sep 2025 08:40:14 +0200 Subject: [PATCH 2/2] fix(test_apps): reflect changes in component_deps.dot in the g1_components test The commit 51f3c021158d ("Add quotes around node ID in dependency graph") introduced proper quoting for node IDs in the generated dot file. Since the dot format does not allow dashes in node names without quoting, and dashes are used in component names, the component names in the generated dot file are now correctly quoted. Adjust the g1_components test to accommodate this change by stripping the quotes. Signed-off-by: Frantisek Hrbata --- tools/test_apps/system/g1_components/check_dependencies.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/test_apps/system/g1_components/check_dependencies.py b/tools/test_apps/system/g1_components/check_dependencies.py index 3f0e8e7c1b..08a7f310f2 100644 --- a/tools/test_apps/system/g1_components/check_dependencies.py +++ b/tools/test_apps/system/g1_components/check_dependencies.py @@ -26,8 +26,8 @@ def parse_dependencies(file_path: str) -> Tuple[Dict[str, List[str]], List[str]] parts = line.split(' -> ') if (len(parts) >= 2): - source = parts[0] - target = parts[1].split()[0] # Extracting the target component + source = parts[0].strip('"') + target = parts[1].split()[0].strip('"') # Extracting the target component logging.debug(f'Parsed dependency: {source} -> {target}') # Check that g1/g0 dependencies are either on the list of expected violations