wharfy 0.17.0 — verify --install が各チャネルからインストールして起動する

verify --install — 実際に入れて、起動する

verify は、マニフェストを取ってバージョンを比べるだけだった。formula に 0.17.0 と書いて あっても、その先の bottle が無い、壊れている、起動しない、ということは起きる。

--install を付けると、各チャネルを利用者と同じ手順でインストールし、入ったバイナリを起動する。 インストール先はすべて一時ディレクトリで、終われば消える。

チャネル --install が実際にすること
apt, rpm debian:12 / fedora:40 の中でリポジトリからインストールし、起動する
script 公開した install.sh(Windows なら install.ps1)を一時的な prefix へ実行する
goinstall go install …@<tag> を一時的な GOBIN
releases 全アセットをダウンロードし、マニフェストの sha256 と突き合わせる
homebrew formula を読む。bottle はインストールしない
scoop 未対応。skipped として報告する
$ wharfy verify --install
✓ verified homebrew, releases, script, goinstall, apt, rpm; skipped scoop

--install を付けなければ、結果は partial にとどまる。確かめられなかったチャネルは skipped になる。何も検証していなければ ok にはならない。

チャネルを1つだけ確かめる

$ wharfy verify script --install
✓ verified script

検証するチャネルは wharfy.yamlchannels: で決まる。publish が読むのと同じ一覧なので、 二重に管理する場所は無い。

コンテナと起動コマンドを指定する

verify:
  images:
    apt: ubuntu:24.04
    rpm: rockylinux:9
  run: [status, --quiet]
キー 既定 書くとき
images apt: debian:12 / rpm: fedora:40 実際に配布するディストリビューションで確かめたい
run --versionversion--help の順に試す サブコマンドが必須の CLI

run に書いた引数は、コンテナでも、一時的な prefix でも、一時的な GOBIN でも、同じように使われる。

断るようになったこと

wharfy.yaml の書き間違いは、これまで黙って無視されていた。

$ 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

channels: から外したチャネルは、名指しで指定しても発行しない。

$ 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 は本物の Windows で検証している

0.16.1 で直した install.ps1 は、PowerShell が読み込んだ時点で構文エラーになり、どの Windows でも 動かなかった。いまは pull request のたびに、Windows PowerShell 5.1 と PowerShell 7 の両方が、 ダウンロードからインストール、起動までを実行する。

入れ方

brew upgrade wharfy / scoop update wharfy / go install github.com/ShiroDoromoto/wharfy/cmd/wharfy@latest。Linux は apt / yum リポジトリから。