From 3ec79fbf789ce04daf2169baa24af67c2305af75 Mon Sep 17 00:00:00 2001 From: Pierre Chalamet Date: Sun, 15 Jun 2025 23:38:15 +0200 Subject: [PATCH] add colors on mermaid --- src/Terrabuild/Core/Build.fs | 16 ++++++------- src/Terrabuild/Core/Builder.fs | 5 ++-- src/Terrabuild/Core/Configuration.fs | 6 ++--- src/Terrabuild/Core/GraphDef.fs | 3 ++- src/Terrabuild/Core/Mermaid.fs | 24 ++++++++++++++++++- src/Terrabuild/Core/Notification.fs | 2 +- .../results/terrabuild-debug.build-graph.json | 14 +++++------ .../terrabuild-debug.build-graph.mermaid | 9 ++++++- .../results/terrabuild-debug.config.json | 14 +++++------ .../results/terrabuild-debug.build-graph.json | 6 ++--- .../terrabuild-debug.build-graph.mermaid | 5 +++- .../results/terrabuild-debug.config.json | 6 ++--- .../results/terrabuild-debug.build-graph.json | 22 +++++++++-------- .../terrabuild-debug.build-graph.mermaid | 16 ++++++++++--- .../results/terrabuild-debug.config.json | 20 ++++++++-------- 15 files changed, 107 insertions(+), 61 deletions(-) diff --git a/src/Terrabuild/Core/Build.fs b/src/Terrabuild/Core/Build.fs index b74e35d1..7cbf8d7e 100644 --- a/src/Terrabuild/Core/Build.fs +++ b/src/Terrabuild/Core/Build.fs @@ -169,7 +169,7 @@ let run (options: ConfigOptions.Options) (cache: Cache.ICache) (api: Contracts.I let cacheEntryId = GraphDef.buildCacheKey node let projectDirectory = - match node.Project with + match node.ProjectDir with | FS.Directory projectDirectory -> projectDirectory | FS.File projectFile -> projectFile |> FS.parentDirectory |> Option.get | _ -> "." @@ -200,7 +200,7 @@ let run (options: ConfigOptions.Options) (cache: Cache.ICache) (api: Contracts.I let successful = lastStatusCode = 0 let endedAt = DateTime.UtcNow let summary = - { Cache.TargetSummary.Project = node.Project + { Cache.TargetSummary.Project = node.ProjectDir Cache.TargetSummary.Target = node.Target Cache.TargetSummary.Operations = [ stepLogs |> List.ofSeq ] Cache.TargetSummary.Outputs = outputs @@ -213,9 +213,9 @@ let run (options: ConfigOptions.Options) (cache: Cache.ICache) (api: Contracts.I notification.NodeUploading node // create an archive with new files - Log.Debug("{NodeId}: Building '{Project}/{Target}' with {Hash}", node.Id, node.Project, node.Target, node.TargetHash) + Log.Debug("{NodeId}: Building '{Project}/{Target}' with {Hash}", node.Id, node.ProjectDir, node.Target, node.TargetHash) let files = cacheEntry.Complete summary - api |> Option.iter (fun api -> api.AddArtifact node.Project node.Target node.ProjectHash node.TargetHash files successful) + api |> Option.iter (fun api -> api.AddArtifact node.ProjectDir node.Target node.ProjectHash node.TargetHash files successful) match lastStatusCode with | 0 -> TaskStatus.Success endedAt @@ -237,7 +237,7 @@ let run (options: ConfigOptions.Options) (cache: Cache.ICache) (api: Contracts.I notification.NodeDownloading node match cache.TryGetSummary allowRemoteCache cacheEntryId with | Some summary -> - Log.Debug("{NodeId} restoring '{Project}/{Target}' from {Hash}", node.Id, node.Project, node.Target, node.TargetHash) + Log.Debug("{NodeId} restoring '{Project}/{Target}' from {Hash}", node.Id, node.ProjectDir, node.Target, node.TargetHash) match summary.Outputs with | Some outputs -> let files = IO.enumerateFiles outputs @@ -253,7 +253,7 @@ let run (options: ConfigOptions.Options) (cache: Cache.ICache) (api: Contracts.I let restorable = Restorable(callback, dependencies) restorables.TryAdd(node.Id, restorable) |> ignore else - Log.Debug("{NodeId} skipping restore '{Project}/{Target}' from {Hash}", node.Id, node.Project, node.Target, node.TargetHash) + Log.Debug("{NodeId} skipping restore '{Project}/{Target}' from {Hash}", node.Id, node.ProjectDir, node.Target, node.TargetHash) if summary.IsSuccessful then TaskStatus.Success summary.EndedAt else TaskStatus.Failure (summary.EndedAt, $"Restored node {node.Id} with a build in failure state") | _ -> @@ -353,7 +353,7 @@ let run (options: ConfigOptions.Options) (cache: Cache.ICache) (api: Contracts.I | true, (request, status) -> { NodeInfo.Request = request NodeInfo.Status = status - NodeInfo.Project = node.Project + NodeInfo.Project = node.ProjectDir NodeInfo.Target = node.Target NodeInfo.ProjectHash = node.ProjectHash NodeInfo.TargetHash = node.TargetHash } |> Some @@ -401,7 +401,7 @@ let loadSummary (options: ConfigOptions.Options) (cache: Cache.ICache) (graph: G { NodeInfo.Request = TaskRequest.Restore NodeInfo.Status = status - NodeInfo.Project = node.Project + NodeInfo.Project = node.ProjectDir NodeInfo.Target = node.Target NodeInfo.ProjectHash = node.ProjectHash NodeInfo.TargetHash = node.TargetHash } |> Some diff --git a/src/Terrabuild/Core/Builder.fs b/src/Terrabuild/Core/Builder.fs index 171ad326..496dcf31 100644 --- a/src/Terrabuild/Core/Builder.fs +++ b/src/Terrabuild/Core/Builder.fs @@ -126,9 +126,10 @@ let build (options: ConfigOptions.Options) (configuration: Configuration.Workspa let node = { Node.Id = nodeId - Node.Label = $"{targetName} {projectConfig.Name}" + Node.Label = $"{targetName} {projectConfig.Directory}" - Node.Project = projectConfig.Name + Node.ProjectId = projectConfig.Id + Node.ProjectDir = projectConfig.Directory Node.Target = targetName Node.ConfigurationTarget = target Node.Operations = ops diff --git a/src/Terrabuild/Core/Configuration.fs b/src/Terrabuild/Core/Configuration.fs index ef0950b0..017114f0 100644 --- a/src/Terrabuild/Core/Configuration.fs +++ b/src/Terrabuild/Core/Configuration.fs @@ -39,7 +39,7 @@ type Target = { [] type Project = { Id: string option - Name: string + Directory: string Hash: string Dependencies: string set Files: string set @@ -569,7 +569,7 @@ let private finalizeProject projectDir evaluationContext (projectDef: LoadedProj let projectDependencies = projectDependencies.Keys |> Seq.map String.toLower |> Set.ofSeq { Project.Id = projectDef.Id - Project.Name = projectDir + Project.Directory = projectDir Project.Hash = projectHash Project.Dependencies = projectDependencies Project.Files = files @@ -660,7 +660,7 @@ let read (options: ConfigOptions.Options) = // build task & code & notify let dependsOnProjects = awaitedProjectSignals - |> Seq.map (fun projectDependency -> projectDependency.Value.Name, projectDependency.Value) + |> Seq.map (fun projectDependency -> projectDependency.Value.Directory, projectDependency.Value) |> Map.ofSeq let project = finalizeProject projectDir evaluationContext loadedProject dependsOnProjects diff --git a/src/Terrabuild/Core/GraphDef.fs b/src/Terrabuild/Core/GraphDef.fs index c67810bc..ad533e0a 100644 --- a/src/Terrabuild/Core/GraphDef.fs +++ b/src/Terrabuild/Core/GraphDef.fs @@ -16,7 +16,8 @@ type Node = { Id: string Label: string - Project: string + ProjectId: string option + ProjectDir: string Target: string ConfigurationTarget: Configuration.Target diff --git a/src/Terrabuild/Core/Mermaid.fs b/src/Terrabuild/Core/Mermaid.fs index 17f0dd8d..b6e57d4a 100644 --- a/src/Terrabuild/Core/Mermaid.fs +++ b/src/Terrabuild/Core/Mermaid.fs @@ -1,5 +1,6 @@ module Mermaid open GraphDef +open System @@ -7,6 +8,21 @@ type GetStatus = Node -> string type GetOrigin = Node -> Build.TaskRequest option + +let scaleToPastel (value: int) : int = + // Map from [0, 255] to [160, 240] + 160 + (value * (240 - 160) / 255) + +let pastelColorFromHash (md5hash: string) : string = + if md5hash.Length < 6 then + invalidArg "md5hash" "MD5 hash string must be at least 6 characters long" + + let r = Convert.ToInt32(md5hash.Substring(0, 2), 16) |> scaleToPastel + let g = Convert.ToInt32(md5hash.Substring(2, 2), 16) |> scaleToPastel + let b = Convert.ToInt32(md5hash.Substring(4, 2), 16) |> scaleToPastel + + $"#{r:X2}{g:X2}{b:X2}" + let render (getStatus: GetStatus option) (getOrigin: GetOrigin option) (graph: Graph) = let mermaid = [ "flowchart TD" @@ -20,7 +36,11 @@ let render (getStatus: GetStatus option) (getOrigin: GetOrigin option) (graph: G |> Option.map (fun getNodeStatus -> getNodeStatus node) |> Option.defaultValue "" - $"{node.Id}(\"{node.Target} {status}\n{node.Project}\")" + let nodeTitle = + match node.ProjectId with + | None -> node.Target + | Some projectId -> $"{node.Target} {projectId}" + $"{node.Id}(\"{nodeTitle} {status}\n{node.ProjectDir}\")" for (KeyValue(_, node)) in graph.Nodes do for dependency in node.Dependencies do @@ -35,6 +55,8 @@ let render (getStatus: GetStatus option) (getOrigin: GetOrigin option) (graph: G | Some Build.TaskRequest.Build -> $"class {node.Id} build" | Some Build.TaskRequest.Restore -> $"class {node.Id} restore" | _ -> $"class {node.Id} ignore" + let color = node.ProjectDir |> Hash.md5 |> pastelColorFromHash + $"style {node.Id} fill:{color}" ] mermaid diff --git a/src/Terrabuild/Core/Notification.fs b/src/Terrabuild/Core/Notification.fs index f14ec623..1f38c348 100644 --- a/src/Terrabuild/Core/Notification.fs +++ b/src/Terrabuild/Core/Notification.fs @@ -65,7 +65,7 @@ type BuildNotification() = return! messageLoop () | PrinterProtocol.NodeCompleted (node, status, success) -> - let label = $"{node.Label} {node.Project}" + let label = $"{node.Label} {node.ProjectDir}" renderer.Complete node.TargetHash label success (status = Build.TaskRequest.Restore) scheduleUpdate () return! messageLoop () diff --git a/tests/cluster-layers/results/terrabuild-debug.build-graph.json b/tests/cluster-layers/results/terrabuild-debug.build-graph.json index df1b8041..cf37c4a1 100644 --- a/tests/cluster-layers/results/terrabuild-debug.build-graph.json +++ b/tests/cluster-layers/results/terrabuild-debug.build-graph.json @@ -3,7 +3,7 @@ "a:build": { "id": "a:build", "label": "build A", - "project": "A", + "projectDir": "A", "target": "build", "configurationTarget": { "hash": "34215119A4D68DB3B1137C90704FFA326799B219AE86B2DE93A123F6FEDCF68B", @@ -84,7 +84,7 @@ "b:build": { "id": "b:build", "label": "build B", - "project": "B", + "projectDir": "B", "target": "build", "configurationTarget": { "hash": "34215119A4D68DB3B1137C90704FFA326799B219AE86B2DE93A123F6FEDCF68B", @@ -165,7 +165,7 @@ "c:build": { "id": "c:build", "label": "build C", - "project": "C", + "projectDir": "C", "target": "build", "configurationTarget": { "hash": "E970FB6D3CCDCEE5AB6C4BAAB40D38439BDA75E6635D1B81F9A9DF7AFA6286C4", @@ -246,7 +246,7 @@ "d:build": { "id": "d:build", "label": "build D", - "project": "D", + "projectDir": "D", "target": "build", "configurationTarget": { "hash": "F9B0B5708DFC227889BB22353D3EC4D1C1A57C07439470229E286568F031D11A", @@ -307,7 +307,7 @@ "e:build": { "id": "e:build", "label": "build E", - "project": "E", + "projectDir": "E", "target": "build", "configurationTarget": { "hash": "F9B0B5708DFC227889BB22353D3EC4D1C1A57C07439470229E286568F031D11A", @@ -368,7 +368,7 @@ "f:build": { "id": "f:build", "label": "build F", - "project": "F", + "projectDir": "F", "target": "build", "configurationTarget": { "hash": "8F9422FFE2A136EC80F0C31D42C172CA05826D7DAFBB18BBCE27B1719A82AE1E", @@ -427,7 +427,7 @@ "g:build": { "id": "g:build", "label": "build G", - "project": "G", + "projectDir": "G", "target": "build", "configurationTarget": { "hash": "8F9422FFE2A136EC80F0C31D42C172CA05826D7DAFBB18BBCE27B1719A82AE1E", diff --git a/tests/cluster-layers/results/terrabuild-debug.build-graph.mermaid b/tests/cluster-layers/results/terrabuild-debug.build-graph.mermaid index edc8e9aa..997bcc54 100644 --- a/tests/cluster-layers/results/terrabuild-debug.build-graph.mermaid +++ b/tests/cluster-layers/results/terrabuild-debug.build-graph.mermaid @@ -17,16 +17,23 @@ F") g:build("build G") class a:build ignore +style a:build fill:#C7DDBE class b:build ignore +style b:build fill:#D1BDE3 c:build --> a:build c:build --> b:build class c:build ignore +style c:build fill:#A4BEED d:build --> c:build class d:build ignore +style d:build fill:#EDAAE8 e:build --> c:build class e:build ignore +style e:build fill:#B2B3D2 f:build --> d:build f:build --> e:build class f:build ignore +style f:build fill:#C8A1A7 g:build --> c:build -class g:build ignore \ No newline at end of file +class g:build ignore +style g:build fill:#E5E0AC \ No newline at end of file diff --git a/tests/cluster-layers/results/terrabuild-debug.config.json b/tests/cluster-layers/results/terrabuild-debug.config.json index 0e0fbeb9..b5c70ef4 100644 --- a/tests/cluster-layers/results/terrabuild-debug.config.json +++ b/tests/cluster-layers/results/terrabuild-debug.config.json @@ -15,7 +15,7 @@ }, "projects": { "a": { - "name": "A", + "directory": "A", "hash": "CE24C7D4BBCA45AE8BB4AACDA925C35DD828536AFAF55FB15271EB0F1FA52EAA", "dependencies": [], "files": [ @@ -72,7 +72,7 @@ "labels": [] }, "b": { - "name": "B", + "directory": "B", "hash": "C54887690548A58E1E6220C83D97E3239943F79A4C51A0DFC7087DE52F57577A", "dependencies": [], "files": [ @@ -129,7 +129,7 @@ "labels": [] }, "c": { - "name": "C", + "directory": "C", "hash": "76C8F07B90D3785DD412BAF3BBCBD4B054084FA4B952DFE658A8073B15BA19C1", "dependencies": [ "a", @@ -184,7 +184,7 @@ "labels": [] }, "d": { - "name": "D", + "directory": "D", "hash": "81597327F78177AB91ED77989DF8373BF7138BDE82CB6D59BA1C5BD9994BE255", "dependencies": [ "c" @@ -227,7 +227,7 @@ "labels": [] }, "e": { - "name": "E", + "directory": "E", "hash": "D9ADE2A1821B9D2BBBB534435F6FF3CA40296AD7BFEED2094FD0460B9DCCB98C", "dependencies": [ "c" @@ -270,7 +270,7 @@ "labels": [] }, "f": { - "name": "F", + "directory": "F", "hash": "84D7C7DEABFE38F3471D9D74526A46F2344BA0C7A641CFDA3C43E16DC10DCB3D", "dependencies": [ "d", @@ -309,7 +309,7 @@ "labels": [] }, "g": { - "name": "G", + "directory": "G", "hash": "03ABE717383A7C29E355225594E80D4C9F531BE8F0C5DBAA9C3F7E43C8847761", "dependencies": [ "c" diff --git a/tests/multirefs/results/terrabuild-debug.build-graph.json b/tests/multirefs/results/terrabuild-debug.build-graph.json index 1a12a613..8e4bb130 100644 --- a/tests/multirefs/results/terrabuild-debug.build-graph.json +++ b/tests/multirefs/results/terrabuild-debug.build-graph.json @@ -3,7 +3,7 @@ "a:build": { "id": "a:build", "label": "build A", - "project": "A", + "projectDir": "A", "target": "build", "configurationTarget": { "hash": "8B56DAA76BB451252D58A9AFF5D2E5A77D0568D8681204549E53A422C9FBDBF0", @@ -54,7 +54,7 @@ "b:build": { "id": "b:build", "label": "build B", - "project": "B", + "projectDir": "B", "target": "build", "configurationTarget": { "hash": "8B56DAA76BB451252D58A9AFF5D2E5A77D0568D8681204549E53A422C9FBDBF0", @@ -104,7 +104,7 @@ "c:build": { "id": "c:build", "label": "build C", - "project": "C", + "projectDir": "C", "target": "build", "configurationTarget": { "hash": "8B56DAA76BB451252D58A9AFF5D2E5A77D0568D8681204549E53A422C9FBDBF0", diff --git a/tests/multirefs/results/terrabuild-debug.build-graph.mermaid b/tests/multirefs/results/terrabuild-debug.build-graph.mermaid index 24d95145..2fd316c1 100644 --- a/tests/multirefs/results/terrabuild-debug.build-graph.mermaid +++ b/tests/multirefs/results/terrabuild-debug.build-graph.mermaid @@ -11,6 +11,9 @@ C") a:build --> b:build a:build --> c:build class a:build ignore +style a:build fill:#C7DDBE b:build --> c:build class b:build ignore -class c:build ignore \ No newline at end of file +style b:build fill:#D1BDE3 +class c:build ignore +style c:build fill:#A4BEED \ No newline at end of file diff --git a/tests/multirefs/results/terrabuild-debug.config.json b/tests/multirefs/results/terrabuild-debug.config.json index 9fff08ad..3a43b860 100644 --- a/tests/multirefs/results/terrabuild-debug.config.json +++ b/tests/multirefs/results/terrabuild-debug.config.json @@ -21,7 +21,7 @@ }, "projects": { "a": { - "name": "A", + "directory": "A", "hash": "A7A0CD9E85C9D7AA20838EBF01C91953701319318395EC276A797D66F9AB084D", "dependencies": [ "b", @@ -59,7 +59,7 @@ "labels": [] }, "b": { - "name": "B", + "directory": "B", "hash": "93C4F757BAF84BE922E6F30EBA5A726573E0028C76082652B062DD5EE775EB39", "dependencies": [ "c" @@ -96,7 +96,7 @@ "labels": [] }, "c": { - "name": "C", + "directory": "C", "hash": "D2FFA5DCF08258EA5851EDC06944F88D7C19865C3DF17E09693D7F640B4514FC", "dependencies": [], "files": [], diff --git a/tests/simple/results/terrabuild-debug.build-graph.json b/tests/simple/results/terrabuild-debug.build-graph.json index 3d5f4d7e..85657618 100644 --- a/tests/simple/results/terrabuild-debug.build-graph.json +++ b/tests/simple/results/terrabuild-debug.build-graph.json @@ -3,7 +3,7 @@ "deployments/terraform-deploy:build": { "id": "deployments/terraform-deploy:build", "label": "build deployments/terraform-deploy", - "project": "deployments/terraform-deploy", + "projectDir": "deployments/terraform-deploy", "target": "build", "configurationTarget": { "hash": "339771D0416B0DE57F074F35A58947EC4DF21B15E79871D2231F33753B48C98E", @@ -91,7 +91,7 @@ "libraries/dotnet-lib:build": { "id": "libraries/dotnet-lib:build", "label": "build libraries/dotnet-lib", - "project": "libraries/dotnet-lib", + "projectDir": "libraries/dotnet-lib", "target": "build", "configurationTarget": { "hash": "80456575F34E04D1425875BF90F22EBAB1F3D70EC046398D85B2E66FE96E3FED", @@ -157,7 +157,7 @@ "libraries/npm-lib:build": { "id": "libraries/npm-lib:build", "label": "build libraries/npm-lib", - "project": "libraries/npm-lib", + "projectDir": "libraries/npm-lib", "target": "build", "configurationTarget": { "hash": "A16A69B69BAAD8E5F7446EDA76618622CBB09F32BB4E2CBCFA87748838A6BF30", @@ -216,7 +216,7 @@ "libraries/shell-lib:build": { "id": "libraries/shell-lib:build", "label": "build libraries/shell-lib", - "project": "libraries/shell-lib", + "projectDir": "libraries/shell-lib", "target": "build", "configurationTarget": { "hash": "8B56DAA76BB451252D58A9AFF5D2E5A77D0568D8681204549E53A422C9FBDBF0", @@ -264,7 +264,8 @@ "projects/dotnet-app:build": { "id": "projects/dotnet-app:build", "label": "build projects/dotnet-app", - "project": "projects/dotnet-app", + "projectId": "dotnet_app", + "projectDir": "projects/dotnet-app", "target": "build", "configurationTarget": { "hash": "80456575F34E04D1425875BF90F22EBAB1F3D70EC046398D85B2E66FE96E3FED", @@ -332,7 +333,7 @@ "projects/make-app:build": { "id": "projects/make-app:build", "label": "build projects/make-app", - "project": "projects/make-app", + "projectDir": "projects/make-app", "target": "build", "configurationTarget": { "hash": "C6337486788B3103E3C2737C5C465A151569678B0F79EDBAF65D6409D1FDDCB4", @@ -413,7 +414,7 @@ "projects/npm-app/private-npm-lib:build": { "id": "projects/npm-app/private-npm-lib:build", "label": "build projects/npm-app/private-npm-lib", - "project": "projects/npm-app/private-npm-lib", + "projectDir": "projects/npm-app/private-npm-lib", "target": "build", "configurationTarget": { "hash": "A16A69B69BAAD8E5F7446EDA76618622CBB09F32BB4E2CBCFA87748838A6BF30", @@ -472,7 +473,8 @@ "projects/npm-app:build": { "id": "projects/npm-app:build", "label": "build projects/npm-app", - "project": "projects/npm-app", + "projectId": "npm_app", + "projectDir": "projects/npm-app", "target": "build", "configurationTarget": { "hash": "A16A69B69BAAD8E5F7446EDA76618622CBB09F32BB4E2CBCFA87748838A6BF30", @@ -534,7 +536,7 @@ "projects/open-api:build": { "id": "projects/open-api:build", "label": "build projects/open-api", - "project": "projects/open-api", + "projectDir": "projects/open-api", "target": "build", "configurationTarget": { "hash": "368590893C4C4CB86F11CE435BED211B8E67BBAA776E88A26BA9786A25B48841", @@ -594,7 +596,7 @@ "projects/rust-app:build": { "id": "projects/rust-app:build", "label": "build projects/rust-app", - "project": "projects/rust-app", + "projectDir": "projects/rust-app", "target": "build", "configurationTarget": { "hash": "5F97E6095B871F9045214CFE08ABC4C8E778379ACCA4D34A94079C508D24D5C4", diff --git a/tests/simple/results/terrabuild-debug.build-graph.mermaid b/tests/simple/results/terrabuild-debug.build-graph.mermaid index 5e4bce8f..f91b2fac 100644 --- a/tests/simple/results/terrabuild-debug.build-graph.mermaid +++ b/tests/simple/results/terrabuild-debug.build-graph.mermaid @@ -10,13 +10,13 @@ libraries/npm-lib:build("build libraries/npm-lib") libraries/shell-lib:build("build libraries/shell-lib") -projects/dotnet-app:build("build +projects/dotnet-app:build("build dotnet_app projects/dotnet-app") projects/make-app:build("build projects/make-app") projects/npm-app/private-npm-lib:build("build projects/npm-app/private-npm-lib") -projects/npm-app:build("build +projects/npm-app:build("build npm_app projects/npm-app") projects/open-api:build("build projects/open-api") @@ -25,16 +25,26 @@ projects/rust-app") deployments/terraform-deploy:build --> projects/dotnet-app:build deployments/terraform-deploy:build --> projects/npm-app:build class deployments/terraform-deploy:build ignore +style deployments/terraform-deploy:build fill:#A0BCC4 class libraries/dotnet-lib:build ignore +style libraries/dotnet-lib:build fill:#EBB0AD class libraries/npm-lib:build ignore +style libraries/npm-lib:build fill:#D1A0C4 class libraries/shell-lib:build ignore +style libraries/shell-lib:build fill:#EADDC4 projects/dotnet-app:build --> libraries/dotnet-lib:build class projects/dotnet-app:build ignore +style projects/dotnet-app:build fill:#DEE1C7 projects/make-app:build --> libraries/shell-lib:build class projects/make-app:build ignore +style projects/make-app:build fill:#C5CFA5 class projects/npm-app/private-npm-lib:build ignore +style projects/npm-app/private-npm-lib:build fill:#CEC3A3 projects/npm-app:build --> libraries/npm-lib:build projects/npm-app:build --> projects/npm-app/private-npm-lib:build class projects/npm-app:build ignore +style projects/npm-app:build fill:#D6CED1 class projects/open-api:build ignore -class projects/rust-app:build ignore \ No newline at end of file +style projects/open-api:build fill:#E3CADD +class projects/rust-app:build ignore +style projects/rust-app:build fill:#BDA7A6 \ No newline at end of file diff --git a/tests/simple/results/terrabuild-debug.config.json b/tests/simple/results/terrabuild-debug.config.json index 1d8430a8..0ed9fd47 100644 --- a/tests/simple/results/terrabuild-debug.config.json +++ b/tests/simple/results/terrabuild-debug.config.json @@ -30,7 +30,7 @@ }, "projects": { "deployments/terraform-deploy": { - "name": "deployments/terraform-deploy", + "directory": "deployments/terraform-deploy", "hash": "F3A9EB6371CB5CF5D4ADECED49CC38E177DC187DAFAC17255FA360AA0C015802", "dependencies": [ "projects/dotnet-app", @@ -122,7 +122,7 @@ ] }, "libraries/dotnet-lib": { - "name": "libraries/dotnet-lib", + "directory": "libraries/dotnet-lib", "hash": "4E90121393E74B43D6B727A9F23E3AE10385E7E39F1FBD240CE10180651F6851", "dependencies": [], "files": [ @@ -169,7 +169,7 @@ "labels": [] }, "libraries/npm-lib": { - "name": "libraries/npm-lib", + "directory": "libraries/npm-lib", "hash": "F4DD078C2E78A370777DB3CEB8B90CC3D86F67EB49F30FFB4E9543CAB45CAB54", "dependencies": [], "files": [ @@ -212,7 +212,7 @@ ] }, "libraries/shell-lib": { - "name": "libraries/shell-lib", + "directory": "libraries/shell-lib", "hash": "90DBBB67F0EB0EEBCC7BEB1929682796805120FF8AE0C26C7FF742190F9A469A", "dependencies": [], "files": [], @@ -248,7 +248,7 @@ }, "projects/dotnet-app": { "id": "dotnet_app", - "name": "projects/dotnet-app", + "directory": "projects/dotnet-app", "hash": "B498617AEF0C2FECAD324FC46DA9E3477254472AAE763F9312A6175F8C2AADBA", "dependencies": [ "libraries/dotnet-lib" @@ -379,7 +379,7 @@ ] }, "projects/make-app": { - "name": "projects/make-app", + "directory": "projects/make-app", "hash": "A5BD059BA569E96AFE6AEC3BA05C405B454A3483F1A702D11CA978F318516307", "dependencies": [ "libraries/shell-lib" @@ -444,7 +444,7 @@ }, "projects/npm-app": { "id": "npm_app", - "name": "projects/npm-app", + "directory": "projects/npm-app", "hash": "74131A036F3F33EEEE26AA20561FCF050301FD2E0FE03B62F4CC878AEC169E75", "dependencies": [ "libraries/npm-lib", @@ -502,7 +502,7 @@ ] }, "projects/npm-app/private-npm-lib": { - "name": "projects/npm-app/private-npm-lib", + "directory": "projects/npm-app/private-npm-lib", "hash": "F951BD1663475053E1F9C97DDA08EA553E21951BC053419D362126A2B6A4C83C", "dependencies": [], "files": [ @@ -545,7 +545,7 @@ ] }, "projects/open-api": { - "name": "projects/open-api", + "directory": "projects/open-api", "hash": "B638983BF2E75B9D5787C0082FE7E5BFA726B4B4815F48EE7482E1051275209A", "dependencies": [], "files": [ @@ -593,7 +593,7 @@ "labels": [] }, "projects/rust-app": { - "name": "projects/rust-app", + "directory": "projects/rust-app", "hash": "ABBB61CBAB614EB12FDCBC22A5549A851128357CCA09CB57D74A2D2390E4A043", "dependencies": [], "files": [