From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web10.1043.1576266291545149985 for ; Fri, 13 Dec 2019 11:44:51 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: michael.d.kinney@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Dec 2019 11:44:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,309,1571727600"; d="scan'208";a="226375820" Received: from unknown (HELO mdkinney-MOBL2.amr.corp.intel.com) ([10.241.98.74]) by orsmga002.jf.intel.com with ESMTP; 13 Dec 2019 11:44:50 -0800 From: "Michael D Kinney" To: devel@edk2.groups.io Cc: Ray Ni , Bob Feng , Liming Gao , Sean Brogan , Bret Barkelew Subject: [Patch 0/1] BaseTools/Scripts: Add package dependency graphing tool Date: Fri, 13 Dec 2019 11:44:48 -0800 Message-Id: <20191213194449.7036-1-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.21.0.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit https://bugzilla.tianocore.org/show_bug.cgi?id=2161 Add python script that recursively scans a directory for EDK II packages and generates GraphViz dot input that is used to render a graph of package dependencies in SVG format. Detects following error/warning conditions: * Ambiguous dependencies (multiple matches) * Unresolved dependencies * Circular dependencies * Nested packages Links to sample graphs https://github.com/mdkinney/edk2/wiki/images/edk2.svg?sanitize=true https://github.com/mdkinney/edk2/wiki/images/edk2-SkipPlatforms.svg?sanitize=true https://github.com/mdkinney/edk2/wiki/images/edk2-SkipPlatformsAndArm.svg?sanitize=true https://github.com/mdkinney/edk2/wiki/images/edk2-platforms.svg?sanitize=true https://github.com/mdkinney/edk2/wiki/images/edk2-platforms-HideUnresolved.svg?sanitize=true https://github.com/mdkinney/edk2/wiki/images/edk2-platforms-AddBinariesHideUnresolved.svg?sanitize=true https://github.com/mdkinney/edk2/wiki/images/edk2-non-osi.svg?sanitize=true https://github.com/mdkinney/edk2/wiki/images/FSP.svg?sanitize=true https://github.com/mdkinney/edk2/wiki/images/all.svg?sanitize=true This patch is available for review at the following branch: https://github.com/mdkinney/edk2/tree/Bug_2161_PackageDependencyGraph A proposed update to the EDK II Packages wiki page that adds details on package dependency rules that this tool can help to visualize and resolve issues. https://github.com/mdkinney/edk2/wiki/EDKII-Packages A new wiki page with graphs from the current EDK II repos and instructions on how to use this new script to generate the graphs. Complex graphs can be saved locally and viewed with an SVG viewer. https://github.com/mdkinney/edk2/wiki/EDK-II-Package-Dependency-Graphs Cc: Ray Ni Cc: Bob Feng Cc: Liming Gao Cc: Sean Brogan Cc: Bret Barkelew Signed-off-by: Michael D Kinney Michael D Kinney (1): BaseTools/Scripts: Add package dependency graphing tool BaseTools/Scripts/PackageDependencyGraph.py | 296 ++++++++++++++++++++ 1 file changed, 296 insertions(+) create mode 100644 BaseTools/Scripts/PackageDependencyGraph.py -- 2.21.0.windows.1