// 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 gloo_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
>]; }