Skip to content

dartograph 0.6.0

Choose a tag to compare

@ictechgy ictechgy released this 10 Sep 03:45
85c345a

A minor release: the public library API was trimmed to what is actually supported, plus output-fidelity fixes and a pub workspace membership hardening. CLI behavior and exit codes are unchanged for normal inputs.

Library API (breaking for library consumers; CLI unchanged)

  • Removed querySymbol (a one-shot wrapper used only by tool/ benchmarks) — construct a SymbolQuerySession and call query.
  • Removed CodeGraph.usageEdgesFrom (no product caller) — filter CodeGraph.edges.
  • SymbolQuerySession.analysis is no longer public. Use deadDeclarations (an unmodifiable List<DeadFinding>) for the query --baseline flow, or SymbolQuerySession.query for reachability (each document carries the symbol's reachability state). DeadFinding is now exported; ReachabilityResult/ReachabilityExplanation stay internal, so no public member references an unexported type.

Fixes & hardening

  • SARIF: output no longer corrupts already-absolute source URIs — file: (out-of-root) and package: (dependency) sources are passed through instead of being split on / and re-encoded (file:///a.dart used to become file%3A///a.dart). Project-relative sources keep the existing backslash-/percent-safe encoding.
  • HTML graph: a library whose file name contains :: is classified correctly (via the .dart:: declaration boundary) instead of being shown as a member with a truncated name.
  • bridges pub workspace: detection now validates membership. A resolution: workspace package joins the nearest ancestor workspace: root when that root plausibly lists it (explicit paths matched after URL normalization; glob entries and non-list values conservatively accepted). A well-formed explicit list that omits the package falls back to the scan root with a new pub-workspace-member-not-listed limitation, so a misconfigured workspace never silently skews the isthmus join basis.

Docs

  • README revised for clarity (English original + Korean twin); no behavior change.

Full details: CHANGELOG.md (English) / CHANGELOG.ko.md (Korean).

Install: dart pub global activate dartograph — pure Dart CLI, Dart SDK 3.11+, no Flutter SDK required. MIT licensed, permanently free (commercial use included).