dist.town

@graham.systems /dist-town/cli

0.4.0

all artifacts verified

dist-town/cli 0.4.0

This release gives the CLI read capabilities, and reorganizes some commands in the name of consistency. There are breaking changes as a result.

The read surface

  • disttown release list [project] — what you've published, newest first, with channel and lifecycle state.
  • disttown release show <project> <version-or-pointer> — one release in full: digests, download locations with verification state, pointers, source claim, changelog. release show mytool latest works.
  • disttown project list and disttown pointer list <project> — your projects (aliases included) and where every pointer aims.
  • disttown whoami — who this machine publishes as, and whether your cached session's scopes still cover everything. The stale-session surprise now surfaces here instead of mid-publish.
  • disttown logout — clears the local session, but does not delete the session server-side.

Reads consult dist.town's index by default — the same public surface the pages use. --pds reads straight from your own repo instead, and --compare reports exactly where the two disagree (useful right after publishing, before the index catches up). Every read says which source answered, and everything takes --json.

Breaking: lifecycle verbs moved, and the vocabulary is complete

disttown yank is now disttown release yank <project> <version> — and it brought company:

  • release deprecate / release undeprecate — "still works, stop building on it." Deprecated releases keep resolving, with a warning.
  • release unyank — every verb has a named inverse now; --undo is gone.
  • project archive / project unarchive — wind a project down without breaking anything it ever shipped.

All of them take --kind and --reason — the inverses too, because "why it came back" is as much history as "why it left."

Breaking: --channel changes what latest means

disttown publish 2.0.0-rc1 --channel beta now moves the beta pointer and leaves latest alone. Previously it moved latest — which meant a release candidate could silently become what every updater and install script sees. The rule is one sentence: the default pointer follows the channel. Want a channel release on latest? Say so: --pointer latest --pointer beta. Naming any pointer replaces the default entirely. Channelless publishes are unchanged.

Fixed: publish could hang forever under OAuth

A logging deadlock could freeze the CLI — silently, permanently — on the first library log line emitted after login, which in practice meant the first blob upload of a publish. It could also invalidate your cached session on the way down, forcing a re-login.

Publish is harder to hurt yourself with

  • Scope problems now fail before anything uploads.
  • publish --dry-run prints the whole plan — digests, records, which pointers move — touching nothing. CI can gate on its exit status.
  • If a publish fails partway, the CLI names every file already uploaded (content-addressed, so retrying reclaims them; nothing is deleted).
  • disttown doctor [project] checks the whole pipeline in one go: session, scopes, PDS, storage, and whether dist.town's index can see you — with "publishable but not yet visible" clearly told apart from anything actually wrong.

Artifacts

  • disttown-darwin-amd64.tar.gz darwin/amd64 · 6.5 MB · verified 2026-09-21
    Download
    sha-256
    fc70e59726651013c141816feb8b2fc7025af7e260db2216e7c6dc20a7e259da
  • disttown-darwin-arm64.tar.gz darwin/arm64 · 6.0 MB · verified 2026-09-21
    Download
    sha-256
    270914604886329cf9d9d7d3d15d411151ad7a831011e6c264ef71fd9cd965b4
  • disttown-linux-amd64.tar.gz linux/amd64 · 6.4 MB · verified 2026-09-21
    Download
    sha-256
    f7cbc12f0f0460720f506d7a2e9019db1d1b1f97b7050ed1e0e79c51e63d12dc
  • disttown-linux-arm64.tar.gz linux/arm64 · 5.7 MB · verified 2026-09-21
    Download
    sha-256
    560a8987cd678b4a5ce17e5208ab7df0004f205665f3cfd337cbaa88289e9f6f
  • disttown-windows-amd64.zip windows/amd64 · 6.5 MB · verified 2026-09-21
    Download
    sha-256
    1df434e308197cc2244fac3837d004a52bf1d47fd7cadfd07ebb1ab71add7354
  • disttown-windows-arm64.zip windows/arm64 · 5.8 MB · verified 2026-09-21
    Download
    sha-256
    ce0983dbf4cc77071f7fe6e8a97be86f00985ec9ff8e93f210dd2265239b3537