Skip to content

Add nuget package rendering#40

Merged
HandyS11 merged 6 commits intodevelopfrom
008-nuget-package-rendering
Feb 24, 2026
Merged

Add nuget package rendering#40
HandyS11 merged 6 commits intodevelopfrom
008-nuget-package-rendering

Conversation

@HandyS11
Copy link
Copy Markdown
Owner

This pull request adds comprehensive design documentation for the "NuGet Package Reference Rendering" feature in the visualize command. 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

  • Added a detailed feature specification (spec.md) defining user stories, functional requirements, acceptance criteria, and measurable outcomes for rendering NuGet package references in project graphs with a new --include-packages flag.
  • Included a requirements checklist (checklists/requirements.md) to ensure specification quality, completeness, and readiness for planning.

Data Model & API Contracts

  • Updated the data model (data-model.md) to represent NuGet packages as Project records with a new ProjectType.Package, and described how dependencies and deduplication are handled in the graph.
  • Defined and updated API contracts (contracts/mcp-schema.md) for the MCP tool, CLI, and internal APIs to support the includePackages parameter and package reference handling.

Implementation Planning & Research

  • Added an implementation plan (plan.md) outlining the technical context, project structure, and architectural decisions for integrating package rendering across the codebase.
  • Documented research findings (research.md) justifying key design decisions, such as parser extension, model reuse, flag propagation, and rendering styles.

Documentation & Sample Updates

  • Provided a quickstart guide (quickstart.md) with usage examples for CLI and MCP, and demonstrated the output formats for package references.
  • Updated .github/agents/copilot-instructions.md to reflect the new feature and technologies, and added new NuGet-related package references to the sample project (A.csproj). [1] [2] [3]

Copilot AI review requested due to automatic review settings February 24, 2026 11:35
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.Package and PackageReference record to represent NuGet dependencies
  • Updated all three renderers (Mermaid, Tree, Flat) to display packages with distinct visual styles
  • Added --include-packages CLI 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.

Comment thread src/ProjGraph.Lib.Core/Parsers/ProjectParser.cs Outdated
Comment thread src/ProjGraph.Lib.ProjectGraph/Rendering/MermaidGraphRenderer.cs
Comment thread src/ProjGraph.Lib.Core/Parsers/ProjectParser.cs Outdated
Comment thread src/ProjGraph.Lib.ProjectGraph/Rendering/TreeGraphRenderer.cs
Comment thread tests/ProjGraph.Tests.Unit.ProjectGraph/TreeGraphRendererTests.cs
Comment thread tests/ProjGraph.Tests.Unit.ProjectGraph/FlatGraphRendererTests.cs
Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 24, 2026

@HandyS11 I've opened a new pull request, #41, to work on those changes. Once the pull request is ready, I'll request review from you.

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: HandyS11 <62420910+HandyS11@users.noreply.github.com>
@HandyS11 HandyS11 merged commit 0d3c766 into develop Feb 24, 2026
3 checks passed
@HandyS11 HandyS11 deleted the 008-nuget-package-rendering branch February 24, 2026 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants