Home

dev / openkara

publicthedavidweng/OpenKara· sync paused
Overview Code History Branches Pull requestsIssuesInsights
main
HomeOverview Code PRsIssues

feat(shell): adopt the official updater plugin for in-app updates (#255) (#259)

2 months ago

3a60fde
Authored
Davy7/26/2026, 9:37:17 AM
* feat(shell): adopt the official updater plugin for in-app updates (#255)

* feat(i18n): localize the updater banner across all 17 locales (#255)

* fix(shell): harden updater review findings (#255)

- Gate the launch check on a new self_update_supported command so the
  banner stays truly silent on non-AppImage Linux (.deb/Flatpak/dev):
  tauri-plugin-updater's check() has no install-format guard and would
  otherwise offer a .deb install the AppImage payload, failing only at
  install time. Corrects the docs/comment 'never appears there' claim.
- release.yml: set max-parallel: 1 on the publish matrix so
  tauri-action's non-atomic read-modify-write of latest.json cannot race
  and drop a platform from the served manifest.
- capabilities: scope updater to allow-check + allow-download-and-install
  (the only commands the UI invokes) instead of the broader updater:default.

* fix(shell): add the app bundle target so macOS emits updater artifacts (#255)

The updater artifact on macOS (.app.tar.gz + .sig) hangs off the `app`
bundle target, not `dmg`. With targets limited to dmg/nsis/appimage/deb,
a signed release build warns "no updater-enabled targets were built" and
latest.json would ship without darwin entries — macOS installs would
never see an update. The .app is built as a dmg prerequisite anyway, so
listing it costs nothing locally.

Found by the local signed-build proof (see PR discussion).

Parentfa5cadc

34 files changed
  • .github/workflows/release.yml+34−2
  • docs/RELEASING.md+54−0
  • package.json+2−0
  • packaging/flatpak/generated/cargo-sources.json+104−0
  • packaging/flatpak/generated/node-sources.0.json+15−1
  • pnpm-lock.yaml+20−0
  • src-tauri/Cargo.lock+111−1
  • src-tauri/Cargo.toml+2−0
  • src-tauri/capabilities/default.json+4−1
  • src-tauri/src/commands/mod.rs+1−0
  • src-tauri/src/commands/self_update.rs+29−0
  • src-tauri/src/lib.rs+11−1
  • src-tauri/tauri.conf.json+13−1
  • src-tauri/tauri.release.conf.json+5−0
  • src/components/Layout/MainContentView.tsx+4−0
  • src/components/Layout/UpdateBanner.test.tsx+147−0
  • src/components/Layout/UpdateBanner.tsx+192−0
  • src/locales/de.json+9−0
  • src/locales/en.json+9−0
  • src/locales/es.json+9−0
  • src/locales/fr.json+9−0
  • src/locales/id.json+9−0
  • src/locales/it.json+9−0
  • src/locales/ja.json+9−0
  • src/locales/ko.json+9−0
  • src/locales/nl.json+9−0
  • src/locales/pl.json+9−0
  • src/locales/pt-BR.json+9−0
  • src/locales/ru.json+9−0
  • src/locales/th.json+9−0
  • src/locales/tr.json+9−0
  • src/locales/vi.json+9−0
  • src/locales/zh-CN.json+9−0
  • src/locales/zh-TW.json+9−0