Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ path = "src/main.rs"
roxmltree = "=0.21.1"
serde_json = "=1.0.151"
sha2 = "=0.11.0"
stack-engine = { git = "https://github.com/stack-sh/engine.git", rev = "8b62b0ef77c12b1b88981ea569379d3d9737a824" }
stack-theme = { git = "https://github.com/stack-sh/theme.git", rev = "5dbe41326370260cfc6b72d4aab4470318d66dab" }
stack-engine = { git = "https://github.com/stack-sh/engine.git", rev = "c82595e33c6f26b67fec7b5c2171921765e30000" }
stack-theme = { git = "https://github.com/stack-sh/theme.git", rev = "2347315e6e86ab9d2708e05fd3f9b5f3d87e1241" }
zip = { version = "=6.0.0", default-features = false, features = ["deflate-flate2-zlib-rs"] }

[features]
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ stack render arch.stack --provider-pack .stack-icons/aws -o arch.svg --notice ar

The CLI links `stack-engine` as a native Rust dependency. It owns filesystem and standard-stream behavior, process exit codes, configuration discovery, provider-pack import, notice output, and command presentation. It must not duplicate compiler, formatter, layout, or SVG-rendering logic.

The bundled engine resolves the provider-neutral core icons `api`, `web`, `mobile`, `desktop`, `server`, `container`, `cluster`, `cloud`, `scheduler`, `webhook`, `identity`, and `observability`. Vendor assets are not bundled. Local provider-pack import preserves upstream artwork and attaches source, archive hash, transformation, terms, and notice metadata. Rendering resolves namespaced IDs such as `aws:s3`, preserves the authored semantic `kind`, embeds only the selected local asset, and writes its provenance into SVG metadata and the optional notice sidecar.
The bundled engine resolves 30 provider-neutral core icons: `api`, `web`, `mobile`, `desktop`, `server`, `container`, `cluster`, `cloud`, `scheduler`, `webhook`, `identity`, `observability`, `gateway`, `load-balancer`, `dns`, `cdn`, `firewall`, `network`, `event`, `stream`, `search`, `analytics`, `repository`, `pipeline`, `secret`, `document`, `task`, `chat`, `email`, and `ai`. Vendor assets are not bundled. Local provider-pack import preserves upstream artwork and attaches source, archive hash, transformation, terms, and notice metadata. Rendering resolves namespaced IDs such as `aws:s3`, preserves the authored semantic `kind`, embeds only the selected local asset, and writes its provenance into SVG metadata and the optional notice sidecar.

## Development

Expand Down
2 changes: 2 additions & 0 deletions scripts/validate-render.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,7 @@
raise SystemExit("render output is not an SVG root element")
if not root.attrib.get("viewBox"):
raise SystemExit("render output has no viewBox")
if 'data-icon-id="gateway"' not in completed.stdout.decode("utf-8"):
raise SystemExit("render output does not contain the gateway core icon")

print("validated CLI standalone SVG")
4 changes: 3 additions & 1 deletion tests/fixtures/render.stack
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
stack 1.0 diagram "CLI render" {
node web "Web"
edge web -> api "HTTPS"
node api "API"
node api "API" {
icon "gateway"
}
}