From 51a70e52f2a3f094da49db8ff4cc0a1d07d94e50 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 12 Oct 2020 23:15:46 +0000 Subject: [PATCH] CI: Fix crate publication (#12825) (cherry picked from commit c38021502e32fc82cde2254b5cc3486ca3ea09f4) Co-authored-by: Trent Nelson --- 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