Skip to content

feat(graph): add plantuml output format#528

Open
jongio wants to merge 1 commit into
mainfrom
idea/graph-plantuml
Open

feat(graph): add plantuml output format#528
jongio wants to merge 1 commit into
mainfrom
idea/graph-plantuml

Conversation

@jongio

@jongio jongio commented Jul 19, 2026

Copy link
Copy Markdown
Owner

What

Adds plantuml as an output format for azd app graph.

azd app graph --output plantuml emits a PlantUML component diagram you can paste into docs or render with any PlantUML tool.

Why

The command already produces Mermaid and Graphviz DOT. PlantUML is a common choice for architecture docs and is supported by many wikis and IDE plugins. This adds it alongside the existing diagram formats without changing any of them.

Details

  • New plantuml value for --output (-o).
  • Output is wrapped in @startuml / @enduml.
  • Services render as component, resources render as database, so the two are easy to tell apart.
  • Dependency edges use --> with sanitized aliases, reusing the same alias generator as the Mermaid renderer.
  • A title line is emitted from the project name and omitted when the project is empty.
  • Works with --output-file and --focus, same as the other formats.

Tests

  • TestRenderGraphPlantUML, TestRenderGraphPlantUMLNoProject, and TestEscapePlantUMLLabel cover the rendered structure, the empty-project case, and label escaping.
  • go build ./..., the commands package tests, and golangci-lint all pass.

Closes #525

Add plantuml to azd app graph --output. It emits a PlantUML component diagram (@startuml/@enduml) with services as components, resources as databases, and dependency edges, matching the existing mermaid and dot renderers. Works with --output-file and --focus.

Closes #525

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@jongio jongio added enhancement New feature or request idea Feature idea from the idea pipeline labels Jul 19, 2026
@jongio jongio self-assigned this Jul 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Website Preview

Your PR preview is ready!

📎 Preview URL: https://jongio.github.io/azd-app/pr/528/

This preview will be automatically cleaned up when the PR is closed.

github-actions Bot added a commit that referenced this pull request Jul 19, 2026
@codecov

codecov Bot commented Jul 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 89.18919% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 60.79%. Comparing base (37e07e7) to head (e8b8af9).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
cli/src/cmd/app/commands/graph.go 89.18% 3 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #528      +/-   ##
==========================================
+ Coverage   60.77%   60.79%   +0.02%     
==========================================
  Files         223      223              
  Lines       28527    28559      +32     
==========================================
+ Hits        17337    17363      +26     
- Misses      10010    10015       +5     
- Partials     1180     1181       +1     
Flag Coverage Δ
unittests 60.79% <89.18%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
cli/src/cmd/app/commands/graph.go 85.54% <89.18%> (+0.20%) ⬆️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

Copy link
Copy Markdown
Contributor

🚀 Test This PR

A preview build (0.19.5-pr528) is ready for testing!

🌐 Website Preview

Live Preview: https://jongio.github.io/azd-app/pr/528/

One-Line Install (Recommended)

PowerShell (Windows):

iex "& { $(irm https://raw.githubusercontent.com/jongio/azd-app/main/cli/scripts/install-pr.ps1) } -PrNumber 528 -Version 0.19.5-pr528"

Bash (macOS/Linux):

curl -fsSL https://raw.githubusercontent.com/jongio/azd-app/main/cli/scripts/install-pr.sh | bash -s 528 0.19.5-pr528

Uninstall

When you're done testing:

PowerShell (Windows):

iex "& { $(irm https://raw.githubusercontent.com/jongio/azd-app/main/cli/scripts/uninstall-pr.ps1) } -PrNumber 528"

Bash (macOS/Linux):

curl -fsSL https://raw.githubusercontent.com/jongio/azd-app/main/cli/scripts/uninstall-pr.sh | bash -s 528

Build Info:

What to Test:
Please review the PR description and test the changes described there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request idea Feature idea from the idea pipeline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a plantuml output format to azd app graph

1 participant