2.8 KiB
2.8 KiB
ADR-0010:APS 开发期与本仓库同仓不同目录
- 状态:已接受
- 日期:2026-09-24
- 决策人:技术负责人
- 相关:任务表 B0;ADR-0008、ADR-0009;《架构设计》第 2 节
背景
《架构设计》第 2 节写的是「业务系统的代码不在这个仓库里」,ADR-0008/0009 也把 APS 当独立系统。但 APS 目前还在 main 分支里与平台混装,B0–B7 是把它拆出来的全过程。拆的过程中需要两个问题先有答案:
- 开发期 APS 放哪?立刻新建独立仓库,还是先在本仓库里隔离出一个目录?
- 这段过渡形态要不要写进 ADR,免得以后有人拿《架构设计》第 2 节说事?
选项
| 选项 | 做法 | 代价 | 不选的理由 |
|---|---|---|---|
A 开发期同仓库 aps/ 目录 |
APS 代码放本仓库 aps/,独立工具链、独立 CI、独立库;迁出条件写进 ADR |
仓库体积与 clone 成本上升;边界靠规则而非物理隔离 | 选定 |
| B 立刻新建独立仓库 | B0 之前先建仓库、配权限、配 CI | 边界最干净 | APS 还有 39k 行在 main 里,没拆完就分仓会让搬迁与查证两头跑 |
| C 继续混装 | 不动结构 | 零成本 | 与 D8、ADR-0008/0009 全部冲突 |
结论
选 A:开发期 APS 放本仓库 aps/ 目录,按独立系统对待。
| 项 | 结论 |
|---|---|
| 目录 | aps/;工具链 Python,与平台(TS)不共享依赖 |
| 依赖规则 | 平台代码不得引用 aps/;APS 不得引用平台的 TS 代码。两侧唯一的界面是 Provider 契约(HTTP) |
| CI | 独立 job;平台的 lint / typecheck / test 不因 APS 失败而阻塞,反之亦然 |
| 数据库 | APS 库归 APS(ADR-0008),仍要求独立账号、独立 database |
| 交付 | 仍按 ADR-0009:首版只交付纯平台包,APS 单独部署 |
| 与架构设计的关系 | 《架构设计》第 2 节描述的是最终形态;本文定的是开发期过渡形态 |
| 迁出条件 | 满足任一条即迁出独立仓库:① APS 需要独立发版节奏;② APS 由独立团队维护;③ 平台包发布流程需要隔离权限 |
影响
- 对代码:新增
aps/目录;平台侧只在providers/aps里写适配器,不直接引用aps/ - 对任务:B0 的第一个产出物从「定仓库位置」改为「定
aps/目录结构与迁出条件」;B1–B7 在aps/里做 - 对文档:《架构设计》第 2 节补一句开发期说明;术语表「业务系统」条目无需改
- 不这么做的后果:B0 卡在仓库创建上无法启动;或者继续混装,拆到一半两套工具链互相牵制
遗留
- 迁出时机的判断人:技术负责人;触发时按本 ADR 的迁出条件走
aps/与platform的 CI 分流细节:A1.6 落地时一并写进工作流