// Re-render the PNG image with:
//
// dot -Tpng new-design-workflow.dot -o new-design-workflow.png
digraph {
nodesep = 1.5;
// Nodes
start [shape = "point", style = "invis", width = 0];
proposed [label = <Design Proposed>, shape = "circle", style = "filled", fillcolor = "#c5def5"];
accepted [label = <Design Accepted>, shape = "circle", style = "filled", fillcolor = "#c5def5"];
closed [label = <Closed>, shape = "doublecircle", style = "filled", fillcolor = "#f48b9b"];
wip_impl [label = <WIP Implementation>, shape = "circle", style = "filled", fillcolor = "#c5def5"];
changes_needed [label = <Changes Needed>, shape = "circle", style = "filled", fillcolor = "#c5def5"];
merged [label = <Merged into Gloo>, shape = "doublecircle", style = "filled", fillcolor = "#0be27e"];
// Edges
start -> proposed [label = <
📝 Propose API Design |
Explain motivation and use cases |
Alternatives and rationale |
Uses API proposal template |
>];
proposed -> proposed [label = <
💬 Design Discussion |
Determine public types and function signatures |
Are the abstractions zero-cost? |
Does it expose the onion layers? |
Work towards consensus |
>];
proposed -> closed [label = <
❌ Rejected |
Fatal flaw discovered |
Consensus this doesn't belong in Gloo |
>];
proposed -> closed [label = <
📆 Delayed |
Promising, but don't want to focus on it now |
Blocked on something else |
>];
proposed -> accepted [label = <
✔ Accepted |
Consensus we want this design |
Clear how we will implement it |
2 or more team members sign off |
0 team members register concerns |
>];
accepted -> wip_impl [label = <
🔨 Pull Request Created |
Adds new ianaio_whatever crate |
Adds tests/docs/examples |
>];
wip_impl -> changes_needed [label = <
🤔 Changes Requested |
Missing docs/examples/tests |
CI is failing |
>];
changes_needed -> wip_impl [label = <
😂 Feedback Addressed |
Tests/docs/examples fixed |
CI is green |
>];
wip_impl -> merged [label = <
🎉 Merge |
All crate checklist items are checked |
CI is green |
At least 1 team member approves and merges PR |
>];
}