Skip to content

DiagramPilot v0.2.2

Choose a tag to compare

@github-actions github-actions released this 07 Jun 08:14
5a42011

DiagramPilot v0.2.2

Issue: Add DOT export
Issue Version: 0.2.2
Tag: v0.2.2
npm: https://www.npmjs.com/package/diagrampilot/v/0.2.2
Public Website: https://diagrampilot.com

Summary

Add DOT as an exported artifact through diagrampilot export <path> --format dot. DOT should follow the existing export contract: stdout by default,
explicit file writes only with --out, and repairable diagnostics for invalid
input.

The output should use digraph, encode undirected edges with dir=none, and
represent groups as Graphviz clusters where practical without adding
Graphviz-specific DiagramSpec semantics.

Implementation Notes

  • Added @diagrampilot/export-dot as a public workspace package with source,
    built package output, package metadata, README, license, TypeScript project
    references, lockfile metadata, and release/package readiness coverage.
  • Wired diagrampilot export <path> --format dot through the existing command
    planning seam, preserving stdout-by-default behavior and explicit file writes
    only through --out.
  • Implemented DOT output with digraph, DiagramSpec direction to Graphviz
    rankdir, quoted DOT IDs, DOT-safe quoted labels, directed edges, and
    undirected DiagramSpec edges as directed DOT edges with dir=none.
  • Rendered DiagramSpec groups as Graphviz cluster_<stable_id> subgraphs using
    the existing DiagramSpec topology seam, including nested groups and root
    nodes.
  • Mapped existing metadata keys to DOT attributes where useful:
    metadata.external_url becomes URL, and metadata.source becomes
    tooltip, using the same escaping path as labels.
  • Updated public docs, maintainer docs, demo docs, release workflow matrices,
    package readiness checks, package publish-state checks, and docs drift tests
    to treat DOT as a shipped export target and @diagrampilot/export-dot as a
    public package.
  • Created the @diagrampilot/export-dot package on npm from an authenticated
    passkey-backed CLI publish so npm trusted publishing can be configured for
    the package. The package is visible at 0.2.1; npm reported both
    prealpha and latest dist-tags pointing at 0.2.1 after the first
    publish.
  • Confirmed npm trusted publishing was configured for @diagrampilot/export-dot
    with repository StiensWout/DiagramPilot and workflow
    .github/workflows/release.yml, matching the other public packages.
  • Diagnosed the post-PR release dry-run failure as stale shared release
    metadata: the workflow tried to publish already-published
    diagrampilot@0.2.1 on main. Bumped the shared DiagramPilot release
    metadata to 0.2.2 with scripts/bump-release-version.mjs and refreshed
    checkout demo SVG provenance at the new version.

Validation Results

  • npm run build passed.
  • node --test test/export-dot.test.mjs test/cli-command-planning.test.mjs test/cli-command-planning-seam.test.mjs test/cli-smoke.test.mjs test/documentation-contract.test.mjs test/docs-public-boundary.test.mjs test/package-readiness.test.mjs test/package-publish-state.test.mjs test/github-actions-release.test.mjs test/release-version-tooling.test.mjs
    passed: 86 tests.
  • npm test passed: 173 tests.
  • node packages/cli/dist/index.js export demo-projects/checkout/docs/architecture.dp.yaml --format dot
    passed and printed DOT with digraph, nested clusters, labels, and metadata
    tooltips.
  • npm whoami passed as stienswout.
  • npm publish --workspace @diagrampilot/export-dot --tag prealpha --access public --auth-type=web
    passed after browser passkey authentication.
  • npm view @diagrampilot/export-dot@0.2.1 version dist-tags --json --registry=https://registry.npmjs.org/
    passed and returned version 0.2.1 with prealpha and latest dist-tags.
  • npm run check:release-version -- 0.2.2 passed.
  • npm publish --dry-run --workspace diagrampilot --tag latest --access public
    passed for diagrampilot@0.2.2, matching the release job command that had
    failed at 0.2.1.
  • npm publish --dry-run --workspace <package> --tag latest --access public
    passed for all public workspaces: diagrampilot, @diagrampilot/core,
    @diagrampilot/icons, @diagrampilot/export-mermaid,
    @diagrampilot/export-d2, @diagrampilot/export-dot, and
    @diagrampilot/render-svg.
  • node scripts/generate-release-notes.mjs --version 0.2.2 --tag v0.2.2
    passed.
  • git diff --check passed.