From 650c6b85928c5f5832c7f60538746829c7b7b249 Mon Sep 17 00:00:00 2001 From: Manfred Touron <94029+moul@users.noreply.github.com> Date: Thu, 13 Apr 2023 11:50:45 +0200 Subject: [PATCH] feat: add support for milestones Signed-off-by: Manfred Touron <94029+moul@users.noreply.github.com> --- gen-graph/main.go | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/gen-graph/main.go b/gen-graph/main.go index 4a63191..8baa9df 100644 --- a/gen-graph/main.go +++ b/gen-graph/main.go @@ -35,16 +35,21 @@ type task struct { func main() { file, err := ioutil.ReadFile("output/roadmap.json") checkErr(err) - var tasks []task - err = json.Unmarshal(file, &tasks) + var entries []task + err = json.Unmarshal(file, &entries) checkErr(err) - roadmap := make(map[string]task) - for _, t := range tasks { - if t.Kind != 1 { - continue + var ( + tasks = make(map[string]task) + milestones = make(map[string]task) + ) + for _, t := range entries { + switch { + case t.Kind == 1: // issues + tasks[t.ID] = t + case t.Kind == 3: // milestones + milestones[t.ID] = t } - roadmap[t.ID] = t } g := graphviz.New() @@ -59,7 +64,12 @@ func main() { nodes := make(map[string]*cgraph.Node) - for _, task := range roadmap { + for _, milestone := range milestones { + // TODO: group issues by milestone + _ = milestone + } + + for _, task := range tasks { node, err := graph.CreateNode(task.ID) checkErr(err) if task.ID == "https://github.com/gnolang/roadmap/issues/1" { @@ -86,9 +96,9 @@ func main() { nodes[task.ID] = node } - for _, task := range roadmap { + for _, task := range tasks { for _, dependentID := range task.IsBlocking { - dependent := roadmap[dependentID] + dependent := tasks[dependentID] name := task.ID + dependent.ID edge, err := graph.CreateEdge(name, nodes[task.ID], nodes[dependent.ID]) checkErr(err) @@ -96,7 +106,7 @@ func main() { // edge.SetLabel("blocking") } for _, dependingID := range task.IsDependingOn { - depending := roadmap[dependingID] + depending := tasks[dependingID] name := depending.ID + task.ID edge, err := graph.CreateEdge(name, nodes[depending.ID], nodes[task.ID]) checkErr(err)