Skip to content

v0.8.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Oct 14:32

diago diff warns when an edit gave something a new id, and the plugin draws a change diagram by
one procedure. Nothing v0.7.1 accepts is rejected and nothing draws differently. The one new
failure is scripts/diago-render --strict on a revision that raises the new warning.

Diffs:

  • A new advisory, id-drift. diago diff raises it when it adds an element while it removes
    another of the same kind that reads the same, under another id: a node, group, class, package
    or actor with the same label, or an edge or relation with the same ends and label. That is
    most likely one thing whose id changed between the versions, which the diff draws twice, once
    removed and once added. The warning is on the added element and names the old id to give back:

    warning: id-drift after.nodes[0]: node "API" is added and a node with the same label removed under the id "api": if it is the same node, keep the id "api"

    An edge without an id of its own never raises it (edge-without-id covers that case).
    check never raises it, since it needs both versions. When the thing really was replaced and
    keeps its label, add id-drift to the new spec's ignore.

Plugin:

  • A change diagram is made one way: the before state written as <slug>.v1.json, copied to
    <slug>.v2.json, the copy edited keeping the id of everything that stays, then diago diff.
    The illustrating skill spells out the procedure and the shortcuts that break it (writing v2
    from scratch, marking changes in a single spec), and the SessionStart hook states it in
    every session.
  • A diff is shown however much changed. The one exception is a rewrite: more than half of the
    old version's nodes and edges removed, with no id-drift.
  • A diagram in chat runs diago itself. scripts/diago-render handles a review document's
    diagrams; it is a plugin file and not a command on PATH, so the skills and the hook name it
    by its full path. It relays a revision's id-drift as a lint line, and --strict fails on
    it.
  • The diagramming skill has a section on showing a change, and its cheatsheet documents the
    class fields stereotype, type_params, static, abstract, directed and
    legend_labels, the top-level theme key, and every advisory.