Windows Manager: Updates page and staged package upgrade workflow
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- cpp, powershell
- Área
- desktop-dev, release
Línea de trabajo
Comienza revisando packaging/windows/scripts/upgrade-package.ps1 y el PR #4350 mencionado; después, sigue cómo Windows Manager representa actualmente sus páginas y las versiones de los paquetes. Verifica la pestaña Updates y el workflow por etapas según los criterios de aceptación, incluidas las comprobaciones de compatibilidad, la preservación de los datos del usuario, la validación del estado y el rollback.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- C++
- Estrellas
- 932
- Forks
- 278
- Merge medio
- 2 d 23 h
- PR fusionados (30 d)
- 68
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de openvinotoolkit/model_server
-
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
openvinotoolkit/model_server#4613 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
openvinotoolkit/model_server#4609 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
`/v3/models` lists every model twice when `group_name` and `--idle_unload_timeout_seconds` are combinedPosiblemente ocupada @atobiszei la tomó hace 4 días. Abierto
openvinotoolkit/model_server#4604 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Idle unload never happens again if the client disconnects while a sleeping graph is waking upPosiblemente ocupada @atobiszei la tomó hace 4 días. Abierto
openvinotoolkit/model_server#4603 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
openvinotoolkit/model_server#4599 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de openvinotoolkit/model_server
Issues similares
-
bug
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
isl-org/Open3D#7585 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Unconfirmed bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
luanti-org/luanti#17605 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
area: config area: firmware priority: P2 - medium size: S type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Mizithra/ActiveTerrain#16 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
grumpycoders/pcsx-redux#2171 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 2 días