visionA/local-tool/.autoflow/02-prd/release-strategy.md
jim800121chen c54f16fca0 Initial commit: visionA monorepo with local-tool subproject
local-tool/: visionA-local desktop app
- M1: Wails shell + Go server + Next.js UI + Mock mode (macOS dmg ready)
- M2: i18n (zh-TW/en) + Settings 4-tab refactor
- M3: Embedded Python 3.12 runtime (python-build-standalone) + KneronPLUS wheels
- M4: Windows Inno Setup script (build on Windows runner)
- M5: Linux AppImage script + udev rule (build on Linux runner)
- M6: ffmpeg (GPL, pending legal review) + yt-dlp bundled
- Lifecycle: watchServer health check, fatal native dialog,
            Wails IPC raise endpoint, stale process cleanup

.autoflow/: full PRD / Design Spec / Architecture / Testing docs
            (4 rounds tri-party discussion + cross review)
.github/workflows/: macOS / Windows / Linux build CI

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 22:10:38 +08:00

143 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 7. 發佈與交付策略
## 7.1 發佈通路Q 決定:內部 Gitea / GitHub Releases
**決策**
-**內部 Gitea Releases**(首選)
-**GitHub Releases**(備援 / 合作夥伴用)
-**不上** Mac App Store、Microsoft Store、Snap Store、Flatpak
**理由**
- 內部工具性質,不需要商店觸達
- 商店上架需要 sandboxApp Store、開發者帳號 / 簽章(所有商店),均已被 Q2 排除
- Gitea / GitHub Releases 提供版本管理與下載追蹤即可
## 7.2 發佈頻率
| 類型 | 頻率 | 觸發 |
|------|------|------|
| 主版本1.0、2.0 | 1-2 次/年 | 重大功能加減 |
| 次版本1.1、1.2 | 1 次/月 | 新功能 / 重大改進 |
| 修補版本1.0.1| 隨時 | Bug fix / 安全性 |
## 7.3 發佈產出物
每個 release 包含以下檔案:
| 檔名 | 平台 | 格式 | 預計大小 |
|------|------|------|---------|
| `visionA-local-{version}-macos-x64.dmg` | macOS 14/15 x86_64 | `.dmg` | ~220 MB |
| `visionA-local-{version}-windows-x64.exe` | Windows 10/11 x86_64 | Inno Setup `.exe` | ~200 MB |
| `visionA-local-{version}-linux-x64.AppImage` | Ubuntu 22.04/24.04 x86_64 | `.AppImage` | ~200 MB |
| `visionA-local-{version}-checksums.txt` | 全平台 | 文字 | < 1 KBSHA256|
| `RELEASE_NOTES.md` | 全平台 | Markdown | 依版本而異 |
**注意**不提供 ARM 架構不提供 `.deb` / `.rpm` / `.pkg`
## 7.4 發佈前檢查清單Launch Checklist
每次 release 前必須通過
### 功能面
- [ ] 三平台安裝檔可於對應 OS 成功安裝手動測試
- [ ] 三平台首次啟動可完成 First-Run 流程
- [ ] 三平台均可接 Kneron USB connect 成功
- [ ] 三平台 Mock 模式可啟動並顯示假推論結果
- [ ] 三平台攝影機串流正常
- [ ] 三平台前端 cluster / relay / tray UI 已完全清除**第三輪 Q-C 決策**M1 必達
### 效能面
- [ ] 安裝時間 3 分鐘測試機 SSD
- [ ] 首次推論時間 15
- [ ] Mock idle CPU 3%、RAM 400 MB
- [ ] 安裝檔大小符合 6.2 節上限
### 相容性
- [ ] macOS 14 + 15 各測試一次
- [ ] Windows 10 + 11 各測試一次
- [ ] Ubuntu 22.04 + 24.04 各測試一次
### 文件
- [ ] RELEASE_NOTES.md 已撰寫
- [ ] 安裝指南更新 Gatekeeper / SmartScreen 警告處理
- [ ] 內部 Wiki / Slack 通知已準備好
### 非需要項目(明確不做)
- ~~程式碼簽章~~Q2
- ~~notarization~~Q2
- ~~法律文件Terms / Privacy~~內部工具
- ~~商店審核~~
- ~~auto-update 清單~~Q6
## 7.5 發佈流程
```
1. 開發完成 → 合併到 main branch
2. 打 taggit tag v1.0.0 && git push --tags
3. CI 觸發 → 三平台 buildGitHub Actions 或 self-hosted runner
├─ macOS runnerwails build -platform darwin/amd64 → .dmg
├─ Windows runnerwails build -platform windows/amd64 → Inno Setup → .exe
└─ Linux runnerwails build -platform linux/amd64 → appimagetool → .AppImage
4. 產生 checksums.txt
5. 人工執行 Launch Checklist
6. 上傳到 Gitea / GitHub Releases
7. 內部公告Slack channel / Email
- 新版本號
- 主要變更
- 下載連結
- 升級說明(因為沒 auto-update需手動下載
```
## 7.6 使用者升級路徑
因為 Q6 決定不做 auto-update
```
1. 使用者從 Slack / Email 得知有新版
2. 手動到 Gitea / GitHub Releases 下載新版安裝檔
3. 安裝新版(舊版 config / 模型資料保留在 OS 慣例資料目錄macOS`~/Library/Application Support/visiona-local/`
4. 首次啟動新版會自動讀取舊 config
```
**舊版本相容性**
- config.json 結構必須向後相容加欄位可以改語意要寫 migration
- 模型檔案格式不變.nef Kneron 標準
- logs 目錄結構不變
## 7.7 Rollback 策略
若新版本爆出重大問題
1. Gitea / GitHub Releases 將該版本標記為 pre-release 或刪除
2. 內部通知:「請暫停升級 vX.Y.Z改用 vX.Y.Z-1
3. 使用者已升級者手動下載舊版重裝config 資料保留
因為無 auto-updaterollback 成本相對低
## 7.8 支援與回報
- **Bug 回報通路**內部 Slack channel / Gitea Issues
- **Feature Request**同上
- **文件**內部 Wiki
- **** SLAbest-effort 支援
## 7.9 長期維護策略
visionA-local 的維護預算應與 edge-ai-platform 主線共用
- 核心業務邏輯device / model / inference / camera的修改同步從 edge-ai-platform cherry-pick
- visionA-local 特有的部分installerpayloadtraywails shell獨立維護
- 目標visionA-local **獨有程式碼 < 30%**其餘都能與 edge-ai-platform 共享
## 7.10 非目標再次確認(發佈相關)
本章節再次強調發佈相關的非目標
- 不上任何商店Mac App Store / Microsoft Store / Snap Store
- 不做程式碼簽章macOS Developer ID / Windows EV cert
- 不做 notarization
- 不做 auto-update
- 不做 telemetry / crash report
- 不做 license key
- 不做法律文件Terms / Privacy Policy)— 因為是內部工具
- 不支援 ARM 架構未來再評估