Skip to main content

Release Train

@svendowideit/release-trainv2026.10.23.1· MIT· 1d agoBEHAVIORSWORKFLOWSREPORTSACCEPTED WARNINGS
01README

The release dashboard for a swamp extension repository. It draws the dependency graph of every extension you own plus the extensions they use, shows what needs publishing (and in what order, and to which channel), and reports release-hygiene compliance and test depth — so "what do I ship next?" is one command. WHAT IT DOES

Turns a repo of extensions into a single release picture. It discovers every git-tracked manifest.yaml, builds the dependency graph from each dependencies: list (external dependencies included), and topologically orders them so a dependency is always published before what depends on it. Optional integration declared in optionalDependencies: is drawn as a dotted edge: the extension uses that dependency when it is installed, but it never blocks a publish. The diagram runs right-to-left so the most-reused dependencies sit on the left. Each extension is annotated with its on-disk version, the latest version published to each of stable / rc / beta, the version actually pulled, and a publish state — up-to-date on stable (bright green), up-to-date but only on beta/rc, i.e. needs promoting (duller lime), needs-publish, or blocked on a dependency. It also reports release-hygiene compliance and test depth, separating colocated unit tests (with measured line coverage) from the black-box test-factory.yaml acceptance tests. Prefer it over reading git status, swamp extension version, and the scoreboard by hand: one read-only run produces a Mermaid diagram, a hygiene/test matrix, and an ordered publish plan, with a target channel advised from the published trend and check health.

INSTALL

swamp extension pull @svendowideit/release-train

DEPENDENCIES

@svendowideit/meta-factory — pulled automatically. release-train reads its score/summary resources for the documentation score and the test axes (unit-test coverage and test-factory.yaml acceptance coverage); it never re-runs those checks itself. A missing or stale score is shown as stale, not recomputed. Otherwise it uses only the swamp CLI and the bundled deno binary that swamp already ships.

RUN

# The whole dashboard: dependency diagram, hygiene/test matrix, and the
# ordered publish plan. It writes release-train.md — one GitHub/gist-
# renderable document with every table and the Mermaid diagram.
swamp workflow run @svendowideit/release-train
cat release-train.md

# Skip the slower hygiene checks — versions, graph and reused data only.
swamp workflow run @svendowideit/release-train --input runChecks=false

# Run offline (no registry lookups or push dry-runs); published versions
# come from the lockfile and review state is reported unknown.
swamp workflow run @svendowideit/release-train --input offline=true

# Same dashboard, but scoped to the extensions *installed on this serve*
# (pulled-extensions cache, pulled version/channel and triggers included).
swamp workflow run @svendowideit/release-train-serve
cat release-train-serve.md

# Same dashboard for one swamp-club user or collective. Reads the registry
# at swamp-club.com and downloads each manifest into
# .swamp/release-train-cache/; it does NOT modify, clone, or push into
# any existing swamp repository.
# The '@' is optional; pass the bare collective name (no file lookup).
swamp workflow run @svendowideit/release-train-club --input owner=webframp
cat release-train-club.md

# Run just the analysis and read the diagram it wrote to disk.
swamp model @svendowideit/release-train method run analyze release-train
cat release-train.mmd

# Read the rendered report from the last run.
swamp report get @svendowideit/release-train-report \
  --workflow @svendowideit/release-train --markdown

CONFIGURE

All settings are optional global arguments (set at model creation or per run with --input):

root             Directory scanned for manifests        (default extensions)
gitOnly          Only git-tracked manifests            (default true)
includeExternal  Show dependencies outside this repo   (default true)
runChecks        Run quality/fmt/deno/push checks      (default true)
concurrency      Extensions checked in parallel        (default 4)
checkTimeoutMs   Per-check timeout                     (default 120000)
offline          Skip registry and network checks      (default false)
threshold        Docs score below which -> stay beta   (default 75)
metaModel        Meta-factory model to read            (default meta-factory)
outputFile       Where the Mermaid diagram is written  (default release-train.mmd)
markdownFile     Where the one-file dashboard is written (default release-train.md;
                 empty disables the write)

The channel advice is advisory only: release-train reports each channel's published version and suggests a target, but never publishes, bumps, or promotes.

WHAT IT INSTALLS

Nothing on the host — no services, daemons, cron triggers, or webhooks. It runs only when invoked and never modifies the extensions it analyses. It writes a Mermaid diagram to outputFile, the full one-file dashboard to markdownFile, and its own swamp resources (node/graph/plan/summary).

02Behaviors1
@svendowideit/release-trainv2026.10.23.1release_train.ts

Global Arguments

ArgumentTypeDescription
root?stringDirectory (relative to the repo root) scanned when git discovery is unavailable.
owner?stringswamp-club user or collective (bare name, e.g. webframp, or with a
gitOnly?booleanScan only git-tracked manifests (excludes pulled/generated copies under .swamp/).
includeExternal?booleanShow and query dependencies that are not in this repo as external nodes.
runChecks?booleanRun the quality/fmt/deno/workflow-validate/push-dry-run hygiene checks in bounded parallel.
concurrency?numberHow many extensions to check in parallel.
checkTimeoutMs?numberPer-subprocess timeout for hygiene checks; a timeout is recorded as a hygiene issue, never fatal.
offline?booleanSkip registry lookups and network checks; published versions come from the lockfile only and review state is reported unknown.
threshold?numberDocumentation score below which an extension is advised to stay on beta.
metaModel?stringName of the @svendowideit/meta-factory model whose score/summary resources are read for docs score and test coverage.
outputFile?stringPath (relative to the repo root) the Mermaid diagram is written to by `analyze`.
markdownFile?stringPath (relative to the repo root) the full dashboard is written to as one GitHub/gist-renderable markdown document. Empty disables the write; the same document is always available via `swamp report get @svendowideit/release-train-report --markdown`.
fn analyze()
Discover every extension, build the dependency graph, gather version/hygiene/test status, write the diagram and publish plan

Resources

node(30d)— Release and dependency status for one extension
graph(30d)— Extension dependency graph and topological publish order
plan(30d)— Ordered publish plan with advisory target channels
summary(30d)— Rollup across every extension analysed
03Workflows3
@svendowideit/release-train341814a7-b5ff-4ced-a6a4-815964d68f89

Draw the dependency graph of every extension in this repo plus the extensions they use, annotate each with its on-disk and published (stable / rc / beta) versions, flag which extensions have changes that need publishing, show release-hygiene compliance and test depth (unit vs test-factory acceptance), and print an ordered publish plan. The run is read-only: it publishes nothing, bumps nothing, and edits no extension. It reuses `@svendowideit/meta-factory`'s score/coverage data for the docs and

analyzeAnalyze every extension and render the release dashboard.
1.analyze— Discover, graph, gather status, write the diagram and plan.
@svendowideit/release-train-servea668ded9-f69a-420c-b27d-495ee14cfac2

Draw the dependency graph of every extension *installed on (available to) this swamp serve* — the pulled extensions cache — plus the extensions they use, annotated with on-disk and published (stable / rc / beta) versions, publish state, hygiene compliance, and test depth, and print an ordered publish plan. Unlike `@svendowideit/release-train`, this variant does not scan the worktree (`extensions/`) for git-tracked manifests; it scans the installed extension cache, with gitOnly disabled, so it r

analyzeAnalyze every installed extension and render the release dashboard.
1.analyze— Discover installed manifests, graph them, gather status, write the diagram and plan.
@svendowideit/release-train-club1cde8b93-fe27-4918-b456-da50804c6a24

Draw the dependency graph of every extension published by a single swamp-club user or collective — plus the extensions they use — annotated with on-disk and published (stable / rc / beta) versions, pull and update information, docs/test scores and hygiene state, and print an ordered publish plan. It queries the public registry at swamp-club.com for every extension published by the given user/collective and pulls each manifest into `.swamp/release-train-cache/` (the only file writes it makes, in

analyzeAnalyze every extension for the owner and render the release dashboard.
1.analyze— Discover manifests, graph them, gather status, write the diagram and plan.
04Reports1
@svendowideit/release-train-reportworkflow
release_train_report.ts

Dependency diagram, hygiene/test matrix, and ordered publish plan across every analysed extension

release-trainreleasedependencies
05Previous Versions1
2026.10.18.3MIT

Added 2 workflows

06Stats
A
93 / 100
Downloads
6
Archive size
99.5 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit1/2partial
    • @std/assert--jsr:@std/assert@1 is a range; audited 1.0.19, the version the registry resolved
    • @std/path--jsr:@std/path@1 is a range; audited 1.1.6, the version the registry resolved
    2 dependencies found
    • jsr:@std/assert@1 -- audited 1.0.19
    • jsr:@std/path@1 -- audited 1.1.6
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License2/2earned
  • Verified public repository2/2earned

08Platforms