Files
ArtPlayer/refactor/execution-gates.md
T

5.4 KiB

执行门槛与分批交付

本规范是 DOC-07 计划复审后的补充。完整范围继续覆盖全部 22 包,调整依赖以尽早得到真实反馈,不降低相关能力的兼容和发布要求。

1. 最小启动基线

BASE-01 先固定核心和 chapter 试点的已发布 tarball、integrity、来源和支持窗口;全包清单先保留待验证项,其他包的发布证据在各自 01 契约任务中补齐。不能因一个无发布记录或外部资源缺失的包阻止安装测试工具。

BASE-02 至 BASE-05 的初始自动化集中于核心与试点。其余包不能借此声称已验证;每包开始迁移前仍须完成自身基线。BASE-08 建立消费者及环境矩阵,区分包分发格式与运行能力:legacy 语法可生成,不等于 WebCodecs、PiP、WebAudio 或模型运行时能在所有旧浏览器工作。

2. 早期试点

chapter 的 03/04 步不再依赖重构后的设置面板与插件管理器,先以已有核心和公开契约完成包内整理及 TS 迁移。PILOT-01 必须走完旧核心消费者、真实浏览器、类型、tarball 和维护文档闭环,才开始 CORE-01。

试点不用新核心的内部方法,不为试点修改核心 API。由实际反馈确定其余任务的粒度、工具选择和测试成本;最终候选核心仍在 chapter 05/06 步重新验证。试点完成不等于 chapter 全部重构任务完成。

3. 历史失败与测试可靠性

ENG-10 建立有来源、有任务归属的历史失败台账:区分旧版即存在的缺陷、第三方类型冲突、环境能力缺失和候选回归。

  • 迁移模块使用严格类型检查;未迁移模块的历史类型问题单独列出,不能用全仓库 skipLibCheck/ts-nocheck 隐藏,也不能要求先修完所有插件才开始试点。
  • 对未迁移部分可记录基线失败,但禁止新增同类失败;必须保存准确测试 ID、环境、旧版复现及负责修复任务。
  • 受影响模块的旧缺陷必须明确处理结论,不能仅因进入台账就豁免发布。所有未关闭项在该包发布门槛再次审查。
  • 不用 sleep 判断播放准备就绪;使用事件/状态条件、受控网络与时钟。记录失败 trace,有限重试用于判定偶发问题,不能把重试后绿灯等同无回归。
  • 多实例、连续切源和事件顺序比较使用语义断言,避免比较浮动墙钟时间或把浏览器允许的事件差异误判为重构失败。

4. 真实环境不会阻塞无关准备工作

包内类型和本地 adapter 测试可以先完成并独立提交。Cast、IMA、移动 Safari、PiP、模型、codec 等真实检查仍在对应集成任务中维护;缺环境时标 blocked,不能标 done。

SITE-04 是各包文档的最终交叉核对,包内文档仍随每次实现更新。文档静态构建和本地候选 tarball 准备不依赖 Cast 等设备验证完成。整个 demo 的 EX-03 和真实验证任务继续保留,不从完成定义中删除。

BASE-08 的环境矩阵至少包含:包/能力、支持版本依据、样本与外部资源版本、自动化方法、真实设备/SDK 环境、报告位置、负责完成的任务、状态、阻塞及解除方式。尚未具备的设备记录为未知/待提供,不虚构执行者或通过结果。

5. 发布按实际批次核定

REL-08 提前建立分包准入台账;REL-01 是版本和差异方案,REL-02 是本地候选内容与消费者验证。公开发布仍需后续授权。

每批冻结:包名与版本、源码提交、依赖锁/工具版本、构建配置、tarball integrity、支持组合、所需测试及真实环境证据、兼容例外、回退产物。测试的 tarball 必须就是准备发布的内容;源码、依赖或构建改变后,原证据失效并重跑受影响检查。

REL-03/05/06 作为全项目阶段汇总。若先交付一批已完成包,先拆出具有独立 ID、范围及验收条件的发布子任务,只依赖该批所需测试/文档/设备/消费者证据;全项目汇总保持未完成。不能为提前发布将未完成原任务改为 done 或删除依赖。

某个 Cast 插件缺设备不自动阻止独立工具包交付,但若核心更改影响 Cast 集成,这就是该核心批次的真实兼容缺口,仍需验证,不能按包名简单排除。

6. 无障碍与用户自定义界面

BASE-04 增加键盘可达性、焦点返回、可访问名称、设置菜单交互及字幕的实际基线。CORE-23 在保留旧 DOM/CSS/热键契约的前提下检查并补齐这些能力,结构调整不能削弱原有键盘体验。新增行为造成兼容冲突时单独记录,不借此默认重做 UI。

7. 任务粒度和证据

开始每项任务前确认它能形成一个可验收、可回退的提交。CORE-01、CORE-18 等横跨多个模块的任务必要时先拆出子任务;父任务作为汇总不能与子任务重复宣称实现。子任务使用当前校验器支持的 ID,如 CORE-UTIL-TIME-01,并更新下游依赖。

每次检查记录起点 SHA 和候选源码/产物的内容标识。完成提交包含状态及文档,提交 SHA 在提交后由 Git 日志核对,避免要求同一提交包含自身 SHA。当前 plan 校验器检查状态和证据文件存在,不能代替测试,也不自动证明每个 done 任务已有 commit;提交审计纳入 ENG-09。

汇报分别给出规划任务与实施任务完成情况。任务数量不是工作量百分比,不将文档完成数当作代码重构进度。