From d97b9c105aca70750320b5f106a173525027cad5 Mon Sep 17 00:00:00 2001 From: Yige Date: Fri, 16 Oct 2026 20:08:23 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=98=8E=E7=A1=AE=E7=BA=AF=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E5=8F=91=E5=B8=83=E6=97=A0=E5=8F=98=E5=8C=96=E6=A0=B8?= =?UTF-8?q?=E9=AA=8C=E4=B8=8E=E6=81=A2=E5=A4=8D=E8=BE=B9=E7=95=8C=20(#123)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/runtime-publication/README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/runtime-publication/README.md b/.github/runtime-publication/README.md index ead8152..f33569e 100644 --- a/.github/runtime-publication/README.md +++ b/.github/runtime-publication/README.md @@ -11,3 +11,15 @@ 本地手工执行默认dry-run;`--apply`只写指定的独立bare目录,仍不会联网推送。完整开发校验是调用前置,不因这个工具成功而自动成立。工作流普通快进push只发送runtime一个ref,不写main、不force;仓库管理应保护runtime不被回退或删除,不能把普通push当成防管理员外部回退的绝对租约。 更新工具必须从准确生成源重建,审查第一方闭包、锁定依赖及许可、只允许Node内建external、拒绝SourceMap/私有路径/无关应用模块,再连同metadata和许可提交PR。运行文件白名单、信封与完整性算法只在生成源维护,禁止直接编辑bundle修补门禁。 + +## 文档、测试与数据更新的区别 + +文档或测试变更仍经过作者仓库的正常 PR 与 main 校验;不要为了规避发布而跳过这些校验。自动发布会对已验证的固定 main SHA 重新派生纯运行文件,并比较运行字节摘要。只有文档、测试或工具说明变化而运行字节相同时,应明确输出“纯运行字节未改变;没有新增 runtime 提交。”和“无运行内容变化;跳过推送。”,不提升 `manifest.json#presetDataVersion`,也不改写运行信封的来源或时间。 + +核验时记录来源 main SHA、对应 `Schema Validation` 和 `Publish Runtime Data` run,并比较前后 `refs/heads/runtime`、`.desirecore-runtime.json` 的 `dataVersion`、`payloadDigest` 与文件清单。发布任务被跳过、过时来源被拒绝或仅来源校验成功,都不能当成已执行的无变化验证。验证多个来源时应等待上一来源自动发布完成,再合入下一变更,避免当前 main 已前移而无法验证精确来源。 + +## 首用、复启与失败恢复边界 + +使用此发布线的客户端,首用的随包种子与后续候选都来自同一纯运行合同;作者仓库的资料和 Git 历史不应进入种子或更新下载。复启复用已安装的有效运行快照,远端更新在后台处理,不算首次安装步骤。实际客户端是否已采用此发布线仍须核对对应代码与发行版本,工作流部署不等于客户端已经发布。 + +数据或发布失败时保留原 runtime ref,不手工强推覆盖、回退或删除发布历史。需要修正已发布数据时,在作者 main 上经正常 PR 修正并递增 `presetDataVersion`,通过校验后发布新的运行提交。客户端候选校验失败或离线时应保留原有效数据;这属于客户端验收边界,不能用工作流成功替代验证。