Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/dwarves

.nornir/release-doctor-for-idiots.md

Release doctor for idiots — just ship it

You want your crates on crates.io, in the right order, without half-breaking the world. One command. It checks everything, publishes each repo after the ones it depends on, and STOPS the instant anything goes wrong.

The one command

cd workspace_nordisk    # or wherever your nornir-workspace.toml lives

nornir release doctor --publish --bump patch

That's it. It assesses the whole constellation, refuses if anything is broken, then publishes every public repo to crates.io — dependencies first — and fail-stops if a single crate fails. Private repos are skipped automatically.

If it complains

"version=" / path-dep-version gaps — a crate has a path dependency with no version. Auto-fix it, then run again:

nornir release doctor --fix
nornir release doctor --publish --bump patch

Scared? Watch it pretend-publish first (touches nothing on crates.io):

nornir release doctor --publish --publish-dry-run --bump patch

If it stops mid-way

It fail-stops on purpose so you can't half-break things. Read the error, fix the cause, then finish without re-bumping or re-publishing what already shipped:

nornir release doctor --publish --bump keep

--bump keep publishes the current versions and skips everything already on crates.io — safe to run over and over until it's done. Stopped at a specific repo? Skip ahead:

nornir release doctor --publish --bump keep --publish-from facett

Messed up? Undo it

nornir release undo <release-id> --yank

(The release-id is printed at the end of every real run.) It un-bumps, restores patches, and yanks the crates.io uploads (uploads can't be deleted, only yanked).

First time on a new machine

You need a crates.io token once — the doctor can't make one for you:

  1. crates.io → Account → API Tokens → create a token.
  2. cargo login <paste-token>

The four buttons, in order

nornir release doctor                     # look (read-only)
nornir release doctor --fix               # auto-fix the mechanical stuff
nornir release doctor --rehearse          # dry-run the whole thing locally (fake registry)
nornir release doctor --publish --bump patch   # SHIP IT

One honest note

Not everything can be fixed automatically. When it can't, the doctor tells you exactly what's wrong and what to do — it never guesses. If it says a dependency isn't part of the release (e.g. modgunn), or asks you to make a choice, that's a real decision only you can make. Do what it says, then run the command again.