Windows Manager: Updates page and staged package upgrade workflow
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- cpp, powershell
- Lĩnh vực
- desktop-dev, release
Hướng nghiên cứu
Bắt đầu bằng việc xem xét packaging/windows/scripts/upgrade-package.ps1 và PR #4350 được tham chiếu, sau đó theo dõi cách Windows Manager hiện biểu diễn các trang và phiên bản gói. Xác minh tab Updates và workflow theo từng giai đoạn dựa trên các tiêu chí nghiệm thu, bao gồm kiểm tra khả năng tương thích, bảo toàn dữ liệu người dùng, xác thực tình trạng hoạt động và rollback.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- C++
- Star
- 932
- Fork
- 278
- Merge trung bình
- 2 ngày 23 giờ
- Pull request đã merge (30 ngày)
- 68
Chuẩn bị môi trường
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của openvinotoolkit/model_server
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
openvinotoolkit/model_server#4613 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
openvinotoolkit/model_server#4609 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
`/v3/models` lists every model twice when `group_name` and `--idle_unload_timeout_seconds` are combinedCó thể đã có người làm @atobiszei đã nhận 4 ngày trước. Đang mở
openvinotoolkit/model_server#4604 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Idle unload never happens again if the client disconnects while a sleeping graph is waking upCó thể đã có người làm @atobiszei đã nhận 4 ngày trước. Đang mở
openvinotoolkit/model_server#4603 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
openvinotoolkit/model_server#4599 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của openvinotoolkit/model_server
Issue tương tự
-
bug
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 88/100
isl-org/Open3D#7585 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Unconfirmed bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
luanti-org/luanti#17605 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
area: config area: firmware priority: P2 - medium size: S type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Mizithra/ActiveTerrain#16 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
grumpycoders/pcsx-redux#2171 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 2 ngày