Skip to content

[11.0][A3] Remove deprecated IDataEngine interface (use IDataDriver) #2378

Description

@os-zhuang

Part of 11.0 breaking-change batch (#2364).

Remove the deprecated IDataEngine interface — the old name for IDataDriver. (Owner decision: remove in 11.0, not deferred to v12.)

Scope

  • Defined in packages/spec/src/contracts/data-engine.ts (+ re-export in packages/core/src/contracts/data-engine.ts).
  • ~271 typed references — narrow change, wide blast radius. Every : IDataEngine / implements IDataEngine / import { IDataEngine } switches to IDataDriver:
    • packages/objectql/src/engine.ts (ObjectQL implements IDataEngine)
    • packages/plugins/plugin-auth/src/objectql-adapter.ts (3 signatures)
    • packages/plugins/plugin-audit/src/audit-writers.ts (re-export)
    • spec/core contract barrels

Checklist

  • Replace all IDataEngine usages with IDataDriver
  • Remove the IDataEngine export from spec + core contracts
  • Full-repo tsc typecheck (catches any missed ref)
  • gen:api-surface + commit snapshot
  • major changeset

Risk: low (pure type rename, no behavior change) but wide — miss one ref → typecheck red.

Activity

  1. os-zhuang commented on Jun 27, 2026

    @os-zhuang
    ContributorAuthor

    Scope correction (implemented in #2384). On inspection, IDataEngine is not deprecated — it's the live engine-layer contract (ObjectQL implements IDataEngine, 60 refs). The genuine @deprecated alias is DriverInterface (= IDataDriver). #2384 removes DriverInterface (spec/contracts + core re-export), migrates objectql/engine.ts to IDataDriver (type-identical), and regenerates api-surface. IDataEngine stays; the separate zod DriverInterface/DriverInterfaceSchema in spec/data also stays. Verified: spec 32 + objectql 718 green.

  2. self-assigned this
    on Jul 18, 2026
  3. os-zhuang commented on Jul 18, 2026

    @os-zhuang
    ContributorAuthor

    Re-evaluation — no code work remains; closing as completed.

    The issue title rests on a wrong premise. On inspection, IDataEngine is not deprecated — it's the live engine-layer contract (ObjectQL implements IDataEngine; ~281 typed references across the tree today, no @deprecated annotation). The genuine deprecated alias was DriverInterface (= IDataDriver).

    That scope-corrected removal already landed in #2384 (merged, 11.0): DriverInterface dropped from spec/contracts + the @objectstack/core re-export, objectql/engine.ts migrated to IDataDriver (type-identical), api-surface regenerated, and docs/upgrading-to-11.md carries the migration note. The only remaining DriverInterface on main is the separate zod DriverInterfaceSchema in spec/data (same name, different thing — the runtime driver schema — deliberately kept).

    So there is nothing left to do here: IDataEngine should stay (it's the live engine contract; removing/renaming it would be a large breaking change with no benefit, and is a different architectural layer from the driver contract). Closing.


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions