wharfy 0.20.0 — latest.json に、配布元の宣言を載せられます
latest.json に、配布元の宣言を載せられます
更新チェックが読む latest.json は「どれが最新か」しか語れませんでした。ローカルにデータを
持つアプリは、アプリのバージョンとは別に「データ形式のバージョン」を持ち、その形式を扱える
いちばん古いアプリがどれかも知っています。それを置く場所が無いので、古いアプリは
「1.4.0 以降を使ってください」とバージョンを名指しできず、「入れ直してください」に落ちていました。
wharfy.yaml に書いたものが、latest.json の extra へそのまま入ります。
latest_json:
extra:
store_format: 3
min_app_version: "1.4.0"
{
"version": "1.4.0",
"notes_url": "https://github.com/acme/demo/releases/tag/v1.4.0",
"assets": { "macos-arm64": "…", "linux-x64": "…" },
"extra": {
"store_format": 3,
"min_app_version": "1.4.0"
}
}
値は任意の JSON 値です(数値・真偽・文字列・配列・入れ子)。wharfy は中身を解釈も検証も しません。意味はアプリごとに違うので、何を書き、どう読むかはアプリが決めます。読む側は、 知らないキーを無視するようにしてください。
書かなければ extra は出ません。
書き間違いは、場所を名指しして断ります
唯一の縛りは「JSON になること」です。YAML では書けてしまう非文字列キーは、黙って落とさずに断ります。
$ wharfy config
✗ wharfy.yaml is invalid (showing inferred config)
! config_invalid: wharfy.yaml: latest_json.extra.schema: key 1 is not a string (latest.json is JSON: object keys must be strings)
fix wharfy.yaml; see schemas/wharfy.config.json for known keys
黙って落とすと、宣言が消えたことに気づけません。
直したこと(0.20.1)
publishだけで配ると、latest.jsonが GitHub Release から落ちていました —releaseを 独立に叩かずwharfy publish --yesだけで配った場合です。更新チェックの向き先が404に なっていました。publishが release を内包するときもlatest.jsonを出します。
入れ方
brew upgrade wharfy / scoop update wharfy / go install github.com/ShiroDoromoto/wharfy/cmd/wharfy@latest。Linux は apt / yum リポジトリから。