2.9 KiB
更新清单与可选模块
梦三模式
梦三仍与主包保存在同一仓库,但作为独立下载模块发布。基础清单
dist/manifest.json 不包含 mengsan/ 文件;模块清单
dist/modules/mengsan.json 单独记录梦三文件、大小和 SHA-256。
用户通过扩展菜单的“梦三模式(按需安装/卸载)”下载或卸载。主包版本 更新只检查主包文件,以及本地已安装模块的文件;“查漏补缺”会检查主包 资源和已安装模块,不会自动下载未安装的梦三模式。
发布流程
- 在
tools/manifest_config.json的core中维护主包必须文件。 - 在
modules中维护可选模块的目录、入口和显示名。 - 发布工作流为每个模块生成独立清单,并将清单提交到发布标签。
- 完整 ZIP 安装包仍包含所有模块,供离线或整包安装使用。
修改 extension.js 中的 shuYingLocalVersion,提交并推送到 GitHub
默认分支后,工作流会比较推送前后的版本号。版本号变化时自动生成和校验
清单、创建 v版本号 标签,并打包发布;同版本的代码修改不重复发布。
手动运行 GitHub 发布工作流也读取该次提交的版本号,无需再次填写版本。
版本格式为 2.0.2.4 或 2.0.2.4-rc.1;带 -rc.N 的 Release
标记为测试版,其他标记为正式版。已有同名标签时停止,避免覆盖旧发布。
Gitea 保持接收同一发布标签后打包的流程;使用 Gitea 更新源时,需将该
标签同步到 Gitea,单独推送分支代码不会触发 Gitea 发布。
客户端从标签的 raw 文件路径读取清单。因此 Gitea 发布必须使用已经包含
dist/manifest.json 和 dist/modules/*.json 的同一标签;当前 Gitea 工作流
会生成并上传附件,但不会改写触发它的标签。
发布时生成器会把 tools/legacy/mengsan-files.json、上一次完整清单和当前模块
文件合并,随新标签发布迁移路径清单。它用于接管旧安装中的梦三文件并清理
不再属于新版本的文件。该文件由迁移时仓库内的梦三路径生成,作为冻结的旧版
所有权记录,兼容旧更新器已经推进主包版本号、但尚未更新梦三模块的用户。
旧文件与目录
升级时比较旧版和新版的文件路径清单,删除旧清单有、新清单没有的模块文件; 新增或损坏文件会按 SHA-256 下载和修复。模块卸载只删除模块清单声明的文件。
不根据“目录不在新清单中”递归删除目录,避免误删用户自行放入目录的文件。
确需删除整个旧目录时,先确认其不包含用户数据,再通过主包清单的
removeDirectories 明确声明。
新增模块时,清单生成器可通过配置建立独立清单;客户端的安装菜单、启动 加载和卸载入口仍需为该模块添加对应管理逻辑。