Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Windows Manager: Updates page and staged package upgrade workflow

Aperta
#4,351 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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

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)

  1. Stop the Manager-owned ovms.exe (or the service, in service mode).
  2. Download the matching package to %LOCALAPPDATA%\OVMS\packages.
  3. Verify the download (checksum/size) and that required files are present.
  4. Extract to a staging dir; run staged ovms.exe --version as a smoke test.
  5. Back up the current install to %LOCALAPPDATA%\OVMS\packages\backup\<version>.
  6. Replace the install files in-place; preserve user data under %LOCALAPPDATA%\OVMS (settings, models, logs).
  7. Re-run configuration/marker update; restart the server if it was running.
  8. 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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di openvinotoolkit/model_server

Tutte le issue di openvinotoolkit/model_server

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.