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.yaml の channels: で決まる。publish が読むのと同じ一覧なので、
二重に管理する場所は無い。
コンテナと起動コマンドを指定する
verify:
images:
apt: ubuntu:24.04
rpm: rockylinux:9
run: [status, --quiet]
| キー | 既定 | 書くとき |
|---|---|---|
images |
apt: debian:12 / rpm: fedora:40 |
実際に配布するディストリビューションで確かめたい |
run |
--version → version → --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 リポジトリから。