Skip to main content

Publish

The required: field

Every publisher block accepts a required: field that controls whether a failure from that publisher fails the overall release.

homebrew_casks:
  - repository:
      owner: myorg
      name: homebrew-tap
    required: true   # release fails if the Homebrew cask push fails

required: sits on every publisher block the same way — the example above happens to show the top-level homebrew_casks array, but a per-crate publish.scoop, publish.cargo, or publish.homebrew_cask block takes it identically.

Behavior

ValueEffect
trueFailure here causes the release to exit non-zero.
falseFailure is logged but the release continues.
omitted (default)Falls through to the publisher's hardcoded default.

Per-publisher defaults

PublisherDefaultRationale
GitHub Releases (release:)trueCore delivery artifact; a failed release upload is always a blocker.
crates.io (cargo)trueRegistry publish is the primary artifact for library crates.
All othersfalseSecondary distribution channels; partial failures should not block the release.

Each per-publisher page lists its default in the Classification table and includes a required: snippet in the config reference.

Other publishers — Homebrew Casks (the canonical Homebrew surface; deprecated Formula is documented separately), Scoop, Chocolatey, Winget, AUR, Krew, MCP registry, SchemaStore, crates.io, NPM, Docker Hub, and others — are documented in their own pages.

Submitter publishers

Chocolatey, winget, and AUR Sources are submitter publishers: they push to an external moderation queue whose outcome is asynchronous. The submit itself succeeds at queue acceptance time — not when the package is approved and live.

Setting required: true on a submitter publisher has no meaningful effect because the failure mode it guards against (queue rejection) happens days after the release completes. Anodizer emits a tracing::warn at config-validation time if required: true is set on one of these publishers. See the per-publisher pages for the exact warning message.