From c38021502e32fc82cde2254b5cc3486ca3ea09f4 Mon Sep 17 00:00:00 2001 From: Trent Nelson Date: Mon, 12 Oct 2020 15:06:14 -0600 Subject: [PATCH] CI: Fix crate publication --- ci/order-crates-for-publishing.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ci/order-crates-for-publishing.py b/ci/order-crates-for-publishing.py index b28e8848e7..efa5e0aca3 100755 --- a/ci/order-crates-for-publishing.py +++ b/ci/order-crates-for-publishing.py @@ -42,10 +42,10 @@ def get_packages(): sys.exit(1) # Order dependencies - deleted_dependencies = [] sorted_dependency_graph = [] max_iterations = pow(len(dependency_graph),2) - while len(deleted_dependencies) < len(dependency_graph): + while dependency_graph: + deleted_packages = [] if max_iterations == 0: # One day be more helpful and find the actual cycle for the user... sys.exit('Error: Circular dependency suspected between these packages: \n {}\n'.format('\n '.join(dependency_graph.keys()))) @@ -53,13 +53,17 @@ def get_packages(): max_iterations -= 1 for package, dependencies in dependency_graph.items(): + if package in deleted_packages: + continue for dependency in dependencies: if dependency in dependency_graph: break else: - deleted_dependencies.append(package) + deleted_packages.append(package) sorted_dependency_graph.append((package, manifest_path[package])) + dependency_graph = {p: d for p, d in dependency_graph.items() if not p in deleted_packages } + return sorted_dependency_graph