mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-12 06:26:16 -08:00
docs(refactor): [DOC-12] close execution and release planning gaps
This commit is contained in:
1 parent
9b9739ab61
commit
7a5354e356
10 files changed
+160
-28
No files matched your search
@@ -39,6 +39,7 @@
|
||||
|
||||
1. 任务状态只修改 `tasks.json`;运行 `node refactor/scripts/plan.mjs --write` 更新计划表。
|
||||
2. 运行 `node refactor/scripts/plan.mjs --check` 检查任务 ID、依赖环、包覆盖、完成证据、本地文档链接和生成表同步。它检查链接文件存在,不验证网页可用性或 Markdown 标题锚点。
|
||||
校验同时保护试点/首轮设备依赖、版本准备、CI/复盘发布门槛,以及全部实施任务到最终里程碑的可达性;测试本身是否有效仍需逐任务验收。
|
||||
3. 开始前选择一个依赖已完成的任务。拆分任务时保留旧 ID 的历史,不复用 ID。
|
||||
4. 有实现变更时,在 `changes/` 创建记录,补充基线、测试证据、兼容差异和回退方式,再将任务标为完成。
|
||||
5. 当前源码、已发布包、声明和文档有冲突时,先登记差异;不得把其中任何一个自动当作全部用户行为的唯一依据。
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# DOC-12 开发前的计划复审
|
||||
|
||||
- 日期:2026-09-10;分支:`codex/compatible-modernization`;基线:`9b9739ab`。
|
||||
- 提交主题:`docs(refactor): [DOC-12] close execution and release planning gaps`。
|
||||
- 范围:计划依赖、验收定义及计划校验器;没有生产代码改动。
|
||||
|
||||
## 发现与修正
|
||||
|
||||
| 问题 | 证据 | 修正 |
|
||||
| --- | --- | --- |
|
||||
| 首轮复盘重新被专项环境阻塞 | REVIEW-01 -> MOD-05 -> MOD-04 -> PKG-MASK-06/05 | 首轮仅依赖 MOD-01/02/03,第二轮继续等待完整 MOD-05 和设备验收 |
|
||||
| 全包版本落实只在文字中要求未来拆任务 | REL-02 仅依赖版本方案,没有显式版本修改步骤 | 新增 REL-09,方案后落实 manifest/锁/依赖/日志,候选构建必须依赖它 |
|
||||
| BASE 使用浏览器证据,但正式服务在后续 ENG | ENG-05 依赖 BASE-04,ENG-08 依赖 BASE-06 | 明确基线使用旧包与最小可重跑探针,正式 ENG 接入,不引入反向依赖 |
|
||||
| 同一产物标准不适用于所有 workspace | vitepress manifest 只有站点脚本,没有核心式 main/module/types 入口 | BASE-05/REL-08 记录实际发布类别及替代验收;全部版本目标保持 |
|
||||
| 契约和测试缺少强制对应关系 | 契约表、任务表和测试规范分别存在,但没有明确索引交付 | BASE 开始登记,ENG-09 收敛契约/版本/测试 ID/报告/责任映射 |
|
||||
| SSR 容易被过度理解 | 核心 constructor 非浏览器明确抛错 | 分开 import、静态模板、浏览器挂载、非浏览器构造错误,不新增服务端播放器 API |
|
||||
| 校验只保证无环,不能发现语义依赖回退 | 之前首轮设备依赖通过了校验 | plan.mjs 增加试点、首轮/次轮设备、版本/CI/复盘发布门槛和实施任务可达性检查 |
|
||||
|
||||
## 验证
|
||||
|
||||
计划生成/同步、22 包覆盖、本地链接、语义依赖及 Git 差异检查通过。校验器以故意加入首轮设备依赖、删除版本准备前置、移除 CI 门槛、加入依赖环的负例验证应失败;负例结束恢复原任务数据。node --check 通过。
|
||||
|
||||
原 209 项任务 ID、范围和状态保持,新增 DOC-12 完成、REL-09 待办。现有 211 项任务:12 项规划完成、199 项待办。没有运行生产/浏览器/远端 CI,没有改变包版本或发布。
|
||||
|
||||
## 下一步和回退
|
||||
|
||||
建议开始 BASE-01,不再扩写假想实现细节。模块路径、工具版本、性能方案与复现缺陷随开发补充;保持任务依赖和证据同步。可整体回退本提交,同时恢复任务依赖与校验器,避免留下不匹配规则。
|
||||
@@ -55,3 +55,27 @@ BASE-04 增加键盘可达性、焦点返回、可访问名称、设置菜单交
|
||||
每次检查记录起点 SHA 和候选源码/产物的内容标识。完成提交包含状态及文档,提交 SHA 在提交后由 Git 日志核对,避免要求同一提交包含自身 SHA。当前 plan 校验器检查状态和证据文件存在,不能代替测试,也不自动证明每个 done 任务已有 commit;提交审计纳入 ENG-09。
|
||||
|
||||
汇报分别给出规划任务与实施任务完成情况。任务数量不是工作量百分比,不将文档完成数当作代码重构进度。
|
||||
|
||||
## 8. 基线启动与覆盖映射(DOC-12 复审)
|
||||
|
||||
BASE-03/04/06 的初始采集使用固定旧 tarball、现有 Node 测试和 docs 页面,以及随基线任务提交的最小探针/断言与运行步骤。按需安装工具仍已授权,但不提前重构生产源码。ENG-05/08 再将这些证据和用例接入正式服务及报告,不能反过来要求 BASE 等待依赖它的 ENG 完成,也不能让无法重跑的聊天记录充当基线。
|
||||
|
||||
BASE-05 对每包记录实际分发类别:播放器库/插件/proxy/工具使用对应产物验收;文档站使用站点构建、URL 和静态资源验收,是否另发 npm 按发布历史核实。22 包全部在重构和版本目标范围内,但不强行为没有历史库入口的站点包创造 UMD/ESM 消费 API。每个不适用项需依据及替代验收,不是跳过该包。
|
||||
|
||||
BASE-02 至 BASE-05 开始登记“契约编号/包/支持版本/场景 -> 固定测试 ID -> 执行命令/源码或候选标识/报告 -> 负责实施任务”。ENG-09 接入可检查的覆盖索引,明确哪些只是计划、哪些已执行、哪些缺证据。目录覆盖和测试数量不能代替契约覆盖。
|
||||
|
||||
SSR 区分 import 的环境安全、静态 html/useSSR 模板能力、浏览器挂载和非浏览器构造错误。当前核心 constructor 明确在非浏览器抛错,不能把“SSR 兼容”理解为允许在服务端 new 播放器;BASE-05/CORE-12/EX 消费分别比较旧行为。
|
||||
|
||||
## 9. 复盘顺序与版本落实
|
||||
|
||||
DOC-12 发现 REVIEW-01 经 MOD-05 -> MOD-04 间接依赖 mask 设备验收。第一轮改为依赖 MOD-01/02/03 等可用的工具和核心性能结论;重型插件真实环境仍经 REL-03 -> REVIEW-02 保留。早期代码复盘可登记尚未验证的设备能力,不允许由此批准发布。
|
||||
|
||||
REL-09 是全包 major 版本准备的明确实施任务,位于 REL-01 方案之后、REL-02 候选构建之前。按需拆分版本准备子任务,每个完成任务独立提交;只改目标文档不能算版本已落地。既有各包分发验收仍有效,但最终发布必须重新验证完成版本修改后的候选。
|
||||
|
||||
## 10. 何时继续补计划
|
||||
|
||||
现在固定兼容范围、任务依赖、任务/证据归属、版本和发布门槛。具体文件名、类型泛型、工具版本、拆分粒度、性能阈值及新复现缺陷在相关任务开始时根据源码和试点调整。不要为了补全假想细节无限增加规划任务,也不要将已知依赖冲突留到执行时碰运气。
|
||||
|
||||
扩展任务同时更新下游验收依赖和证据索引,保留旧 ID/历史事实。plan 校验器检查关键顺序(早期试点、首轮不依赖专项设备、最终发布依赖复盘/CI/版本准备)及实施任务到最终里程碑的可达性;这不能证明测试有效或代码无回归。
|
||||
|
||||
代码迁移完成后仍有 REVIEW 与发布准备;发布就绪后仍有实际授权发布步骤。未来长任务按用户指定终点执行,不能因 REL-05/06 尚未授权而冒充全项目发布完成,也不能擅自执行 publish 来清空任务表。
|
||||
+15
-12
@@ -2,9 +2,9 @@
|
||||
|
||||
> 由 tasks.json 生成。请修改数据后运行 `node refactor/scripts/plan.mjs --write`,不要手改本表。
|
||||
|
||||
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 209 项,范围 22 个包及工作区/示例。
|
||||
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 211 项,范围 22 个包及工作区/示例。
|
||||
|
||||
状态:todo 198 / doing 0 / blocked 0 / done 11 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
|
||||
状态:todo 199 / doing 0 / blocked 0 / done 12 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
|
||||
|
||||
前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。
|
||||
|
||||
@@ -52,17 +52,18 @@
|
||||
| DOC-09 | workspace<br>记录 docs HTML 与在线编辑器测试入口 | DOC-08 | 页面/加载方式、状态隔离、行为断言与既有任务映射 | 源码清点和计划检查通过,独立提交 DOC-09;不把页面存在当作测试通过 | L | done |
|
||||
| DOC-10 | workspace<br>记录 GitHub CI/CD 增强范围与验收 | DOC-09 | CI/CD 规范、四项实施任务与发布依赖 | 现有 workflow 核对、计划检查通过并独立提交;不冒充远端执行完成 | L | done |
|
||||
| DOC-11 | workspace<br>记录全部包各自升级一个大版本 | DOC-10 | 22 包目标版本清单、决策和发布/CI/复盘规则同步 | 版本表与 manifest 对照、计划检查通过并独立提交;不修改旧 API 兼容要求 | L | done |
|
||||
| DOC-12 | workspace<br>复审开发启动、验收覆盖及发布依赖 | DOC-11 | 语义依赖修正、版本实施任务、基线/分发分类及契约映射要求、校验器保护 | 原范围状态保持,计划检查和故障负例通过,独立提交 DOC-12 | M | done |
|
||||
|
||||
## 1 基线
|
||||
|
||||
| ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| BASE-01 | workspace<br>固定核心与试点的最小发布基线 | DOC-07 | 核心及 chapter 的 npm tarball/integrity、源码 SHA、已知支持窗口;其他包标待核对 | 核心/试点来源可重跑;不虚构全生态已验证,各包 01 步负责补齐自身历史发布基线 | H | todo |
|
||||
| BASE-02 | workspace<br>捕获公共 API 和属性描述符 | BASE-01 | 核心与试点的构造/默认值/静态和实例 API 快照,其余包由 01/02 步补齐 | 真实发布包反射与旧用户调用可重跑,未验证项明确 | H | todo |
|
||||
| BASE-03 | workspace<br>捕获事件、异步和生命周期 | BASE-02 | ready/restart/destroy、Promise、切源/插件事件 trace | 成功、失败、重入和多实例有断言,历史缺陷有标记 | H | todo |
|
||||
| BASE-04 | workspace<br>捕获 DOM、CSS 和官方 demo | BASE-02 | 核心模板/类名/变量、键盘/焦点/可访问名称基线及全 demo 路径映射;docs-browser-testing.md 中 HTML/编辑器的脚本来源与存储状态 | 核心/试点用户样式和输入用法已记录,其他 demo 运行状态与未知项明确 | M | todo |
|
||||
| BASE-05 | workspace<br>捕获包入口、资源和类型消费 | BASE-01 | 全包 manifest/资源路径清单;核心/试点的 UMD/AMD/ESM/CJS/legacy/i18n 和类型消费者基线 | 核心/试点隔离消费可运行,其他包由各自契约任务验证,thumbnail tool 差异已登记 | H | todo |
|
||||
| BASE-06 | workspace<br>记录性能与资源基线 | BASE-03, BASE-04 | 固定媒体/设备测量、包体积、反复装卸资源报告 | 多次采样可重跑,指标和审查阈值确定,不承诺未经测量的收益 | M | todo |
|
||||
| BASE-02 | workspace<br>捕获公共 API 和属性描述符 | BASE-01 | 核心与试点的构造/默认值/静态和实例 API 快照,其余包由 01/02 步补齐;登记契约/版本/固定测试 ID/命令/报告与负责任务 | 真实发布包反射与旧用户调用可重跑,未验证项明确 | H | todo |
|
||||
| BASE-03 | workspace<br>捕获事件、异步和生命周期 | BASE-02 | ready/restart/destroy、Promise、切源/插件事件 trace;登记契约/版本/固定测试 ID/命令/报告与负责任务 | 成功、失败、重入和多实例有断言,历史缺陷有标记;使用已发布包和最小可重跑探针启动,不等待后续 ENG 服务 | H | todo |
|
||||
| BASE-04 | workspace<br>捕获 DOM、CSS 和官方 demo | BASE-02 | 核心模板/类名/变量、键盘/焦点/可访问名称基线及全 demo 路径映射;docs-browser-testing.md 中 HTML/编辑器的脚本来源与存储状态;登记契约/版本/固定测试 ID/命令/报告与负责任务 | 核心/试点用户样式和输入用法已记录,其他 demo 运行状态与未知项明确;使用已发布包和最小可重跑探针启动,不等待后续 ENG 服务 | M | todo |
|
||||
| BASE-05 | workspace<br>捕获包入口、资源和类型消费 | BASE-01 | 全包 manifest/资源路径清单;核心/试点的 UMD/AMD/ESM/CJS/legacy/i18n 和类型消费者基线;登记契约/版本/固定测试 ID/命令/报告与负责任务;区分库/npm 与站点实际分发类别,SSR import/模板/非浏览器构造错误分别捕获 | 核心/试点隔离消费可运行,其他包由各自契约任务验证,thumbnail tool 差异已登记 | H | todo |
|
||||
| BASE-06 | workspace<br>记录性能与资源基线 | BASE-03, BASE-04 | 固定媒体/设备测量、包体积、反复装卸资源报告 | 多次采样可重跑,指标和审查阈值确定,不承诺未经测量的收益;使用已发布包和最小可重跑探针启动,不等待后续 ENG 服务 | M | todo |
|
||||
| BASE-07 | workspace<br>建立差异和风险台账 | BASE-03, BASE-05 | 销毁/切源/类型差异、vendored 许可和外部 SDK 清单 | 已确认与待复现分开,每项有负责任务及兼容处理路线 | H | todo |
|
||||
| BASE-08 | workspace<br>建立消费者与真实环境验证矩阵 | BASE-01, BASE-05 | 每包版本/浏览器/codec/SDK/设备/样本、证据和负责验证任务的矩阵 | 格式兼容与运行能力分开,未知/缺环境不算通过,明确哪些检查阻止哪些批次发布 | H | todo |
|
||||
|
||||
@@ -78,7 +79,7 @@
|
||||
| ENG-06 | workspace<br>支持按包非交互与 JS/TS 构建 | ENG-02, BASE-05 | build/dev 入口解析、指定包参数、原交互保留 | 三种产物、Less/SVG/worker 和本地 8082 demo 正常 | H | todo |
|
||||
| ENG-07 | workspace<br>建立 tarball 消费与产物检查 | ENG-04, ENG-06 | 隔离 npm 消费 fixtures、API/声明/入口差分 | 不借 workspace 源码通过,能识别缺文件与默认导出变化 | H | todo |
|
||||
| ENG-08 | workspace<br>增加覆盖率、资源与性能报告 | ENG-03, ENG-05, BASE-06 | 覆盖率基线、资源清理断言、性能报告与阈值 | 关键生命周期分支有门槛,报告不靠无意义断言堆数量 | M | todo |
|
||||
| ENG-09 | workspace<br>建立全包依赖影响和文档检查 | ENG-07, DOC-04 | 共享核心/构建影响映射、文档及每任务完成提交的 Git 审计接入 | 核心变化触发必需生态检查;原有 DOC-01 至 04 基线例外明确,后续 done 任务不能缺失独立 commit | M | todo |
|
||||
| ENG-09 | workspace<br>建立全包依赖影响和文档检查 | ENG-07, DOC-04 | 共享核心/构建影响映射、文档及每任务完成提交的 Git 审计接入;契约-支持版本-测试 ID-命令-候选/报告-任务的覆盖索引 | 核心变化触发必需生态检查;原有 DOC-01 至 04 基线例外明确,后续 done 任务不能缺失独立 commit;计划/已执行/缺证据分开,识别缺少验证归属的公开契约 | M | todo |
|
||||
| ENG-10 | workspace<br>建立历史失败分级和测试可靠性规则 | ENG-03, ENG-04, ENG-05, ENG-07, BASE-07 | 历史失败 ID/环境/旧版复现/负责修复任务、逐模块门槛、受控等待与 trace/retry 规则 | 不靠全局忽略或无理由 skip 隐藏问题,新增回归阻止交付,设备缺口和偶发失败单独可见 | M | todo |
|
||||
|
||||
## 2.2 GitHub CI/CD
|
||||
@@ -111,7 +112,7 @@
|
||||
| CORE-09 | artplayer<br>整理 URL 与切源操作 | CORE-04, CORE-06, CORE-08 | url/switch/customType 的操作身份及取消方案 | 并发切源、错误、同 URL、销毁和 Promise 结算有契约 | H | todo |
|
||||
| CORE-10 | artplayer<br>迁移播放与时间/状态属性 | CORE-09 | play/pause/toggle/seek/volume/rate/duration 等模块 | 旧返回值、拒绝、mutex、位置恢复、属性描述符与事件通过 | H | todo |
|
||||
| CORE-11 | artplayer<br>整理媒体事件、ready 与重连 | CORE-10 | 媒体转发、重连、UI 响应职责分离 | readiness 次数/顺序、过期重连、原错误参数有回归 | H | todo |
|
||||
| CORE-12 | artplayer<br>迁移模板及公开资源入口 | CORE-06, CORE-04, BASE-04 | template/icons/i18n/style、SSR 与 proxy 挂载 | DOM/CSS/global/样式注入、i18n 子路径及 SSR import 保持 | H | todo |
|
||||
| CORE-12 | artplayer<br>迁移模板及公开资源入口 | CORE-06, CORE-04, BASE-04 | template/icons/i18n/style、SSR 与 proxy 挂载 | DOM/CSS/global/样式注入、i18n 子路径及 SSR import 保持;不把 SSR import/useSSR 保持扩大为服务端构造播放器 | H | todo |
|
||||
| CORE-13 | artplayer<br>迁移组件注册与控件 | CORE-12, CORE-08 | Component/control/layer/contextmenu 的资源与 TS 边界 | add/update/remove、name、selector、mounted/beforeUnmount 通过 | H | todo |
|
||||
| CORE-14 | artplayer<br>拆分设置树、渲染和布局 | CORE-13 | setting model/selection/render/layout 的分批实现 | 不强行统一控件返回值,嵌套选择、默认高亮、更新清理通过 | H | todo |
|
||||
| CORE-15 | artplayer<br>迁移字幕获取、解析和渲染 | CORE-11, CORE-13 | subtitle 请求/track/DOM/URL 生命周期与类型 | 过期结果、偏移、cue 数组、原生全屏及错误路径通过 | H | todo |
|
||||
@@ -379,9 +380,10 @@
|
||||
|
||||
| ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| REL-08 | workspace<br>提前建立逐包发布准入台账 | BASE-08, ENG-07 | 每批包/版本/源码/锁文件/工具/tarball integrity、必需测试/设备证据、限制和回退映射 | 受影响能力缺证据明确阻止对应批次;无关批次可独立准备,旧证据在候选内容变化后失效 | H | todo |
|
||||
| REL-08 | workspace<br>提前建立逐包发布准入台账 | BASE-08, ENG-07 | 每批包/版本/源码/锁文件/工具/tarball integrity、必需测试/设备证据、限制和回退映射 | 受影响能力缺证据明确阻止对应批次;无关批次可独立准备,旧证据在候选内容变化后失效;站点采用真实构建/URL/资源验收,npm 分发依据历史核实,不从版本清单推断新增发布范围 | H | todo |
|
||||
| REL-01 | workspace<br>提前确定分包版本与差异方案 | REL-08, CORE-21, SITE-03, PKG-CHAPTER-04, PKG-AMBILIGHT-04, PKG-AUDIO-04, PKG-AUTO-THUMB-04, PKG-VTT-THUMB-04, PKG-HLS-04, PKG-DASH-04, PKG-MULTI-SUB-04, PKG-JASSUB-04, PKG-MASK-04, PKG-ASR-04, PKG-ADS-04, PKG-VAST-04, PKG-CAST-04, PKG-DPIP-04, PKG-CANVAS-04, PKG-IFRAME-04, PKG-TOOL-THUMB-04, PKG-DANMUKU-06, PKG-MB-08 | 每包版本/变更日志/依赖/类型差异方案和独立准入状态;按 version-policy.md 冻结各包下一 major(minor/patch 归零)并核实 registry 占用 | 所有包有方案和剩余门槛,未决项明确阻止相应发布;本步骤不声称已经可发布;全部包有 major 目标,版本冲突明确处理,独立准备任务同步 manifest/锁/依赖/日志 | H | todo |
|
||||
| REL-02 | workspace<br>生成候选 tarball 并验证新旧组合 | REL-01, CORE-22, ENG-07 | 各候选本地 tarball/integrity 与新旧核心/插件消费者验证报告,外部门槛单独标注 | 隔离安装和可自动化组合通过;设备结论不伪造,最终发布绑定同一候选内容;在目标 major 版本确定后构建 pack,不在测试后改版本 | H | todo |
|
||||
| REL-09 | workspace<br>落实全包下一 major 版本及依赖元数据 | REL-01, DOC-11 | 22 包版本目标落实、适用锁文件/依赖范围/示例/变更日志同步,核实 registry 版本占用 | 版本与 policy 一致,旧核心支持保留;必要拆子任务各自提交,候选构建前完成,不执行 publish | H | todo |
|
||||
| REL-02 | workspace<br>生成候选 tarball 并验证新旧组合 | REL-01, CORE-22, ENG-07, REL-09 | 各候选本地 tarball/integrity 与新旧核心/插件消费者验证报告,外部门槛单独标注 | 隔离安装和可自动化组合通过;设备结论不伪造,最终发布绑定同一候选内容;在目标 major 版本确定后构建 pack,不在测试后改版本 | H | todo |
|
||||
| REL-03 | workspace<br>完成真机、外部 SDK 与压力验收 | REL-02, EX-03, SITE-06, MOD-05 | Safari/移动/PiP/Cast/IMA/模型/长播放完整报告 | 包集成与全项目真机/SDK/压力结论齐全才完成本汇总;独立批次先建立自己的完整门槛子任务 | H | todo |
|
||||
| REL-04 | workspace<br>提前演练回退与主线修复同步 | REL-08, ENG-07 | 分包旧版本/tag/依赖回退方案与 master 差异 | 隔离包演练可回退,主线修复同步流程可执行;正式每批再核对其实际回退产物 | H | todo |
|
||||
| REL-05 | workspace<br>经授权发布候选并收集反馈 | REL-03, REL-04, REVIEW-03 | 候选 tag、完整产物 integrity、反馈与复现记录 | 实际发布授权/操作/版本可追溯;本计划不自动执行发布 | H | todo |
|
||||
@@ -392,7 +394,7 @@
|
||||
|
||||
| ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| REVIEW-01 | workspace<br>第一轮全项目架构与兼容性复盘 | REL-02, CORE-22, SITE-04, MOD-05, DOC-08 | 22 包结构、类型、旧 API/路径、测试盲区和维护文档的逐包报告 | 本轮阻断项由独立修复任务关闭并复测;环境缺口转交下一轮,不宣称已发布就绪 | H | todo |
|
||||
| REVIEW-01 | workspace<br>第一轮全项目架构与兼容性复盘 | REL-02, CORE-22, SITE-04, DOC-08, MOD-01, MOD-02, MOD-03 | 22 包结构、类型、旧 API/路径、测试盲区和维护文档的逐包报告 | 本轮阻断项由独立修复任务关闭并复测;环境缺口转交下一轮,不宣称已发布就绪 | H | todo |
|
||||
| REVIEW-02 | workspace<br>第二轮真实浏览器与生态集成复盘 | REVIEW-01, REL-03 | Chrome 交互、自动浏览器、新旧组合、真机/SDK/性能/资源的全范围报告 | 所需环境证据齐全,前轮修复再次核对;本轮阻断项关闭,无关 mock 不替代真实验收 | H | todo |
|
||||
| REVIEW-03 | workspace<br>第三轮 npm 候选内容与发布准备复盘 | REVIEW-02, REL-04, CI-04 | 实际候选 integrity、干净安装构建/消费者、入口/许可/版本/tag/回退及前轮证据汇总 | 最终候选完整检查通过,发布阻断项为零;准备可审阅的批次报告,不自动执行 publish;逐包核对 major 目标,不能用大版本豁免旧 API 兼容 | H | todo |
|
||||
|
||||
@@ -409,3 +411,4 @@
|
||||
- DOC-09: [记录](changes/2026-09-10-DOC-09-docs-test-surfaces.md)
|
||||
- DOC-10: [记录](changes/2026-09-10-DOC-10-github-ci-cd.md)
|
||||
- DOC-11: [记录](changes/2026-09-10-DOC-11-major-version-policy.md)
|
||||
- DOC-12: [记录](changes/2026-09-10-DOC-12-execution-readiness-review.md)
|
||||
@@ -1,6 +1,12 @@
|
||||
# 进度与证据
|
||||
|
||||
## 当前阶段:DOC-11 全包大版本策略
|
||||
## 当前阶段:DOC-12 开发前计划复审
|
||||
|
||||
2026-09-10,再次检查依赖和验收,修正首轮复盘间接等待 mask 设备、版本准备缺实施任务,补清基线启动、站点分发分类、SSR 边界与契约覆盖索引。详见 [DOC-12 记录](changes/2026-09-10-DOC-12-execution-readiness-review.md) 和 [执行门槛](execution-gates.md)。
|
||||
|
||||
现为 211 项任务:12 项规划完成、199 项待办,生产重构未开始。计划/链接/语义依赖、校验器语法及四类故障负例、Git 差异检查通过。DOC-11 提交为 `9b9739ab`;本轮独立提交 DOC-12,没有生产或浏览器测试、远端 CI 或发布。下一项仍为 BASE-01,后续实现细节随开发证据补充。
|
||||
|
||||
## 2026-09-10:DOC-11 全包大版本策略
|
||||
|
||||
2026-09-10,用户要求所有包各自升级到下一 major。已核对 22 个 manifest 并记录 [目标清单](version-policy.md),同步发布/CI/复盘及根指令,详见 [DOC-11 记录](changes/2026-09-10-DOC-11-major-version-policy.md)。现有 209 项任务:11 项规划完成、198 项待办。
|
||||
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
默认至少三轮,各有独立任务、报告和完成提交。首轮可在本地候选形成后先审查代码,待验证的设备能力必须继续留在后续门槛;不能借首轮完成宣称整个项目发布就绪。
|
||||
|
||||
首轮不依赖 MOD-05 的重型插件真机汇总;需要该证据的能力转由 REL-03/REVIEW-02 验收,避免间接设备依赖阻止先审代码。版本修改先由 REL-09 落实,首轮使用 REL-02 在目标版本下生成的候选。
|
||||
|
||||
| 任务 | 范围 | 通过条件 |
|
||||
| --- | --- | --- |
|
||||
| REVIEW-01 架构与兼容性 | 全部 22 包、模块边界、依赖方向、生命周期、TS 推断、公开契约、历史路径、测试盲区和 AI 维护文档 | 逐包有审查结论和旧版对照;本轮阻断项修复并复测,环境缺口明确转交 REVIEW-02 |
|
||||
|
||||
@@ -63,6 +63,35 @@ function visit(id) {
|
||||
}
|
||||
for (const id of ids.keys()) visit(id)
|
||||
|
||||
function ancestors(id, found = new Set()) {
|
||||
for (const dependency of ids.get(id).dependsOn) {
|
||||
if (found.has(dependency)) continue
|
||||
found.add(dependency)
|
||||
ancestors(dependency, found)
|
||||
}
|
||||
return found
|
||||
}
|
||||
function requireAncestor(task, dependency) {
|
||||
assert(ancestors(task).has(dependency), `${task} must depend on ${dependency}`)
|
||||
}
|
||||
assert(![...ancestors('PILOT-01')].some(id => id.startsWith('CORE-')), 'Pilot must precede core migration')
|
||||
requireAncestor('CORE-01', 'PILOT-01')
|
||||
for (const device of ['PKG-CAST-05', 'PKG-VAST-05', 'PKG-DPIP-05', 'PKG-MASK-05']) {
|
||||
assert(!ancestors('REVIEW-01').has(device), `REVIEW-01 must not wait for ${device}`)
|
||||
requireAncestor('REVIEW-02', device)
|
||||
}
|
||||
requireAncestor('REL-02', 'REL-09')
|
||||
for (const release of ['REL-05', 'REL-06']) {
|
||||
for (const gate of ['REVIEW-01', 'REVIEW-02', 'REVIEW-03', 'CI-04', 'REL-03', 'REL-04', 'REL-09']) {
|
||||
requireAncestor(release, gate)
|
||||
}
|
||||
}
|
||||
const finalDependencies = ancestors('REL-07')
|
||||
for (const task of data.tasks) {
|
||||
if (task.id === 'REL-07' || task.id.startsWith('DOC-')) continue
|
||||
assert(finalDependencies.has(task.id), `Implementation task is disconnected from REL-07: ${task.id}`)
|
||||
}
|
||||
|
||||
const packageNames = inventory.packages.map(pkg => pkg.name).sort()
|
||||
const currentNames = fs.readdirSync(path.join(root, 'packages'))
|
||||
.filter(name => fs.existsSync(path.join(root, 'packages', name, 'package.json'))).sort()
|
||||
|
||||
+52
-14
@@ -201,6 +201,24 @@
|
||||
"changes/2026-09-10-DOC-11-major-version-policy.md"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "DOC-12",
|
||||
"phase": "0 规划",
|
||||
"title": "复审开发启动、验收覆盖及发布依赖",
|
||||
"scope": [
|
||||
"workspace"
|
||||
],
|
||||
"dependsOn": [
|
||||
"DOC-11"
|
||||
],
|
||||
"status": "done",
|
||||
"risk": "M",
|
||||
"deliverable": "语义依赖修正、版本实施任务、基线/分发分类及契约映射要求、校验器保护",
|
||||
"acceptance": "原范围状态保持,计划检查和故障负例通过,独立提交 DOC-12",
|
||||
"evidence": [
|
||||
"changes/2026-09-10-DOC-12-execution-readiness-review.md"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "BASE-01",
|
||||
"phase": "1 基线",
|
||||
@@ -229,7 +247,7 @@
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "H",
|
||||
"deliverable": "核心与试点的构造/默认值/静态和实例 API 快照,其余包由 01/02 步补齐",
|
||||
"deliverable": "核心与试点的构造/默认值/静态和实例 API 快照,其余包由 01/02 步补齐;登记契约/版本/固定测试 ID/命令/报告与负责任务",
|
||||
"acceptance": "真实发布包反射与旧用户调用可重跑,未验证项明确",
|
||||
"evidence": []
|
||||
},
|
||||
@@ -245,8 +263,8 @@
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "H",
|
||||
"deliverable": "ready/restart/destroy、Promise、切源/插件事件 trace",
|
||||
"acceptance": "成功、失败、重入和多实例有断言,历史缺陷有标记",
|
||||
"deliverable": "ready/restart/destroy、Promise、切源/插件事件 trace;登记契约/版本/固定测试 ID/命令/报告与负责任务",
|
||||
"acceptance": "成功、失败、重入和多实例有断言,历史缺陷有标记;使用已发布包和最小可重跑探针启动,不等待后续 ENG 服务",
|
||||
"evidence": []
|
||||
},
|
||||
{
|
||||
@@ -261,8 +279,8 @@
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "M",
|
||||
"deliverable": "核心模板/类名/变量、键盘/焦点/可访问名称基线及全 demo 路径映射;docs-browser-testing.md 中 HTML/编辑器的脚本来源与存储状态",
|
||||
"acceptance": "核心/试点用户样式和输入用法已记录,其他 demo 运行状态与未知项明确",
|
||||
"deliverable": "核心模板/类名/变量、键盘/焦点/可访问名称基线及全 demo 路径映射;docs-browser-testing.md 中 HTML/编辑器的脚本来源与存储状态;登记契约/版本/固定测试 ID/命令/报告与负责任务",
|
||||
"acceptance": "核心/试点用户样式和输入用法已记录,其他 demo 运行状态与未知项明确;使用已发布包和最小可重跑探针启动,不等待后续 ENG 服务",
|
||||
"evidence": []
|
||||
},
|
||||
{
|
||||
@@ -277,7 +295,7 @@
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "H",
|
||||
"deliverable": "全包 manifest/资源路径清单;核心/试点的 UMD/AMD/ESM/CJS/legacy/i18n 和类型消费者基线",
|
||||
"deliverable": "全包 manifest/资源路径清单;核心/试点的 UMD/AMD/ESM/CJS/legacy/i18n 和类型消费者基线;登记契约/版本/固定测试 ID/命令/报告与负责任务;区分库/npm 与站点实际分发类别,SSR import/模板/非浏览器构造错误分别捕获",
|
||||
"acceptance": "核心/试点隔离消费可运行,其他包由各自契约任务验证,thumbnail tool 差异已登记",
|
||||
"evidence": []
|
||||
},
|
||||
@@ -295,7 +313,7 @@
|
||||
"status": "todo",
|
||||
"risk": "M",
|
||||
"deliverable": "固定媒体/设备测量、包体积、反复装卸资源报告",
|
||||
"acceptance": "多次采样可重跑,指标和审查阈值确定,不承诺未经测量的收益",
|
||||
"acceptance": "多次采样可重跑,指标和审查阈值确定,不承诺未经测量的收益;使用已发布包和最小可重跑探针启动,不等待后续 ENG 服务",
|
||||
"evidence": []
|
||||
},
|
||||
{
|
||||
@@ -481,8 +499,8 @@
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "M",
|
||||
"deliverable": "共享核心/构建影响映射、文档及每任务完成提交的 Git 审计接入",
|
||||
"acceptance": "核心变化触发必需生态检查;原有 DOC-01 至 04 基线例外明确,后续 done 任务不能缺失独立 commit",
|
||||
"deliverable": "共享核心/构建影响映射、文档及每任务完成提交的 Git 审计接入;契约-支持版本-测试 ID-命令-候选/报告-任务的覆盖索引",
|
||||
"acceptance": "核心变化触发必需生态检查;原有 DOC-01 至 04 基线例外明确,后续 done 任务不能缺失独立 commit;计划/已执行/缺证据分开,识别缺少验证归属的公开契约",
|
||||
"evidence": []
|
||||
},
|
||||
{
|
||||
@@ -802,7 +820,7 @@
|
||||
"status": "todo",
|
||||
"risk": "H",
|
||||
"deliverable": "template/icons/i18n/style、SSR 与 proxy 挂载",
|
||||
"acceptance": "DOM/CSS/global/样式注入、i18n 子路径及 SSR import 保持",
|
||||
"acceptance": "DOM/CSS/global/样式注入、i18n 子路径及 SSR import 保持;不把 SSR import/useSSR 保持扩大为服务端构造播放器",
|
||||
"evidence": []
|
||||
},
|
||||
{
|
||||
@@ -3508,7 +3526,7 @@
|
||||
"ENG-07"
|
||||
],
|
||||
"deliverable": "每批包/版本/源码/锁文件/工具/tarball integrity、必需测试/设备证据、限制和回退映射",
|
||||
"acceptance": "受影响能力缺证据明确阻止对应批次;无关批次可独立准备,旧证据在候选内容变化后失效"
|
||||
"acceptance": "受影响能力缺证据明确阻止对应批次;无关批次可独立准备,旧证据在候选内容变化后失效;站点采用真实构建/URL/资源验收,npm 分发依据历史核实,不从版本清单推断新增发布范围"
|
||||
},
|
||||
{
|
||||
"id": "REL-01",
|
||||
@@ -3548,6 +3566,23 @@
|
||||
"acceptance": "所有包有方案和剩余门槛,未决项明确阻止相应发布;本步骤不声称已经可发布;全部包有 major 目标,版本冲突明确处理,独立准备任务同步 manifest/锁/依赖/日志",
|
||||
"evidence": []
|
||||
},
|
||||
{
|
||||
"id": "REL-09",
|
||||
"phase": "8 发布验收",
|
||||
"title": "落实全包下一 major 版本及依赖元数据",
|
||||
"scope": [
|
||||
"workspace"
|
||||
],
|
||||
"dependsOn": [
|
||||
"REL-01",
|
||||
"DOC-11"
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "H",
|
||||
"deliverable": "22 包版本目标落实、适用锁文件/依赖范围/示例/变更日志同步,核实 registry 版本占用",
|
||||
"acceptance": "版本与 policy 一致,旧核心支持保留;必要拆子任务各自提交,候选构建前完成,不执行 publish",
|
||||
"evidence": []
|
||||
},
|
||||
{
|
||||
"id": "REL-02",
|
||||
"phase": "8 发布验收",
|
||||
@@ -3558,7 +3593,8 @@
|
||||
"dependsOn": [
|
||||
"REL-01",
|
||||
"CORE-22",
|
||||
"ENG-07"
|
||||
"ENG-07",
|
||||
"REL-09"
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "H",
|
||||
@@ -3613,8 +3649,10 @@
|
||||
"REL-02",
|
||||
"CORE-22",
|
||||
"SITE-04",
|
||||
"MOD-05",
|
||||
"DOC-08"
|
||||
"DOC-08",
|
||||
"MOD-01",
|
||||
"MOD-02",
|
||||
"MOD-03"
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "H",
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
优先复用仓库现有 HTML 和在线编辑器,入口清单及任务归属见 [docs 页面与编辑器测试](docs-browser-testing.md)。执行前固定 prod 存储状态、实际脚本路径和构建来源;现有文档 smoke 不代替异步媒体断言。
|
||||
|
||||
正式浏览器基础设施建成前,BASE 任务以固定旧包、最小可重跑探针和已有页面采集,再由 ENG 接入自动化;具体启动、契约覆盖映射和文档包验收分类见 [执行门槛](execution-gates.md)。
|
||||
|
||||
1. 基线产物来自 BASE-01 固定的发布版本,保存 tarball integrity、源码 SHA、工具版本和样本信息。
|
||||
2. 同一测试对旧产物和候选产物运行,比较公开结果、事件 trace、属性描述符和 DOM 状态。
|
||||
3. 不使用整个 minified bundle 的文本相等作为 API 兼容证据。
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
1. 保持 Lerna independent:核心 6.0.0 不意味着全部插件也是 6.0.0。每个包 minor/patch 归零;本次只有一个 major 升级,不按任务或复盘轮次反复加 major。
|
||||
2. 允许在目标版本下准备预发布版本,例如 6.0.0-rc.1;具体标识由 REL-01 固定,正式目标保持 6.0.0。预发布、正式 tag 和实际 publish 仍遵循发布流程。
|
||||
3. REL-01 核实已发布历史及版本占用,再冻结分包目标、变更日志和依赖范围。若执行期间主线已经发布了目标 major 或存在目标版本,明确记录冲突并重新确定方案;不能覆盖已发布内容、悄悄改成 patch 或凭旧清单直接发布。
|
||||
4. REL-01/02 实施时先拆出可验收的版本准备任务,再同步 manifest、适用锁文件、内部 dependencies/peerDependencies、示例和变更日志,独立提交后构建候选。更新 peer 范围需保留已验证的旧核心支持,不因 major 变化强制全生态同步升级。
|
||||
4. REL-01 冻结方案,REL-09 落实版本准备;必要时将 REL-09 拆为可验收的子任务,再同步 manifest、适用锁文件、内部 dependencies/peerDependencies、示例和变更日志,独立提交后由 REL-02 构建候选。更新 peer 范围需保留已验证的旧核心支持,不因 major 变化强制全生态同步升级。
|
||||
5. 全包都纳入大版本目标,不以某包改动较少为由继续发原 minor/patch。允许按实际验证范围分批发布,未交付包保持待办,不伪造完成。
|
||||
6. 候选版本必须在最终构建/pack/验证前确定,CI-03 校验逐包版本、包内容和发布 tag;不能测试旧版本包后临发布再改版本。版本或依赖变化使相关候选证据失效,必须重跑验证。
|
||||
7. REVIEW-03 逐包核对目标、声明、入口、版本组合、旧调用及回退产物;release notes 说明本次工程重构采用新 major,但不能笼统声明所有旧 API 已兼容而缺少证据。
|
||||
|
||||
Reference in new issue
Block a user