1.5 KiB
1.5 KiB
双源码 CMS 与语言合同修正
需求
用户要求 examples 最终只有 cms、old 两个目录;cms/md 与 cms/dever 同步实现同一 CMS,旧示例移到 old。API 留待用户重新设计,本任务不实现 HTTP API。
承接源码审查:修复 Markdown Model 识别/声明合同、Model 默认值与 Seed 字面量校验、ORM 可恢复错误传播与捕获;补齐命名迁移的数据变换能力;示例与基准配置统一从 config/setting.json 读取;同步过期的语言返回值说明。
验收
- 两套 CMS 执行相同的注册、发布业务,数据库结构和可观察结果等价;重复执行可预测,禁用作者不能发布。
- 所有旧示例移动到 examples/old;正式测试留在 test;当前代码与文档没有悬空路径。
- Markdown Model 支持普通 Model 的声明,仍执行文档合同校验。
- 不合法 Int/Float/Decimal/Text 默认值与 Seed 在编译期拒绝,不推迟到 Rust 编译或生成器 panic。
- ORM 故障保留错误类别,进入既有隐式失败传播与 result 捕获合同;事务边界不抹掉错误。
- 命名迁移支持参数化、按数据库方言选择的数据变换;事务、历史一致性约束不降级。
- 无应用/基准配置环境变量入口;保留构建工具自身环境及通用 process.environment 语言能力。
- 定向离线检查与最小测试通过,明确未运行的验证。不做全量测试或性能重测,不改全局工具、不提交 Git。