[orchestra] extract graph logic and enhance with cycle detection + coloring (#5614)

* extract graph

* move into scope

* remove dead code

* add special nodes

* avoid some clones

* better doc

* maybe better to use 

* print all cycles, or an error

Currently kosaraju_scc returns invalid cycles, which is yet to be investigated.

* don't print tiny cycles, if there is nothing to unvisited anymore, there is a cycle

* make print better

* fmt ffs

* correct: cycle -> scc

A strongly connected cluster contains at least one cycl, but could include more.
So this should be distringuished in the implementation to avoid some confusion.

* fix loop exit condition

* add a test for kosaraju behavior

* unify on 'component'

* disable graph by default

https://github.com/paritytech/ci_cd/issues/433

* chore: fmt

* move graph only to graph_helpers
This commit is contained in:
Bernhard Schuster
2022-06-06 17:35:31 +01:00
committed by GitHub
parent 425b277273
commit 753d6f29e0
5 changed files with 443 additions and 65 deletions
@@ -16,6 +16,7 @@
use proc_macro2::{Ident, Span, TokenStream};
use syn::{parse_quote, spanned::Spanned, Path};
mod graph;
mod impl_builder;
mod impl_channels_out;
mod impl_message_wrapper;