mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-18 07:21:37 -04:00
feat(desktop): add Velopack auto-update support
Lets the desktop app self-update like CncSender, but only restarts after the user confirms via a clickable status-bar prompt -- an open, unsaved nest must never be discarded automatically. The feed URL is a blank-by- default, per-machine setting (File > Options), since it's operator infrastructure that doesn't belong in source control; Deploy-OpenNest.ps1 packages releases for whatever feed host/path the operator supplies. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e3bcc77145
commit
18d63ffd61
12 files changed
+344
-3
No files matched your search
@@ -0,0 +1,37 @@
|
||||
# Desktop auto-update
|
||||
|
||||
The Windows desktop app (`OpenNest.exe`) can self-update via
|
||||
[Velopack](https://velopack.io): `OpenNest.UpdaterService` polls a static
|
||||
file feed every 30 minutes, downloads a newer release in the background, and
|
||||
only restarts to apply it after the user confirms (a clickable status-bar
|
||||
item appears once a download finishes). It never force-restarts; an open,
|
||||
unsaved nest is never discarded automatically.
|
||||
|
||||
## Configuring the feed
|
||||
|
||||
The feed URL is a per-machine setting
|
||||
(`OpenNest.Properties.Settings.UpdateFeedUrl`), set from **File > Options >
|
||||
Auto-update feed URL**. It is blank by default, which disables update checks
|
||||
entirely — this is intentional: the feed URL is operator infrastructure, not
|
||||
something that belongs in source control, so no default ships in the repo.
|
||||
Enter a feed's base URL (`http://host:port`) and restart the app to pick it
|
||||
up.
|
||||
|
||||
Velopack only applies updates to an installed copy (`UpdateManager.IsInstalled`);
|
||||
running from a build output directory never attempts an update.
|
||||
|
||||
## Hosting a feed
|
||||
|
||||
Any static file server that can serve a `vpk pack` output directory works.
|
||||
`scripts/Deploy-OpenNest.ps1` builds a self-contained `win-x64` publish,
|
||||
packs it with the `vpk` CLI (`dotnet tool install -g vpk`), and `scp`s the
|
||||
result to a directory you provide:
|
||||
|
||||
```powershell
|
||||
./scripts/Deploy-OpenNest.ps1 -FeedHost <host> -FeedUser <user> -RemoteDataDir <path>
|
||||
```
|
||||
|
||||
Bump `<Version>` in `OpenNest/OpenNest.csproj` before each run. This is
|
||||
independent of [the GitHub release process](releasing.md) and of
|
||||
`Publish-Windows.ps1` — the latter always overrides `<Version>` via
|
||||
`-p:Version`, so the two don't conflict.
|
||||
Reference in new issue
Block a user