Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request adds comprehensive support for rendering NuGet package dependencies in the visualize command. The feature enables users to include NuGet packages in project dependency graphs alongside project-to-project references using a new --include-packages flag. The changes include extensive design documentation, core model updates, parser enhancements, renderer modifications, and comprehensive test coverage.
Changes:
- Added NuGet package parsing capability with support for Central Package Management (Directory.Packages.props)
- Extended the domain model with
ProjectType.PackageandPackageReferencerecord to represent NuGet dependencies - Updated all three renderers (Mermaid, Tree, Flat) to display packages with distinct visual styles
- Added
--include-packagesCLI flag and corresponding MCP tool parameter to control package inclusion - Created comprehensive design documentation including specification, implementation plan, API contracts, and quickstart guide
Reviewed changes
Copilot reviewed 34 out of 34 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| specs/008-nuget-package-rendering/* | Complete feature specification and design documentation including spec, plan, research, data model, contracts, quickstart, tasks, and requirements checklist |
| src/ProjGraph.Core/Models/Project.cs | Added ProjectType.Package enum value for representing NuGet packages |
| src/ProjGraph.Core/Models/Dependency.cs | Added PackageReference record to represent package references with name and version |
| src/ProjGraph.Lib.Core/Abstractions/IProjectParser.cs | Extended interface to return package references alongside project references |
| src/ProjGraph.Lib.Core/Abstractions/DiagramOptions.cs | Added IncludePackages parameter to diagram rendering options |
| src/ProjGraph.Lib.Core/Parsers/ProjectParser.cs | Implemented PackageReference extraction with Central Package Management support |
| src/ProjGraph.Lib.Core/Infrastructure/ProjectDiscoveryService.cs | Updated to handle new tuple structure from parser |
| src/ProjGraph.Lib.ProjectGraph/Application/IGraphService.cs | Added includePackages parameter to BuildGraph method |
| src/ProjGraph.Lib.ProjectGraph/Application/GraphService.cs | Propagates includePackages flag to use case |
| src/ProjGraph.Lib.ProjectGraph/Application/UseCases/BuildGraphUseCase.cs | Implements package deduplication and graph construction logic |
| src/ProjGraph.Lib.ProjectGraph/Rendering/MermaidGraphRenderer.cs | Renders packages with hexagon shape and dashed arrows |
| src/ProjGraph.Lib.ProjectGraph/Rendering/TreeGraphRenderer.cs | Renders packages with emoji icon and yellow color coding |
| src/ProjGraph.Lib.ProjectGraph/Rendering/FlatGraphRenderer.cs | Renders packages with emoji icon and yellow color coding |
| src/ProjGraph.Lib.ProjectGraph/Rendering/SolutionGraphRendererBase.cs | Added package emoji icon (📦) and updated default icon for non-package projects |
| src/ProjGraph.Cli/Commands/VisualizeCommand.cs | Added --include-packages CLI flag and propagates to graph service |
| src/ProjGraph.Mcp/Program.cs | Added includePackages parameter to MCP tool interface |
| tests/* | Comprehensive unit and integration tests for all new functionality |
| samples/visualize/simple-dependencies/A/A.csproj | Added sample package references for testing |
| .github/agents/copilot-instructions.md | Updated with new feature technologies and changes |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Contributor
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HandyS11 <62420910+HandyS11@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request adds comprehensive design documentation for the "NuGet Package Reference Rendering" feature in the
visualizecommand. The feature enables users to include NuGet package dependencies in project dependency graphs, making them visually distinct in both graphical (Mermaid) and text-based (tree, flat) formats. The documentation covers the feature specification, data model changes, API contracts, implementation plan, research decisions, requirements checklist, and user quickstart guide.The most important changes are:
Feature Specification & Requirements
spec.md) defining user stories, functional requirements, acceptance criteria, and measurable outcomes for rendering NuGet package references in project graphs with a new--include-packagesflag.checklists/requirements.md) to ensure specification quality, completeness, and readiness for planning.Data Model & API Contracts
data-model.md) to represent NuGet packages asProjectrecords with a newProjectType.Package, and described how dependencies and deduplication are handled in the graph.contracts/mcp-schema.md) for the MCP tool, CLI, and internal APIs to support theincludePackagesparameter and package reference handling.Implementation Planning & Research
plan.md) outlining the technical context, project structure, and architectural decisions for integrating package rendering across the codebase.research.md) justifying key design decisions, such as parser extension, model reuse, flag propagation, and rendering styles.Documentation & Sample Updates
quickstart.md) with usage examples for CLI and MCP, and demonstrated the output formats for package references..github/agents/copilot-instructions.mdto reflect the new feature and technologies, and added new NuGet-related package references to the sample project (A.csproj). [1] [2] [3]