Skip to content

driver-memory 测试面替代:项目内测试后端迁到 sqlite :memory:(#5499 重启条件 · memory 半边,维护者 2026-08-06 立项) #5704

Description

@os-zhuang

立项依据:#5499 裁决原文「driver-memory 是早期为测试便利设计的组件,方向已定为 sqlite 内存模式替代……替代迁移若立项,在本单登记排期」+ 维护者 2026-08-06 在 PM 会话确认(「driver-memory 在项目内的测试应该被替换为 sqlite 的内存模式」)。完成即触发 #5499 的 memory 侧重启条件:名下 5 张挂起缺陷单(#5433/#5440/#5442/#5444/#5354)整批关闭(not planned),包本体的退役决策另行交维护者。

mongodb 侧不在本单:维护者同日确认 mongodb 维持暂停。

实测消费面(origin/main @ 2026-08-06 01:2x Z)

测试文件引用 driver-memory / MemoryDriver(外部,共 41 个文件 / 9 包):

包 文件数 备注
packages/objectql 22 主力面。⚠️ 实测无共享工厂:各文件自带 makeMemoryDriver() 本地定义(22 处),其中部分是手写同形 stub(如注释 "same shape driver-memory uses, small enough to assert against"),并非全部真依赖包 — 逐文件分诊是第一步
packages/runtime 5
packages/rest 3
packages/plugins/plugin-approvals 3
packages/spec 2
packages/services/service-datasource 2
packages/cli 2
packages/triggers/trigger-record-change 1
packages/qa/dogfood 1

package.json 依赖声明:cli、plugin-dev、qa/dogfood、runtime、service-datasource、examples/embed-objectql(+包自身)。

⛔ 明确不在本单范围(它们不是「测试」,归包退役决策):runtime provisioning 偏好序里的 memory 注册名回退(http-dispatcher)、plugin-dev 的开发默认后端、examples/embed-objectql(该示例的主题就是内嵌 memory driver)、driver-memory 自己的 15 个测试文件。

替代目标

@objectstack/driver-sql + better-sqlite3 :memory:(examples/app-crm、app-showcase 与 cli db clean 已采用的同款形态,#5499 事实核查确认)。

阶段结构

  1. Survey(先行,单独一单):41 个文件逐个分诊为三类 —— ① 真依赖包、直接可换 sqlite;② 本地手写 stub、与包无关(只需摘 import 或原样保留);③ 断言了 memory 特有语义的 pin(换后端会红 — 每处红都是真语义分叉,按「以 SQL 族语义为准」定向改写断言,拿不准的单独列出)。产出逐文件处置表,作为后续各包迁移单的输入。
  2. 按包迁移 sub-issue(file-disjoint,可并行;domain:* 按落点包由分诊补):objectql 一单(最重),runtime+rest 一单,其余小包合批或独立由 survey 结果定。
  3. 收口:41 文件清零后回 [裁决] driver-memory / driver-mongodb 投入冻结 —— 维护者 2026-08-05 口径(跨单锚点) #5499 执行重启条件(5 张 on-hold 批量关闭 + 请维护者裁包本体退役)。

风险如实声明

排期登记与本单互链见 #5499 评论。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions