MaaRelease icon indicating copy to clipboard operation
MaaRelease copied to clipboard

[RFC] 组件拆分 & 统一更新机制

Open dantmnf opened this issue 1 year ago • 0 comments

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

dantmnf avatar Aug 02 '24 07:08 dantmnf