wharfy 0.20.0 — say more in latest.json
Declare what you want in latest.json
The file your update check reads could only say which version is newest. An app that keeps data on disk also has a data format version, and knows the oldest app version that can read it — but there was nowhere to put that. So an old copy could not name a version, and fell back to “please reinstall the latest”.
Whatever you write in wharfy.yaml now rides along:
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"
}
}
- Any JSON value: numbers, booleans, strings, arrays, nested objects.
- wharfy neither interprets nor validates what is in there. The meaning is yours, so the contract belongs to the side that reads it — and that reader should ignore keys it does not know.
- Write nothing and there is no
extra.
A typo is refused, by name
The one rule is that it has to be JSON. YAML lets you write a key that is not a string; wharfy will not quietly drop it.
$ 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
Dropped quietly, the declaration would just be gone and nobody would notice.
Fixed (0.20.1)
latest.jsonwas missing from the GitHub release when you shipped withpublishalone — if you ranwharfy publish --yeswithout callingreleaseseparately, your update check pointed at a404.publishnow writeslatest.jsonwhen it takes the release step on itself.
Getting it
brew upgrade wharfy / scoop update wharfy / go install github.com/ShiroDoromoto/wharfy/cmd/wharfy@latest. On Linux, from the apt / yum repo.