wharfy 0.20.0 — latest.json に、配布元の宣言を載せられます

latest.json に、配布元の宣言を載せられます

更新チェックが読む latest.json は「どれが最新か」しか語れませんでした。ローカルにデータを 持つアプリは、アプリのバージョンとは別に「データ形式のバージョン」を持ち、その形式を扱える いちばん古いアプリがどれかも知っています。それを置く場所が無いので、古いアプリは 「1.4.0 以降を使ってください」とバージョンを名指しできず、「入れ直してください」に落ちていました。

wharfy.yaml に書いたものが、latest.jsonextra へそのまま入ります。

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)

入れ方

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