Repository navigation
feat: migrate sequence chart and dot/link series to extension - #4704
Conversation
skie1997
left a comment
There was a problem hiding this comment.
最后复核了当前 HEAD 8057d4dc4c827513d2c38703c207720df70b951d,发现 1 处迁移清理遗漏:
[P2] 清理 vchart-types 中已迁移模块的旧声明,并避免构建重新发布残留文件
packages/vchart-types/types 仍保留 chart/sequence/(4 个)、series/dot/(5 个)、series/link/(4 个),以及 data/transforms/link-dot-info.d.ts、dot/link 主题声明,共 16 个文件。packages/vchart/package.json:25 的 build:types 直接向已有目录执行 tsc --emitDeclarationOnly,不会删除源文件迁走后遗留的声明。我复制现有类型目录到临时目录,使用当前源码和同样的声明生成参数运行后,16 个旧文件仍全部存在;新生成的根导出已正确移除 sequence/dot/link,但旧深路径声明仍会随类型包发布。建议删除这些旧声明,并让类型生成步骤清理或同步输出目录,确保源码删除也反映到发布产物。
其余核查结果:主包 sequence/dot/link 实现、主题、linkDotInfo 转换及注册/导出均已迁走;扩展包入口和两个时序图注册路径完整;React/Openinula/Taro 引用与教程已更新;主包 UMD 实测不导出或默认注册这些类/方法。schema 在正常 build:schema 中整文件重生成,不属于上述无法自动清理的残留。此次只复核,未修改代码。
|
已在
|
|
已修复两处测试依赖边界问题,提交
验证:主包独立单测 1/1、扩展单测 36/36、视觉框架检查 32/32 通过;官方 develop 基线对比主包 263/263、扩展 3/3 通过,无截图差异。拆分前后的 266 个用例 ID 集合完全一致,迁入的 3 个视觉用例内容逐字节不变。正常提交钩子通过。 磁盘不足曾中断验证,清理本次临时基线安装后复跑通过。扩展基线复用了此前同一官方提交的已验证产物,原产物哈希、与新构建一致的主包字节以及未改变的扩展构建步骤均已校验。 |
|
循环依赖复核(HEAD
仍存在迁移前已有的主包内部循环: 同一循环组还涉及 构建日志中的另两条循环位于上游 本次仅检查并记录,没有修改源码,也没有重新运行与本次静态检查无关的全量视觉测试。 |
|
已在 a0e012c 修复测试包边界:
验证:主包相关单元测试 9 / 9、扩展全部单元测试 32 / 32;与官方 develop 的全量视觉对照主包 263 / 263、扩展 3 / 3,无差异;提交钩子通过。标准 Rush 全包测试仍因 worktree 的 Link flag invalid 无法启动,未计作通过。 |
将
type: 'sequence'时序图及其dot、link系列迁移到@visactor/vchart-extension。VChart 主包不再导出或自动注册这三者,原有 spec、布局和渲染行为保持不变。registerSequenceChart({ VChart })和registerSequenceAnalysis({ VChart })注册所需系列;common图表单独使用时,从扩展包导入并调用registerDotSeries()、registerLinkSeries()。/baseline.js、/current.js中选择脚本地址,保留 phase 白名单校验,消除 URL 参数流入脚本地址的 CodeQL 告警来源。vchart-types,移除本次迁移的 16 个旧声明和 197 个已无对应源码的历史声明,更新类型导出。build:types先清理输出并禁用此次增量缓存,避免旧文件残留及连续构建漏生成;类型包 README 补充构建和迁移说明。验证:
标准
npm run build:types连续执行两次通过,882 个输出逐字节一致;插入的旧声明被清理,手动删除的有效声明被恢复。生成声明无悬空相对导入,9 个迁移 API 均仅由扩展包导出。主包 DataZoom 与注册边界共 9 项、扩展包 32 项 Electron 单元测试通过,覆盖主包不自动注册、两个时序图入口、曲线连线、数据更新、dataZoom,以及迁入的 pictogram 回归。视觉框架 32 项测试通过;用例 ID 集合对照确认没有遗漏或重复。
主包、扩展包和 React 源码类型检查通过;迁移代码 ESLint 无错误,提交钩子的 ESLint / Prettier / commitlint 均通过。
检查主包 UMD:无
DotSeries、LinkSeries、registerDotSeries、registerLinkSeries导出,dot/link 均未默认注册。默认全量视觉回归:主包 263 / 263、扩展包 3 / 3 通过,与官方 develop(c5ec72804c6b7205d69f1d93e65b299741404547)完整对照,无截图差异。扩展报告使用自身入口生成复现命令。
固定脚本地址改动后重新运行视觉框架测试 32 / 32、两页面真实浏览器检查 12 / 12(合法 phase 加载对应固定脚本;非法 URL、路径、原型属性和空值均不加载脚本),全量视觉对照再次通过:主包 263 / 263、扩展包 3 / 3,无截图差异。首次运行因 Chromium 缓存缺失中止,恢复浏览器后完整重跑。
磁盘不足曾中断验证,清理本次临时基线安装后复跑通过。扩展基线复用此前同一官方提交的产物:校验原报告哈希、主包部分与本次新构建逐字节一致、迁移前后扩展构建步骤逐字节一致。
Openinula 全包类型检查仍有 42 项既有错误(Inula React 类型、3D 类型导出等),与前次验证一致。
已执行推送钩子的
rush test --only tag:package,因独立 worktree 的Link flag invalid在测试启动前中止;本次推送单次跳过该不可运行钩子,不将其计为全包测试通过。