mirror of
https://git.openapi.site/https://github.com/desirecore/config-center.git
synced 2026-10-21 06:44:14 +08:00
4.0 KiB
4.0 KiB
验收、发布和回滚
必须通过的行为测试
| 范围 | 正例 | 必须拒绝/保持的反例 |
|---|---|---|
| 版本 | V_contract读V2,支持的Provider/模型可调用 | V_contract-1、不支持format、非法最低版本、直接providerId/SDK/后台/媒体绕过;离线保持最后可消费数据 |
| 迁移 | 旧受管对象规范化、存量保存新格式、重复执行无差异 | 新旧冲突、任意自定义extra、用户覆写、共享凭据、异常终止、回滚不丢用户数据或激活已退役服务 |
| 规格绑定 | Nano exact正确、同名不同接入有显式限制 | Nano匹配base、reasoning后缀被剥离、日期版本/preview/free不当归一化、模糊family扩权 |
| 有效预算 | 独立输入/总窗口/输出各自生效,正确平台覆盖保留 | provider小窗口被Spec覆盖、output>input被当坏数据、未知值变零、272K输入当400K总窗口随意接受 |
| 思考/工具/模态 | 支持档位完整、不能关闭模型不会发关闭请求、协议绑定正确 | 丢high/none、未适配native型号上架、Cohere兼容Embed发送dimensions、服务能力取并集误标vision |
| 计价 | 缓存读取/TTL写入、阶梯、币种/模态/时间单位保留 | search unit当token、每秒当每分钟、USD填CNY、动态-1当免费、用户覆写价被原厂价覆盖 |
| 域名退役 | 生效规则范围内的受管调用和轮询停止 | 同host其他有效路径、同厂其他产品误封、凭据重定向泄露、旧缓存/复活同步/显式SDK绕过 |
| 全量数据 | 每个字段owner/消费版本已登记,compiler产物可复现 | V2旧键回流、未实现字段装进extra、Provider/Spec手工漂移、来源只刷指纹不复核 |
本仓检查
已有门禁继续保留:npm run validate、npm test、npm run sources:gaps:check、git diff --check;新增按V2合同检查字段消费/依赖矩阵、模型绑定覆盖、来源字段、显式override理由、生命周期、计价单位、退役活跃引用和生成投影diff。
P0完成时只读扫描不应影响主数据;P1客户端按改动范围测试和构建,不把全库typecheck默认作为本地门禁;CI按项目规则执行。真实调用使用已有授权的测试账号,保存不含凭据的最小请求/状态/费用摘要,不能把模拟或schema校验称为接口实测。
分批发布
- 客户端PR:门控+schema/resolver+迁移+退役执行机制,发布实际V_contract并验证安装包有效版本。
- config-center基础格式/生成工具PR:发布V2目录与兼容投影选择契约,校验所有未知字段/旧客户端路径;不提前删除旧required字段。
- 按供应商迁移数据PR:优先已证据充分的思考、预算、cache/speech字段;每批更新source文档和派生清单。缺证项留独立队列。
- 已确认退役Provider/域名PR:精确scope、用户状态和默认回退一起验证。产品下架与厂家停服日期分别写明。
- 完成铺开后退出V1手工作者字段与兼容读取;冻结/归档旧投影有明确时间、覆盖率与回滚边界,不只因为代码已合并就移除。
每个数据批次基于当时最新远端manifest递增版本。required checks全绿、CLEAN/MERGEABLE、精确head和零未解决review后合并;随后复核远端数据/编译产物和main CI。文档PLAN本身不递增presetDataVersion。
回滚约束
保留上一份canonical与两种编译产物;数据回退仍用更高presetDataVersion发布,不能降版本号让客户端不拾取。客户端迁移回滚保护用户覆写与凭据;不恢复已证实停服域名、错误身份或无效协议。跨格式不可安全降级时保留最后有效格式并要求支持的客户端,不强塞旧schema。
执行报告
报告真实迁移字段数、仍未分类/待核字段、接入覆盖/匹配层级、解决/保留的差异、已下架具体host/path/provider范围、支持最低版本与未支持旧二进制边界、账号/协议实测结果和剩余依赖。完成率不能只按来源指纹或新增文件数量计。