Windows Manager: Updates page and staged package upgrade workflow
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- cpp, powershell
- Ambito
- desktop-dev, release
Direzione di ricerca
Inizia esaminando packaging/windows/scripts/upgrade-package.ps1 e il PR #4350 a cui si fa riferimento, quindi traccia il modo in cui Windows Manager rappresenta attualmente le proprie pagine e le versioni dei pacchetti. Verifica la scheda Updates e il workflow a fasi rispetto ai criteri di accettazione, inclusi i controlli di compatibilità, la conservazione dei dati dell’utente, la convalida dello stato di salute e il rollback.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Feature request
Add an Updates page to the Windows OVMS Manager that lets users discover when a newer OVMS package is available and apply it through a safe, validated, recoverable upgrade — without manually locating release assets, unzipping, or editing environment variables.
This complements the standalone Windows installer/Manager (see #4347) and is implemented in PR #4350.
Motivation
On Windows, OVMS is distributed as a portable ovms.zip payload. Today, updating means: find the right release asset, download it, stop the server, unzip over the install, fix up environment/config, and restart — error-prone and easy to get into a half-upgraded, non-booting state. Because OVMS ships as a version-matched stack (ovms.exe + OpenVINO runtime + GenAI + tokenizers + Python), mixing individual DLLs across releases is a common failure mode. A guided, all-or-nothing upgrade flow removes that risk.
Components tracked
The Updates page reports installed vs. latest for the package as a matched set:
- Base package (the OVMS Windows payload / install marker version)
- OpenVINO Model Server (
ovms.exe --version) - OpenVINO GenAI backend (bundled GenAI runtime version)
Versions are read from the local install (install.json marker + ovms.exe --version) and compared against release metadata for the matching package variant (python_on / python_off).
Expected behavior
Update check
- One "Check for updates" action checks all components together (they move as one matched package, not independently).
- Show, per component: installed version, latest compatible version, and a state —
Up to date/Update available/Cannot check(offline/metadata error). - Only surface an Install/Upgrade action when a strictly newer, variant-compatible package exists.
- Provide release-notes links for Model Server and GenAI.
- Update checks are explicit/manual by default; periodic checks are opt-in (never auto-install).
Staged, validated upgrade (implemented in packaging/windows/scripts/upgrade-package.ps1)
- Stop the Manager-owned
ovms.exe(or the service, in service mode). - Download the matching package to
%LOCALAPPDATA%\OVMS\packages. - Verify the download (checksum/size) and that required files are present.
- Extract to a staging dir; run staged
ovms.exe --versionas a smoke test. - Back up the current install to
%LOCALAPPDATA%\OVMS\packages\backup\<version>. - Replace the install files in-place; preserve user data under
%LOCALAPPDATA%\OVMS(settings, models, logs). - Re-run configuration/marker update; restart the server if it was running.
- Run a health check; roll back from backup if version or health validation fails.
UI (Updates tab)
- A row per component (Base package / Model Server / GenAI) with installed version, latest version, status badge, and a release-notes link.
- A single "Check for updates" button and a contextual "Install update" button that appears only when an update is available.
- Progress and result surfaced inline (checking / downloading / verifying / upgrading / rolled back), with errors shown clearly.
- Never mixes DLLs from different releases — the package is the unit of upgrade.
Safety / non-goals
- No silent auto-install; user confirms before download and before applying.
- Version + variant must match the installed stack, or the action is blocked.
- User data (
%LOCALAPPDATA%\OVMS) is preserved across upgrades. - Failed upgrades restore the previous working package from backup.
- Out of scope for the first version: delta/patch updates, background auto-update, and updating the Manager app itself (tracked separately).
Acceptance criteria
- Updates page shows accurate installed and latest versions for all three components.
- A single check covers all components and reports the correct state.
- Install action appears only when a newer, variant-compatible package is available.
- Release-notes links open for Model Server and GenAI.
- Upgrade runs the staged download → verify → back up → replace → validate → reconfigure flow.
- Settings, models, and logs are preserved across an upgrade.
- A failed/invalid upgrade rolls back to the previous working install.
- Offline / metadata-unavailable is handled gracefully (no crash, clear message).
Value
Gives Windows Manager users a clear, guided, and reversible way to keep OVMS current, matching the local-desktop experience of tools like Ollama, while preserving OVMS's version-matched-stack guarantees.
- Lingua principale
- C++
- Stelle
- 932
- Fork
- 278
- Merge medio
- 2g 23h
- PR unite (30g)
- 68
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di openvinotoolkit/model_server
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 58/100
openvinotoolkit/model_server#4613 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
openvinotoolkit/model_server#4609 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
`/v3/models` lists every model twice when `group_name` and `--idle_unload_timeout_seconds` are combinedForse già presa @atobiszei l’ha presa 4 giorni fa. Aperta
openvinotoolkit/model_server#4604 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Idle unload never happens again if the client disconnects while a sleeping graph is waking upForse già presa @atobiszei l’ha presa 4 giorni fa. Aperta
openvinotoolkit/model_server#4603 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
openvinotoolkit/model_server#4599 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di openvinotoolkit/model_server
Issue simili
-
`enzymexla.linalg.lu` lowering fails for a tall matrix: the permutation is built with the pivot typeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
EnzymeAD/Enzyme-JAX#3286 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
apache/iceberg-cpp#973 ·
I maintainer di solito rispondono entro 1 giorno
-
Add c++23 mapping to nvccApertafeature request
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno