wharfy 0.17.0 — verify --install installs from each channel and runs it

verify --install — install it, then run it

verify used to fetch a manifest and compare a version string. A formula can say 0.17.0 while the bottle it points at is missing, corrupt, or unable to start.

--install installs each channel the way your users install it, then runs the binary. Everything lands somewhere throwaway.

channel what --install actually does
apt, rpm installs from your repo inside debian:12 / fedora:40 and runs it
script runs the published install.sh (or install.ps1 on Windows) into a temporary prefix
goinstall go install …@<tag> into a temporary GOBIN
releases downloads every asset and checks its sha256 against the manifest
homebrew the formula is read; the bottle is not installed
scoop not covered yet; reported as skipped
$ wharfy verify --install
✓ verified homebrew, releases, script, goinstall, apt, rpm; skipped scoop

Without --install a check is partial. A channel wharfy cannot check is skipped. Verifying nothing is never ok.

Verifying one channel

$ wharfy verify script --install
✓ verified script

What gets verified comes from channels: in wharfy.yaml, the same list publish reads. There is no second place to keep in sync.

Choosing the image and the run command

verify:
  images:
    apt: ubuntu:24.04
    rpm: rockylinux:9
  run: [status, --quiet]
key default write it when
images apt: debian:12 / rpm: fedora:40 you want the distro you actually ship to
run tries --versionversion--help your CLI needs a subcommand to start

run reaches every place a binary is launched — the container, the temporary prefix, the throwaway GOBIN.

What wharfy now refuses

A typo in wharfy.yaml used to be silence.

$ wharfy config
✗ wharfy.yaml is invalid (showing inferred config)
  ! config_invalid: wharfy.yaml: line 6: unknown key "images"
    fix wharfy.yaml; see schemas/wharfy.config.json for known keys

A channel removed from channels: stays removed, even when you name it directly.

$ wharfy publish scoop --dry-run
✗ scoop is not in wharfy.yaml channels: — nothing published
  ! channel_not_configured: scoop is not a configured channel (declared: homebrew, script)

install.ps1 is tested on a real Windows

The install.ps1 fixed in 0.16.1 failed on every Windows machine: PowerShell hit a syntax error while parsing it. Now, on every pull request, both Windows PowerShell 5.1 and PowerShell 7 run it — download, install, launch.

Getting it

brew upgrade wharfy / scoop update wharfy / go install github.com/ShiroDoromoto/wharfy/cmd/wharfy@latest. On Linux, from the apt / yum repo.