diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ee721f..6de3496 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,24 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ``` +* The dependency graph roots (i.e. direct package and project references) are now identified with an hexagon shape and stronger borders. + +```mermaid +graph + +classDef root stroke-width:4px +classDef default fill:aquamarine,stroke:#009061,color:#333333 +classDef removed fill:lightcoral,stroke:#A42A2A + +Azure.Identity --> Azure.Core +Microsoft.Data.SqlClient{{Microsoft.Data.SqlClient}} --> Azure.Identity + +class Azure.Core removed +class Azure.Identity removed +class Microsoft.Data.SqlClient root +class Microsoft.Data.SqlClient default +``` + ## [1.0.0][1.0.0] - 2024-04-12 * Fix a crash when MSBuild is running on the desktop .NET Framework diff --git a/README.md b/README.md index 8a1ec14..4943816 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ Specifying the _direct_ dependencies is enough. Looking at the produced graph co ```mermaid graph LR +classDef root stroke-width:4px classDef default fill:aquamarine,stroke:#009061,color:#333333 classDef removed fill:lightcoral,stroke:#A42A2A @@ -100,19 +101,19 @@ DnsClient/1.6.1 --> Microsoft.Win32.Registry/5.0.0 Microsoft.Extensions.Logging.Abstractions/8.0.1 --> Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1 Microsoft.Win32.Registry/5.0.0 --> System.Security.AccessControl/5.0.0 Microsoft.Win32.Registry/5.0.0 --> System.Security.Principal.Windows/5.0.0 -MongoDB.Bson/2.24.0 --> System.Runtime.CompilerServices.Unsafe/6.0.0 -MongoDB.Driver/2.24.0 --> Microsoft.Extensions.Logging.Abstractions/8.0.1 -MongoDB.Driver/2.24.0 --> MongoDB.Bson/2.24.0 -MongoDB.Driver/2.24.0 --> MongoDB.Driver.Core/2.24.0 -MongoDB.Driver/2.24.0 --> MongoDB.Libmongocrypt/1.8.2 -MongoDB.Driver.Core/2.24.0 --> AWSSDK.SecurityToken/3.7.100.14 -MongoDB.Driver.Core/2.24.0 --> DnsClient/1.6.1 -MongoDB.Driver.Core/2.24.0 --> Microsoft.Extensions.Logging.Abstractions/8.0.1 -MongoDB.Driver.Core/2.24.0 --> MongoDB.Bson/2.24.0 -MongoDB.Driver.Core/2.24.0 --> MongoDB.Libmongocrypt/1.8.2 -MongoDB.Driver.Core/2.24.0 --> SharpCompress/0.30.1 -MongoDB.Driver.Core/2.24.0 --> Snappier/1.0.0 -MongoDB.Driver.Core/2.24.0 --> ZstdSharp.Port/0.7.3 +MongoDB.Bson/2.28.0 --> System.Runtime.CompilerServices.Unsafe/5.0.0 +MongoDB.Driver/2.28.0{{MongoDB.Driver/2.28.0}} --> Microsoft.Extensions.Logging.Abstractions/8.0.1 +MongoDB.Driver/2.28.0{{MongoDB.Driver/2.28.0}} --> MongoDB.Bson/2.28.0 +MongoDB.Driver/2.28.0{{MongoDB.Driver/2.28.0}} --> MongoDB.Driver.Core/2.28.0 +MongoDB.Driver/2.28.0{{MongoDB.Driver/2.28.0}} --> MongoDB.Libmongocrypt/1.11.0 +MongoDB.Driver.Core/2.28.0 --> AWSSDK.SecurityToken/3.7.100.14 +MongoDB.Driver.Core/2.28.0 --> DnsClient/1.6.1 +MongoDB.Driver.Core/2.28.0 --> Microsoft.Extensions.Logging.Abstractions/8.0.1 +MongoDB.Driver.Core/2.28.0 --> MongoDB.Bson/2.28.0 +MongoDB.Driver.Core/2.28.0 --> MongoDB.Libmongocrypt/1.11.0 +MongoDB.Driver.Core/2.28.0 --> SharpCompress/0.30.1 +MongoDB.Driver.Core/2.28.0 --> Snappier/1.0.0 +MongoDB.Driver.Core/2.28.0 --> ZstdSharp.Port/0.7.3 System.Security.AccessControl/5.0.0 --> System.Security.Principal.Windows/5.0.0 class AWSSDK.Core/3.7.100.14 removed @@ -121,13 +122,14 @@ class DnsClient/1.6.1 default class Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1 default class Microsoft.Extensions.Logging.Abstractions/8.0.1 default class Microsoft.Win32.Registry/5.0.0 default -class MongoDB.Bson/2.24.0 default -class MongoDB.Driver/2.24.0 default -class MongoDB.Driver.Core/2.24.0 default -class MongoDB.Libmongocrypt/1.8.2 default +class MongoDB.Bson/2.28.0 default +class MongoDB.Driver/2.28.0 root +class MongoDB.Driver/2.28.0 default +class MongoDB.Driver.Core/2.28.0 default +class MongoDB.Libmongocrypt/1.11.0 default class SharpCompress/0.30.1 default class Snappier/1.0.0 default -class System.Runtime.CompilerServices.Unsafe/6.0.0 default +class System.Runtime.CompilerServices.Unsafe/5.0.0 default class System.Security.AccessControl/5.0.0 default class System.Security.Principal.Windows/5.0.0 default class ZstdSharp.Port/0.7.3 default @@ -154,11 +156,13 @@ As with the MongoDB driver, specifying the three _direct_ dependencies is enough ```mermaid graph LR +classDef root stroke-width:4px classDef default fill:aquamarine,stroke:#009061,color:#333333 classDef project fill:skyblue,stroke:#05587C classDef removed fill:lightcoral,stroke:#A42A2A Azure.Core --> Microsoft.Bcl.AsyncInterfaces +Azure.Core --> System.ClientModel Azure.Core --> System.Diagnostics.DiagnosticSource Azure.Core --> System.Memory.Data Azure.Core --> System.Text.Encodings.Web @@ -168,15 +172,15 @@ Azure.Identity --> Microsoft.Identity.Client Azure.Identity --> Microsoft.Identity.Client.Extensions.Msal Azure.Identity --> System.Security.Cryptography.ProtectedData Azure.Identity --> System.Text.Json -Microsoft.Data.SqlClient --> Azure.Identity -Microsoft.Data.SqlClient --> Microsoft.Identity.Client -Microsoft.Data.SqlClient --> Microsoft.IdentityModel.JsonWebTokens -Microsoft.Data.SqlClient --> Microsoft.IdentityModel.Protocols.OpenIdConnect -Microsoft.Data.SqlClient --> Microsoft.SqlServer.Server -Microsoft.Data.SqlClient --> System.Configuration.ConfigurationManager -Microsoft.Data.SqlClient --> System.Runtime.Caching +Microsoft.Data.SqlClient{{Microsoft.Data.SqlClient}} --> Azure.Identity +Microsoft.Data.SqlClient{{Microsoft.Data.SqlClient}} --> Microsoft.Identity.Client +Microsoft.Data.SqlClient{{Microsoft.Data.SqlClient}} --> Microsoft.IdentityModel.JsonWebTokens +Microsoft.Data.SqlClient{{Microsoft.Data.SqlClient}} --> Microsoft.IdentityModel.Protocols.OpenIdConnect +Microsoft.Data.SqlClient{{Microsoft.Data.SqlClient}} --> Microsoft.SqlServer.Server +Microsoft.Data.SqlClient{{Microsoft.Data.SqlClient}} --> System.Configuration.ConfigurationManager +Microsoft.Data.SqlClient{{Microsoft.Data.SqlClient}} --> System.Runtime.Caching +Microsoft.Identity.Client{{Microsoft.Identity.Client}} Microsoft.Identity.Client.Extensions.Msal --> Microsoft.Identity.Client -Microsoft.Identity.Client.Extensions.Msal --> System.IO.FileSystem.AccessControl Microsoft.Identity.Client.Extensions.Msal --> System.Security.Cryptography.ProtectedData Microsoft.IdentityModel.JsonWebTokens --> Microsoft.IdentityModel.Tokens Microsoft.IdentityModel.JsonWebTokens --> System.Text.Encodings.Web @@ -188,22 +192,23 @@ Microsoft.IdentityModel.Protocols.OpenIdConnect --> Microsoft.IdentityModel.Prot Microsoft.IdentityModel.Protocols.OpenIdConnect --> System.IdentityModel.Tokens.Jwt Microsoft.IdentityModel.Tokens --> Microsoft.IdentityModel.Logging Microsoft.IdentityModel.Tokens --> System.Security.Cryptography.Cng +System.ClientModel --> System.Memory.Data +System.ClientModel --> System.Text.Json System.Configuration.ConfigurationManager --> System.Diagnostics.EventLog System.Configuration.ConfigurationManager --> System.Security.Cryptography.ProtectedData System.Diagnostics.DiagnosticSource --> System.Runtime.CompilerServices.Unsafe System.IdentityModel.Tokens.Jwt --> Microsoft.IdentityModel.JsonWebTokens System.IdentityModel.Tokens.Jwt --> Microsoft.IdentityModel.Tokens -System.IO.FileSystem.AccessControl --> System.Security.AccessControl -System.IO.FileSystem.AccessControl --> System.Security.Principal.Windows System.Memory.Data --> System.Text.Encodings.Web System.Memory.Data --> System.Text.Json System.Runtime.Caching --> System.Configuration.ConfigurationManager -System.Security.AccessControl --> System.Security.Principal.Windows class Azure.Core removed class Azure.Identity removed class Microsoft.Bcl.AsyncInterfaces removed +class Microsoft.Data.SqlClient root class Microsoft.Data.SqlClient default +class Microsoft.Identity.Client root class Microsoft.Identity.Client project class Microsoft.Identity.Client.Extensions.Msal removed class Microsoft.IdentityModel.Abstractions removed @@ -213,18 +218,16 @@ class Microsoft.IdentityModel.Protocols removed class Microsoft.IdentityModel.Protocols.OpenIdConnect removed class Microsoft.IdentityModel.Tokens removed class Microsoft.SqlServer.Server default +class System.ClientModel removed class System.Configuration.ConfigurationManager default class System.Diagnostics.DiagnosticSource removed class System.Diagnostics.EventLog default class System.IdentityModel.Tokens.Jwt removed -class System.IO.FileSystem.AccessControl removed class System.Memory.Data removed class System.Runtime.Caching default class System.Runtime.CompilerServices.Unsafe removed -class System.Security.AccessControl removed class System.Security.Cryptography.Cng removed class System.Security.Cryptography.ProtectedData default -class System.Security.Principal.Windows removed class System.Text.Encodings.Web removed class System.Text.Json removed ``` diff --git a/src/Chisel/GraphWriter.Graphviz.cs b/src/Chisel/GraphWriter.Graphviz.cs index a0cc5a1..685b52a 100644 --- a/src/Chisel/GraphWriter.Graphviz.cs +++ b/src/Chisel/GraphWriter.Graphviz.cs @@ -40,10 +40,25 @@ protected override void WriteNode(Package package, GraphOptions options) PackageState.Remove => options.Color.Removed, _ => package.IsProjectReference ? options.Color.Project : (Color?)null, }; - if (color.HasValue) + + if (package.IsRoot || color.HasValue) { - Writer.Write($" [ {Color(color.Value)} ]"); + Writer.Write(" ["); + if (package.IsRoot) + { + Writer.Write(" shape = hexagon, penwidth = 4"); + } + if (color.HasValue) + { + if (package.IsRoot) + { + Writer.Write(','); + } + Writer.Write($" {Color(color.Value)}"); + } + Writer.Write(" ]"); } + Writer.WriteLine(); } diff --git a/src/Chisel/GraphWriter.Mermaid.cs b/src/Chisel/GraphWriter.Mermaid.cs index d4cdb22..47c59db 100644 --- a/src/Chisel/GraphWriter.Mermaid.cs +++ b/src/Chisel/GraphWriter.Mermaid.cs @@ -24,6 +24,7 @@ protected override void WriteHeader(bool hasProject, bool hasIgnored, bool hasRe Writer.WriteLine(); Writer.WriteLine(); + Writer.WriteLine("classDef root stroke-width:4px"); Writer.WriteLine(ClassDef("default", options.Color.Default)); if (hasProject) Writer.WriteLine(ClassDef("project", options.Color.Project)); @@ -40,11 +41,16 @@ protected override void WriteFooter() protected override void WriteRoot(Package package, GraphOptions options) { - Writer.WriteLine($"{GetPackageId(package, options)}"); + var packageId = GetPackageId(package, options); + Writer.WriteLine($"{packageId}{{{{{packageId}}}}}"); } protected override void WriteNode(Package package, GraphOptions options) { + if (package.IsRoot) + { + Writer.WriteLine($"class {GetPackageId(package, options)} root"); + } var className = package.State switch { PackageState.Ignore => "ignored", @@ -56,6 +62,8 @@ protected override void WriteNode(Package package, GraphOptions options) protected override void WriteEdge(Package package, Package dependency, GraphOptions options) { - Writer.WriteLine($"{GetPackageId(package, options)} --> {GetPackageId(dependency, options)}"); + var packageId = GetPackageId(package, options); + var source = package.IsRoot ? $"{packageId}{{{{{packageId}}}}}" : packageId; + Writer.WriteLine($"{source} --> {GetPackageId(dependency, options)}"); } } \ No newline at end of file diff --git a/src/Chisel/LockFileExtensions.cs b/src/Chisel/LockFileExtensions.cs index 4d4ecbf..f3495d0 100644 --- a/src/Chisel/LockFileExtensions.cs +++ b/src/Chisel/LockFileExtensions.cs @@ -31,6 +31,10 @@ public static (IReadOnlyDictionary Packages, IReadOnlyCollectio var projectDependencies = lockFile.ProjectFileDependencyGroups.Where(e => e.FrameworkName == frameworkName).SelectMany(e => e.Dependencies).Select(ParseProjectFileDependency); var packageDependencies = framework.Dependencies.Select(e => e.Name); var roots = new HashSet(projectDependencies.Concat(packageDependencies).Where(e => packages.ContainsKey(e)).Select(e => packages[e])); + foreach (var root in roots) + { + root.IsRoot = true; + } return (packages, roots); } diff --git a/src/Chisel/Package.cs b/src/Chisel/Package.cs index 196b0a6..bd7d63b 100644 --- a/src/Chisel/Package.cs +++ b/src/Chisel/Package.cs @@ -13,6 +13,8 @@ internal sealed class Package(string name, NuGetVersion version, bool isProjectR public bool IsProjectReference { get; } = isProjectReference; public IReadOnlyCollection Dependencies { get; } = dependencies; + public bool IsRoot { get; set; } + public PackageState State { get; set; } = PackageState.Keep; public override string ToString() => Name; diff --git a/tests/Chisel.Tests/ChiseledAppTests.RunTestApp_non-windows.verified.mermaid b/tests/Chisel.Tests/ChiseledAppTests.RunTestApp_non-windows.verified.mermaid index 88719bf..785b4fd 100644 --- a/tests/Chisel.Tests/ChiseledAppTests.RunTestApp_non-windows.verified.mermaid +++ b/tests/Chisel.Tests/ChiseledAppTests.RunTestApp_non-windows.verified.mermaid @@ -2,6 +2,7 @@ graph LR +classDef root stroke-width:4px classDef default fill:aquamarine,stroke:#009061,color:#333333 classDef removed fill:lightcoral,stroke:#A42A2A @@ -16,15 +17,15 @@ Azure.Identity/1.11.4 --> Microsoft.Identity.Client/4.61.3 Azure.Identity/1.11.4 --> Microsoft.Identity.Client.Extensions.Msal/4.61.3 Azure.Identity/1.11.4 --> System.Security.Cryptography.ProtectedData/8.0.0 Azure.Identity/1.11.4 --> System.Text.Json/8.0.4 -Microsoft.Data.SqlClient/5.2.2 --> Azure.Identity/1.11.4 -Microsoft.Data.SqlClient/5.2.2 --> Microsoft.Identity.Client/4.61.3 -Microsoft.Data.SqlClient/5.2.2 --> Microsoft.IdentityModel.JsonWebTokens/6.35.0 -Microsoft.Data.SqlClient/5.2.2 --> Microsoft.IdentityModel.Protocols.OpenIdConnect/6.35.0 -Microsoft.Data.SqlClient/5.2.2 --> Microsoft.SqlServer.Server/1.0.0 -Microsoft.Data.SqlClient/5.2.2 --> System.Configuration.ConfigurationManager/8.0.0 -Microsoft.Data.SqlClient/5.2.2 --> System.Runtime.Caching/8.0.0 -Microsoft.Extensions.DependencyModel/8.0.1 --> System.Text.Encodings.Web/8.0.0 -Microsoft.Extensions.DependencyModel/8.0.1 --> System.Text.Json/8.0.4 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Azure.Identity/1.11.4 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Microsoft.Identity.Client/4.61.3 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Microsoft.IdentityModel.JsonWebTokens/6.35.0 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Microsoft.IdentityModel.Protocols.OpenIdConnect/6.35.0 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Microsoft.SqlServer.Server/1.0.0 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> System.Configuration.ConfigurationManager/8.0.0 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> System.Runtime.Caching/8.0.0 +Microsoft.Extensions.DependencyModel/8.0.1{{Microsoft.Extensions.DependencyModel/8.0.1}} --> System.Text.Encodings.Web/8.0.0 +Microsoft.Extensions.DependencyModel/8.0.1{{Microsoft.Extensions.DependencyModel/8.0.1}} --> System.Text.Json/8.0.4 Microsoft.Identity.Client/4.61.3 --> Microsoft.IdentityModel.Abstractions/6.35.0 Microsoft.Identity.Client/4.61.3 --> System.Diagnostics.DiagnosticSource/6.0.1 Microsoft.Identity.Client.Extensions.Msal/4.61.3 --> Microsoft.Identity.Client/4.61.3 @@ -54,7 +55,9 @@ System.Text.Json/8.0.4 --> System.Text.Encodings.Web/8.0.0 class Azure.Core/1.38.0 removed class Azure.Identity/1.11.4 removed class Microsoft.Bcl.AsyncInterfaces/1.1.1 removed +class Microsoft.Data.SqlClient/5.2.2 root class Microsoft.Data.SqlClient/5.2.2 default +class Microsoft.Extensions.DependencyModel/8.0.1 root class Microsoft.Extensions.DependencyModel/8.0.1 default class Microsoft.Identity.Client/4.61.3 default class Microsoft.Identity.Client.Extensions.Msal/4.61.3 removed diff --git a/tests/Chisel.Tests/ChiseledAppTests.RunTestApp_windows.verified.mermaid b/tests/Chisel.Tests/ChiseledAppTests.RunTestApp_windows.verified.mermaid index 0d7f5e0..3dd0248 100644 --- a/tests/Chisel.Tests/ChiseledAppTests.RunTestApp_windows.verified.mermaid +++ b/tests/Chisel.Tests/ChiseledAppTests.RunTestApp_windows.verified.mermaid @@ -2,6 +2,7 @@ graph LR +classDef root stroke-width:4px classDef default fill:aquamarine,stroke:#009061,color:#333333 classDef removed fill:lightcoral,stroke:#A42A2A @@ -16,16 +17,16 @@ Azure.Identity/1.11.4 --> Microsoft.Identity.Client/4.61.3 Azure.Identity/1.11.4 --> Microsoft.Identity.Client.Extensions.Msal/4.61.3 Azure.Identity/1.11.4 --> System.Security.Cryptography.ProtectedData/8.0.0 Azure.Identity/1.11.4 --> System.Text.Json/8.0.4 -Microsoft.Data.SqlClient/5.2.2 --> Azure.Identity/1.11.4 -Microsoft.Data.SqlClient/5.2.2 --> Microsoft.Data.SqlClient.SNI.runtime/5.2.0 -Microsoft.Data.SqlClient/5.2.2 --> Microsoft.Identity.Client/4.61.3 -Microsoft.Data.SqlClient/5.2.2 --> Microsoft.IdentityModel.JsonWebTokens/6.35.0 -Microsoft.Data.SqlClient/5.2.2 --> Microsoft.IdentityModel.Protocols.OpenIdConnect/6.35.0 -Microsoft.Data.SqlClient/5.2.2 --> Microsoft.SqlServer.Server/1.0.0 -Microsoft.Data.SqlClient/5.2.2 --> System.Configuration.ConfigurationManager/8.0.0 -Microsoft.Data.SqlClient/5.2.2 --> System.Runtime.Caching/8.0.0 -Microsoft.Extensions.DependencyModel/8.0.1 --> System.Text.Encodings.Web/8.0.0 -Microsoft.Extensions.DependencyModel/8.0.1 --> System.Text.Json/8.0.4 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Azure.Identity/1.11.4 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Microsoft.Data.SqlClient.SNI.runtime/5.2.0 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Microsoft.Identity.Client/4.61.3 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Microsoft.IdentityModel.JsonWebTokens/6.35.0 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Microsoft.IdentityModel.Protocols.OpenIdConnect/6.35.0 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> Microsoft.SqlServer.Server/1.0.0 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> System.Configuration.ConfigurationManager/8.0.0 +Microsoft.Data.SqlClient/5.2.2{{Microsoft.Data.SqlClient/5.2.2}} --> System.Runtime.Caching/8.0.0 +Microsoft.Extensions.DependencyModel/8.0.1{{Microsoft.Extensions.DependencyModel/8.0.1}} --> System.Text.Encodings.Web/8.0.0 +Microsoft.Extensions.DependencyModel/8.0.1{{Microsoft.Extensions.DependencyModel/8.0.1}} --> System.Text.Json/8.0.4 Microsoft.Identity.Client/4.61.3 --> Microsoft.IdentityModel.Abstractions/6.35.0 Microsoft.Identity.Client/4.61.3 --> System.Diagnostics.DiagnosticSource/6.0.1 Microsoft.Identity.Client.Extensions.Msal/4.61.3 --> Microsoft.Identity.Client/4.61.3 @@ -55,8 +56,10 @@ System.Text.Json/8.0.4 --> System.Text.Encodings.Web/8.0.0 class Azure.Core/1.38.0 removed class Azure.Identity/1.11.4 removed class Microsoft.Bcl.AsyncInterfaces/1.1.1 removed +class Microsoft.Data.SqlClient/5.2.2 root class Microsoft.Data.SqlClient/5.2.2 default class Microsoft.Data.SqlClient.SNI.runtime/5.2.0 default +class Microsoft.Extensions.DependencyModel/8.0.1 root class Microsoft.Extensions.DependencyModel/8.0.1 default class Microsoft.Identity.Client/4.61.3 default class Microsoft.Identity.Client.Extensions.Msal/4.61.3 removed diff --git a/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=False_format=graphviz.verified.gv b/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=False_format=graphviz.verified.gv index 47b224b..c4046e3 100644 --- a/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=False_format=graphviz.verified.gv +++ b/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=False_format=graphviz.verified.gv @@ -27,13 +27,13 @@ digraph "AWSSDK.Core" [ fillcolor = lightcoral, color = "#A42A2A" ] "AWSSDK.SecurityToken" [ fillcolor = lightcoral, color = "#A42A2A" ] - "ByteSize" + "ByteSize" [ shape = hexagon, penwidth = 4 ] "DnsClient" "Microsoft.Extensions.DependencyInjection.Abstractions" - "Microsoft.Extensions.Logging.Abstractions" + "Microsoft.Extensions.Logging.Abstractions" [ shape = hexagon, penwidth = 4 ] "Microsoft.Win32.Registry" "MongoDB.Bson" - "MongoDB.Driver" + "MongoDB.Driver" [ shape = hexagon, penwidth = 4 ] "MongoDB.Driver.Core" "MongoDB.Libmongocrypt" "SharpCompress" diff --git a/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=False_format=mermaid.verified.mmd b/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=False_format=mermaid.verified.mmd index adad6c0..38b138e 100644 --- a/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=False_format=mermaid.verified.mmd +++ b/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=False_format=mermaid.verified.mmd @@ -2,20 +2,21 @@ graph LR +classDef root stroke-width:4px classDef default fill:aquamarine,stroke:#009061,color:#333333 classDef removed fill:lightcoral,stroke:#A42A2A AWSSDK.SecurityToken --> AWSSDK.Core -ByteSize +ByteSize{{ByteSize}} DnsClient --> Microsoft.Win32.Registry -Microsoft.Extensions.Logging.Abstractions --> Microsoft.Extensions.DependencyInjection.Abstractions +Microsoft.Extensions.Logging.Abstractions{{Microsoft.Extensions.Logging.Abstractions}} --> Microsoft.Extensions.DependencyInjection.Abstractions Microsoft.Win32.Registry --> System.Security.AccessControl Microsoft.Win32.Registry --> System.Security.Principal.Windows MongoDB.Bson --> System.Runtime.CompilerServices.Unsafe -MongoDB.Driver --> Microsoft.Extensions.Logging.Abstractions -MongoDB.Driver --> MongoDB.Bson -MongoDB.Driver --> MongoDB.Driver.Core -MongoDB.Driver --> MongoDB.Libmongocrypt +MongoDB.Driver{{MongoDB.Driver}} --> Microsoft.Extensions.Logging.Abstractions +MongoDB.Driver{{MongoDB.Driver}} --> MongoDB.Bson +MongoDB.Driver{{MongoDB.Driver}} --> MongoDB.Driver.Core +MongoDB.Driver{{MongoDB.Driver}} --> MongoDB.Libmongocrypt MongoDB.Driver.Core --> AWSSDK.SecurityToken MongoDB.Driver.Core --> DnsClient MongoDB.Driver.Core --> Microsoft.Extensions.Logging.Abstractions @@ -28,12 +29,15 @@ System.Security.AccessControl --> System.Security.Principal.Windows class AWSSDK.Core removed class AWSSDK.SecurityToken removed +class ByteSize root class ByteSize default class DnsClient default class Microsoft.Extensions.DependencyInjection.Abstractions default +class Microsoft.Extensions.Logging.Abstractions root class Microsoft.Extensions.Logging.Abstractions default class Microsoft.Win32.Registry default class MongoDB.Bson default +class MongoDB.Driver root class MongoDB.Driver default class MongoDB.Driver.Core default class MongoDB.Libmongocrypt default diff --git a/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=True_format=graphviz.verified.gv b/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=True_format=graphviz.verified.gv index 65898c6..5ed155a 100644 --- a/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=True_format=graphviz.verified.gv +++ b/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=True_format=graphviz.verified.gv @@ -43,16 +43,16 @@ digraph "AWSSDK.Core" [ fillcolor = lightcoral, color = "#A42A2A" ] "AWSSDK.SecurityToken" [ fillcolor = lightcoral, color = "#A42A2A" ] "BouncyCastle.Cryptography" [ fillcolor = lightgray, color = "#7A7A7A" ] - "ByteSize" + "ByteSize" [ shape = hexagon, penwidth = 4 ] "DnsClient" "Docker.DotNet" [ fillcolor = lightgray, color = "#7A7A7A" ] "Docker.DotNet.X509" [ fillcolor = lightgray, color = "#7A7A7A" ] "Microsoft.Bcl.AsyncInterfaces" [ fillcolor = lightgray, color = "#7A7A7A" ] "Microsoft.Extensions.DependencyInjection.Abstractions" - "Microsoft.Extensions.Logging.Abstractions" + "Microsoft.Extensions.Logging.Abstractions" [ shape = hexagon, penwidth = 4 ] "Microsoft.Win32.Registry" "MongoDB.Bson" - "MongoDB.Driver" + "MongoDB.Driver" [ shape = hexagon, penwidth = 4 ] "MongoDB.Driver.Core" "MongoDB.Libmongocrypt" "Newtonsoft.Json" [ fillcolor = lightgray, color = "#7A7A7A" ] @@ -67,6 +67,6 @@ digraph "System.Text.Encodings.Web" [ fillcolor = lightgray, color = "#7A7A7A" ] "System.Text.Json" [ fillcolor = lightgray, color = "#7A7A7A" ] "Testcontainers" [ fillcolor = lightgray, color = "#7A7A7A" ] - "Testcontainers.MongoDb" [ fillcolor = lightgray, color = "#7A7A7A" ] + "Testcontainers.MongoDb" [ shape = hexagon, penwidth = 4, fillcolor = lightgray, color = "#7A7A7A" ] "ZstdSharp.Port" } diff --git a/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=True_format=mermaid.verified.mmd b/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=True_format=mermaid.verified.mmd index 1a43b82..a3e62c5 100644 --- a/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=True_format=mermaid.verified.mmd +++ b/tests/Chisel.Tests/DependencyGraphTest.MongoDbGraph_writeIgnoredPackages=True_format=mermaid.verified.mmd @@ -2,23 +2,24 @@ graph LR +classDef root stroke-width:4px classDef default fill:aquamarine,stroke:#009061,color:#333333 classDef ignored fill:lightgray,stroke:#7A7A7A classDef removed fill:lightcoral,stroke:#A42A2A AWSSDK.SecurityToken --> AWSSDK.Core -ByteSize +ByteSize{{ByteSize}} DnsClient --> Microsoft.Win32.Registry Docker.DotNet --> Newtonsoft.Json Docker.DotNet.X509 --> Docker.DotNet -Microsoft.Extensions.Logging.Abstractions --> Microsoft.Extensions.DependencyInjection.Abstractions +Microsoft.Extensions.Logging.Abstractions{{Microsoft.Extensions.Logging.Abstractions}} --> Microsoft.Extensions.DependencyInjection.Abstractions Microsoft.Win32.Registry --> System.Security.AccessControl Microsoft.Win32.Registry --> System.Security.Principal.Windows MongoDB.Bson --> System.Runtime.CompilerServices.Unsafe -MongoDB.Driver --> Microsoft.Extensions.Logging.Abstractions -MongoDB.Driver --> MongoDB.Bson -MongoDB.Driver --> MongoDB.Driver.Core -MongoDB.Driver --> MongoDB.Libmongocrypt +MongoDB.Driver{{MongoDB.Driver}} --> Microsoft.Extensions.Logging.Abstractions +MongoDB.Driver{{MongoDB.Driver}} --> MongoDB.Bson +MongoDB.Driver{{MongoDB.Driver}} --> MongoDB.Driver.Core +MongoDB.Driver{{MongoDB.Driver}} --> MongoDB.Libmongocrypt MongoDB.Driver.Core --> AWSSDK.SecurityToken MongoDB.Driver.Core --> DnsClient MongoDB.Driver.Core --> Microsoft.Extensions.Logging.Abstractions @@ -40,20 +41,23 @@ Testcontainers --> Microsoft.Extensions.Logging.Abstractions Testcontainers --> SharpZipLib Testcontainers --> SSH.NET Testcontainers --> System.Text.Json -Testcontainers.MongoDb --> Testcontainers +Testcontainers.MongoDb{{Testcontainers.MongoDb}} --> Testcontainers class AWSSDK.Core removed class AWSSDK.SecurityToken removed class BouncyCastle.Cryptography ignored +class ByteSize root class ByteSize default class DnsClient default class Docker.DotNet ignored class Docker.DotNet.X509 ignored class Microsoft.Bcl.AsyncInterfaces ignored class Microsoft.Extensions.DependencyInjection.Abstractions default +class Microsoft.Extensions.Logging.Abstractions root class Microsoft.Extensions.Logging.Abstractions default class Microsoft.Win32.Registry default class MongoDB.Bson default +class MongoDB.Driver root class MongoDB.Driver default class MongoDB.Driver.Core default class MongoDB.Libmongocrypt default @@ -69,5 +73,6 @@ class System.Security.Principal.Windows default class System.Text.Encodings.Web ignored class System.Text.Json ignored class Testcontainers ignored +class Testcontainers.MongoDb root class Testcontainers.MongoDb ignored class ZstdSharp.Port default diff --git a/tests/Chisel.Tests/DependencyGraphTest.PollyGraphIgnoreGlob_graphviz.verified.gv b/tests/Chisel.Tests/DependencyGraphTest.PollyGraphIgnoreGlob_graphviz.verified.gv index 9521e22..15eb796 100644 --- a/tests/Chisel.Tests/DependencyGraphTest.PollyGraphIgnoreGlob_graphviz.verified.gv +++ b/tests/Chisel.Tests/DependencyGraphTest.PollyGraphIgnoreGlob_graphviz.verified.gv @@ -14,7 +14,7 @@ digraph "Microsoft.Bcl.AsyncInterfaces/6.0.0" "Microsoft.Bcl.TimeProvider/8.0.0" "Microsoft.NETCore.Platforms/1.1.0" - "NETStandard.Library/2.0.3" - "Polly/8.4.0" + "NETStandard.Library/2.0.3" [ shape = hexagon, penwidth = 4 ] + "Polly/8.4.0" [ shape = hexagon, penwidth = 4 ] "Polly.Core/8.4.0" } diff --git a/tests/Chisel.Tests/DependencyGraphTest.PollyGraphIgnoreGlob_mermaid.verified.mmd b/tests/Chisel.Tests/DependencyGraphTest.PollyGraphIgnoreGlob_mermaid.verified.mmd index 7d566a4..8805908 100644 --- a/tests/Chisel.Tests/DependencyGraphTest.PollyGraphIgnoreGlob_mermaid.verified.mmd +++ b/tests/Chisel.Tests/DependencyGraphTest.PollyGraphIgnoreGlob_mermaid.verified.mmd @@ -2,17 +2,20 @@ graph LR +classDef root stroke-width:4px classDef default fill:aquamarine,stroke:#009061,color:#333333 Microsoft.Bcl.TimeProvider/8.0.0 --> Microsoft.Bcl.AsyncInterfaces/6.0.0 -NETStandard.Library/2.0.3 --> Microsoft.NETCore.Platforms/1.1.0 -Polly/8.4.0 --> Polly.Core/8.4.0 +NETStandard.Library/2.0.3{{NETStandard.Library/2.0.3}} --> Microsoft.NETCore.Platforms/1.1.0 +Polly/8.4.0{{Polly/8.4.0}} --> Polly.Core/8.4.0 Polly.Core/8.4.0 --> Microsoft.Bcl.AsyncInterfaces/6.0.0 Polly.Core/8.4.0 --> Microsoft.Bcl.TimeProvider/8.0.0 class Microsoft.Bcl.AsyncInterfaces/6.0.0 default class Microsoft.Bcl.TimeProvider/8.0.0 default class Microsoft.NETCore.Platforms/1.1.0 default +class NETStandard.Library/2.0.3 root class NETStandard.Library/2.0.3 default +class Polly/8.4.0 root class Polly/8.4.0 default class Polly.Core/8.4.0 default diff --git a/tests/Chisel.Tests/DependencyGraphTest.SqlClientGraph_graphviz.verified.gv b/tests/Chisel.Tests/DependencyGraphTest.SqlClientGraph_graphviz.verified.gv index c4dd1fd..cfb8627 100644 --- a/tests/Chisel.Tests/DependencyGraphTest.SqlClientGraph_graphviz.verified.gv +++ b/tests/Chisel.Tests/DependencyGraphTest.SqlClientGraph_graphviz.verified.gv @@ -51,9 +51,9 @@ digraph "Azure.Core/1.35.0" [ fillcolor = lightcoral, color = "#A42A2A" ] "Azure.Identity/1.10.3" [ fillcolor = lightcoral, color = "#A42A2A" ] "Microsoft.Bcl.AsyncInterfaces/1.1.1" [ fillcolor = lightcoral, color = "#A42A2A" ] - "Microsoft.Data.SqlClient/5.2.0" + "Microsoft.Data.SqlClient/5.2.0" [ shape = hexagon, penwidth = 4 ] "Microsoft.Data.SqlClient.SNI.runtime/5.2.0" - "Microsoft.Identity.Client/4.56.0" [ fillcolor = skyblue, color = "#05587C" ] + "Microsoft.Identity.Client/4.56.0" [ shape = hexagon, penwidth = 4, fillcolor = skyblue, color = "#05587C" ] "Microsoft.Identity.Client.Extensions.Msal/4.56.0" [ fillcolor = lightcoral, color = "#A42A2A" ] "Microsoft.IdentityModel.Abstractions/6.35.0" [ fillcolor = lightcoral, color = "#A42A2A" ] "Microsoft.IdentityModel.JsonWebTokens/6.35.0" [ fillcolor = lightcoral, color = "#A42A2A" ] @@ -67,7 +67,7 @@ digraph "System.Diagnostics.EventLog/8.0.0" "System.IdentityModel.Tokens.Jwt/6.35.0" [ fillcolor = lightcoral, color = "#A42A2A" ] "System.IO.FileSystem.AccessControl/5.0.0" [ fillcolor = lightcoral, color = "#A42A2A" ] - "System.Memory.Data/8.0.0" + "System.Memory.Data/8.0.0" [ shape = hexagon, penwidth = 4 ] "System.Runtime.Caching/8.0.0" "System.Runtime.CompilerServices.Unsafe/6.0.0" [ fillcolor = lightcoral, color = "#A42A2A" ] "System.Security.AccessControl/5.0.0" [ fillcolor = lightcoral, color = "#A42A2A" ] diff --git a/tests/Chisel.Tests/DependencyGraphTest.SqlClientGraph_mermaid.verified.mmd b/tests/Chisel.Tests/DependencyGraphTest.SqlClientGraph_mermaid.verified.mmd index d30cc53..bee8d75 100644 --- a/tests/Chisel.Tests/DependencyGraphTest.SqlClientGraph_mermaid.verified.mmd +++ b/tests/Chisel.Tests/DependencyGraphTest.SqlClientGraph_mermaid.verified.mmd @@ -2,6 +2,7 @@ graph LR +classDef root stroke-width:4px classDef default fill:aquamarine,stroke:#009061,color:#333333 classDef project fill:skyblue,stroke:#05587C classDef removed fill:lightcoral,stroke:#A42A2A @@ -16,15 +17,15 @@ Azure.Identity/1.10.3 --> Microsoft.Identity.Client/4.56.0 Azure.Identity/1.10.3 --> Microsoft.Identity.Client.Extensions.Msal/4.56.0 Azure.Identity/1.10.3 --> System.Security.Cryptography.ProtectedData/8.0.0 Azure.Identity/1.10.3 --> System.Text.Json/8.0.0 -Microsoft.Data.SqlClient/5.2.0 --> Azure.Identity/1.10.3 -Microsoft.Data.SqlClient/5.2.0 --> Microsoft.Data.SqlClient.SNI.runtime/5.2.0 -Microsoft.Data.SqlClient/5.2.0 --> Microsoft.Identity.Client/4.56.0 -Microsoft.Data.SqlClient/5.2.0 --> Microsoft.IdentityModel.JsonWebTokens/6.35.0 -Microsoft.Data.SqlClient/5.2.0 --> Microsoft.IdentityModel.Protocols.OpenIdConnect/6.35.0 -Microsoft.Data.SqlClient/5.2.0 --> Microsoft.SqlServer.Server/1.0.0 -Microsoft.Data.SqlClient/5.2.0 --> System.Configuration.ConfigurationManager/8.0.0 -Microsoft.Data.SqlClient/5.2.0 --> System.Runtime.Caching/8.0.0 -Microsoft.Identity.Client/4.56.0 +Microsoft.Data.SqlClient/5.2.0{{Microsoft.Data.SqlClient/5.2.0}} --> Azure.Identity/1.10.3 +Microsoft.Data.SqlClient/5.2.0{{Microsoft.Data.SqlClient/5.2.0}} --> Microsoft.Data.SqlClient.SNI.runtime/5.2.0 +Microsoft.Data.SqlClient/5.2.0{{Microsoft.Data.SqlClient/5.2.0}} --> Microsoft.Identity.Client/4.56.0 +Microsoft.Data.SqlClient/5.2.0{{Microsoft.Data.SqlClient/5.2.0}} --> Microsoft.IdentityModel.JsonWebTokens/6.35.0 +Microsoft.Data.SqlClient/5.2.0{{Microsoft.Data.SqlClient/5.2.0}} --> Microsoft.IdentityModel.Protocols.OpenIdConnect/6.35.0 +Microsoft.Data.SqlClient/5.2.0{{Microsoft.Data.SqlClient/5.2.0}} --> Microsoft.SqlServer.Server/1.0.0 +Microsoft.Data.SqlClient/5.2.0{{Microsoft.Data.SqlClient/5.2.0}} --> System.Configuration.ConfigurationManager/8.0.0 +Microsoft.Data.SqlClient/5.2.0{{Microsoft.Data.SqlClient/5.2.0}} --> System.Runtime.Caching/8.0.0 +Microsoft.Identity.Client/4.56.0{{Microsoft.Identity.Client/4.56.0}} Microsoft.Identity.Client.Extensions.Msal/4.56.0 --> Microsoft.Identity.Client/4.56.0 Microsoft.Identity.Client.Extensions.Msal/4.56.0 --> System.IO.FileSystem.AccessControl/5.0.0 Microsoft.Identity.Client.Extensions.Msal/4.56.0 --> System.Security.Cryptography.ProtectedData/8.0.0 @@ -45,7 +46,7 @@ System.IdentityModel.Tokens.Jwt/6.35.0 --> Microsoft.IdentityModel.JsonWebTokens System.IdentityModel.Tokens.Jwt/6.35.0 --> Microsoft.IdentityModel.Tokens/6.35.0 System.IO.FileSystem.AccessControl/5.0.0 --> System.Security.AccessControl/5.0.0 System.IO.FileSystem.AccessControl/5.0.0 --> System.Security.Principal.Windows/5.0.0 -System.Memory.Data/8.0.0 --> System.Text.Json/8.0.0 +System.Memory.Data/8.0.0{{System.Memory.Data/8.0.0}} --> System.Text.Json/8.0.0 System.Runtime.Caching/8.0.0 --> System.Configuration.ConfigurationManager/8.0.0 System.Security.AccessControl/5.0.0 --> System.Security.Principal.Windows/5.0.0 System.Text.Json/8.0.0 --> System.Text.Encodings.Web/8.0.0 @@ -53,8 +54,10 @@ System.Text.Json/8.0.0 --> System.Text.Encodings.Web/8.0.0 class Azure.Core/1.35.0 removed class Azure.Identity/1.10.3 removed class Microsoft.Bcl.AsyncInterfaces/1.1.1 removed +class Microsoft.Data.SqlClient/5.2.0 root class Microsoft.Data.SqlClient/5.2.0 default class Microsoft.Data.SqlClient.SNI.runtime/5.2.0 default +class Microsoft.Identity.Client/4.56.0 root class Microsoft.Identity.Client/4.56.0 project class Microsoft.Identity.Client.Extensions.Msal/4.56.0 removed class Microsoft.IdentityModel.Abstractions/6.35.0 removed @@ -69,6 +72,7 @@ class System.Diagnostics.DiagnosticSource/6.0.1 removed class System.Diagnostics.EventLog/8.0.0 default class System.IdentityModel.Tokens.Jwt/6.35.0 removed class System.IO.FileSystem.AccessControl/5.0.0 removed +class System.Memory.Data/8.0.0 root class System.Memory.Data/8.0.0 default class System.Runtime.Caching/8.0.0 default class System.Runtime.CompilerServices.Unsafe/6.0.0 removed