Dependency Graph With Diamonds (Graphviz DOT)
The same diamond graph as Graphviz DOT, with edge labels carrying the declared semver range and the two diamond joins filled — renderable to SVG and diffable against the JSON twin. Every package, version, hash and licence is fictional — the tree describes nothing real.
// SAMPLE — fictional supply-chain data. Every package, registry, version, hash, licence, advisory identifier and signature in this document is invented.
digraph orchard_gateway_dependencies {
rankdir=LR;
node [shape=box, style=rounded, fontname="Helvetica"];
graph [label="Orchard Gateway 4.2.0 — SAMPLE dependency graph", labelloc=t];
"@orchard-example/gateway" [label="@orchard-example/gateway\n4.2.0", peripheries=2];
"@orchard-example/router" [label="@orchard-example/router\n2.1.3"];
"@orchard-example/http-core" [label="@orchard-example/http-core\n1.8.0"];
"example-metrics" [label="example-metrics\n4.0.0"];
"example-cache" [label="example-cache\n0.9.2"];
"example-crypto-shim" [label="example-crypto-shim\n1.2.0"];
"example-logger" [label="example-logger\n3.4.1", style="rounded,filled", fillcolor="#e8f5e9"];
"example-retry" [label="example-retry\n1.0.4"];
"example-json-path" [label="example-json-path\n2.0.5", style="rounded,filled", fillcolor="#e8f5e9"];
"example-yaml-lite" [label="example-yaml-lite\n1.1.7"];
"@orchard-example/gateway" -> "@orchard-example/router" [label="^2.1.0"];
"@orchard-example/gateway" -> "@orchard-example/http-core" [label="^1.8.0"];
"@orchard-example/gateway" -> "example-metrics" [label="^4.0.0"];
"@orchard-example/gateway" -> "example-cache" [label="^0.9.0"];
"@orchard-example/gateway" -> "example-crypto-shim" [label="^1.2.0"];
"@orchard-example/router" -> "example-logger" [label="^3.4.0"];
"@orchard-example/router" -> "example-retry" [label="^1.0.0"];
"@orchard-example/http-core" -> "example-logger" [label="^3.4.0"];
"@orchard-example/http-core" -> "example-json-path" [label="^2.0.0"];
"example-metrics" -> "example-logger" [label="^3.4.0"];
"example-cache" -> "example-yaml-lite" [label="^1.1.0"];
"example-yaml-lite" -> "example-json-path" [label="^2.0.0"];
// The two filled nodes are diamond joins: reached by more than one parent,
// resolved to a single version.
}
Specifications
- Seed
- 51200
- Sample Only
- true
- Format
- Graphviz DOT
- Type
- digraph
- Nodes
- 10
- Edges
- 10
- Rankdir
- LR
- Line Endings
- LF
Testing contract
Expected to pass- Scenario
- Render a dependency graph to an image, or convert DOT to a node/edge model.
- Expected result
- Rendering produces 10 boxes and 10 labelled arrows, and the two filled nodes each have more than one inbound edge.
What is a .dot file?
A DOT file is a Graphviz graph described in the DOT language — nodes, edges, and attributes as plain text — which Graphviz lays out and renders to an image. It is a standard way to define directed and undirected graphs as code.
How to use this file
Use an example DOT file to test Graphviz rendering, DOT parsing, and DOT-to-SVG/PNG conversion.
How to use this file for testing
“Dependency Graph With Diamonds (Graphviz DOT)” is a deterministic Novus Examples fixture for Graph data, Conversion testing, Editor testing. Node/edge datasets in GraphML and GEXF (directed and undirected, with attributes and weights) — for testing network importers, layout tools, and graph converters.
Documented properties for this file: seed 51200 · 10 nodes · 10 edges · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
SBOM, lockfile, provenance, and advisory fixtures describe the same fabricated component tree across formats, so a converter or scanner can be diffed against a known answer. Every package name, version, hash, and advisory ID is invented — never treat a finding here as real.
Related files
- txtcargo tree OutputCargo's tree output, which writes versions with a leading `v` and marks already-shown subtrees with `(*)` — close enough to npm's tree to fool a parser, different enough to break one. Every package, version, hash and licence is fictional — the tree describes nothing real.

- dotDependency Graph With a Cycle (Graphviz DOT)The cyclic plugin graph as DOT, with the three cycle edges highlighted. Graphviz renders it happily, which is exactly why a topological sort must be the thing that rejects it. Every package, version, hash and licence is fictional — the tree describes nothing real.

- txtgo mod graph Edge List`go mod graph` output: a flat edge list, one `parent@version child@version` pair per line with no indentation at all — the simplest graph serialisation in this category and the easiest to diff. Every package, version, hash and licence is fictional — the tree describes nothing real.

- txtGradle dependencies Report OutputGradle's dependency report, which marks repeat subtrees with `(*)` and explains the marker in a footer — so a parser has to resolve those references back to their first occurrence. Every package, version, hash and licence is fictional — the tree describes nothing real.

- txtMaven dependency:tree OutputMaven's dependency tree, complete with the [INFO] log prefix that has to be stripped before the tree can be read and the five-part coordinate form Maven uses. Every package, version, hash and licence is fictional — the tree describes nothing real.

- jsonnpm ls Dependency Tree (JSON)The nested tree `npm ls --json` prints, where a shared dependency is REPEATED under every parent rather than deduplicated — so counting objects gives a larger number than the graph has nodes. Every package, version, hash and licence is fictional — the tree describes nothing real.

Generated by generation/supply_chain.py. Free for any use, no attribution required — license.