MaaRelease
MaaRelease copied to clipboard
[RFC] 组件拆分 & 统一更新机制
issue 正文:
TLDR
将 MAA 拆分为多个组件,每个更新通道指定各个组件的版本,各个组件使用统一机制进行增量更新(暂称 MAA Update Engine)。
同一版本组件可以有多个变体(OS / 架构)或没有变体(资源文件)。
实现
拆分的组件
- Core - 平台相关(多个 OS / 架构变体)
- MaaCore.dll
- opencv_world4_maa.dll 等依赖库
- Core - 平台无关(无变体)
- tasks.json 与模板文件
- WPF GUI(平台相关)
- MAA.exe (理论上也可以做成平台无关 MAA.dll + 平台相关 launcher?)
- 游戏资源(平台无关)
- 现 MaaResource
- 其他关联项目(CLI、Wine bridge 等)
发版流程
发版时,各个组件×变体单独生成 #146 中定义的增量更新包,同时生成大发布包(即现 MAA-v5.5.0-win-x64.zip)供首次下载使用。发布增量更新包前通过 CI 检查各个受支持的版本可以正常应用增量更新。
更新流程
检查更新时,从发布 API 拉取本通道的各个组件版本,与当前版本不匹配的组件进入增量更新流程。
其他说明
各个通道中的游戏资源组件同步更新,取代当前基于 HTTP cache 的更新方式。
Mac 版本:~~谁啊,不认识。~~ 由于林檎的二进制签名(公证)要求,需要让专业的人来.jpg