wharfy 0.7 — ビルド済みバイナリを持ち込めば、どの言語でも配れる
ビルド済みバイナリを持ち込む
0.7 までは wharfy が自分でクロスビルドしていた——つまり Go 専用だった。0.7 からは、すでにビルドしたバイナリを言語を問わず渡せる。wharfy はビルドを飛ばし、それをパッケージして全 owned チャネルへ配る。
channels: [releases, homebrew, scoop, script, apt, rpm]
prebuilt:
binaries:
- { os: darwin, arch: arm64, path: dist/mytool-darwin-arm64 }
- { os: linux, arch: amd64, path: dist/mytool-linux-amd64 }
- { os: windows, arch: amd64, path: dist/mytool-windows-amd64.exe }
cargo build(でも zig build でも何でも)が dist/ にバイナリを置けば、あとは wharfy release / wharfy publish がやる。Go 専用チャネル——goinstall と homebrew-core の source build——は自動で外れる。
どこまでが自分、どこからが wharfy
prebuilt はコンパイルを各アプリ側へ戻す。その先はすべて wharfy が持つ:
| 自分 | wharfy |
|---|---|
| (os, arch) ごとにコンパイル | archive・checksum・GitHub Release |
| バイナリに版を焼き込む | homebrew・scoop・curl | sh |
| バイナリに署名(codesign / Authenticode) | deb / rpm、マルチアーキ OCI イメージ、AUR |
バイナリに埋め込んだ署名はパッケージングを通っても残るので、自己署名のバイナリはそのまま配られる。wharfy は相変わらず何も注入せず、あなたのソースには触れない。
入れ方
brew upgrade wharfy / scoop update wharfy / go install github.com/ShiroDoromoto/wharfy/cmd/wharfy@latest。Linux は apt / yum リポジトリから。