第八十八章
WSaiOS Versioning and Compatibility Architecture
WSaiOS 版本与兼容性架构
88.1 工程目标
WSaiOS 在长期演进过程中必须保证:
- Core 可以升级;
- Plugin 可以兼容;
- Workflow 可以迁移;
- API 可以演进;
- Data 可以读取。
本章定义 WSaiOS 的版本管理体系和兼容策略。
88.2 为什么需要版本体系
例如:
今天:
WSaiOS Core 1.0
Plugin:
SEO Plugin 1.0
一年以后:
WSaiOS Core 2.0
如果:
Plugin:
全部:
失效。
那么:
整个生态:
无法维护。
因此:
必须:
定义:
Version。
88.3 Version组成
建议采用:
Semantic Versioning。
格式:
Major.Minor.Patch
例如:
1.0.0
1.1.0
1.1.3
2.0.0
说明:
Major:
重大架构变化。
Minor:
新增能力。
Patch:
Bug 修复。
88.4 Core Version
Core:
统一:
例如:
WSaiOS Core
1.0.0
Kernel:
Runtime:
Workflow:
全部:
属于:
Core。
一起:
升级。
88.5 Plugin Version
Plugin:
独立:
版本。
例如:
SEO Plugin
1.2.0
Plugin:
不能:
跟随:
Core:
一起:
编号。
保持:
独立。
88.6 API Version
API:
建议:
单独:
维护。
例如:
/api/v1/
/api/v2/
API:
升级:
不代表:
Core:
升级。
这样:
便于:
兼容。
88.7 Workflow Version
Workflow:
建议:
保存:
版本。
例如:
{
"workflow":"SEO",
"version":"1.0"
}
以后:
Workflow:
升级:
可以:
迁移。
88.8 Object Version
所有:
CognitiveObject:
保存:
Schema Version。
例如:
{
"schema":"1.0"
}
方便:
未来:
读取:
旧对象。
88.9 Compatibility原则
建议:
Core:
满足:
1.x
↓
支持:
所有:
1.x Plugin
Major:
升级:
允许:
不兼容。
Minor:
必须:
兼容。
Patch:
完全:
兼容。
88.10 数据迁移
例如:
SQLite:
增加:
字段。
建立:
Migration。
例如:
v1
↓
v2
↓
v3
禁止:
直接:
修改:
数据库。
88.11 Plugin兼容验证
Loader:
启动:
检查:
Plugin
↓
Version
↓
Compatibility
↓
Enable
例如:
Plugin:
要求:
Core >=1.2
Loader:
自动:
验证。
88.12 Upgrade流程
建议:
统一:
升级:
流程。
Backup
↓
Migration
↓
Compatibility Check
↓
Upgrade
↓
Verify
↓
Start
失败:
Rollback。
88.13 Deprecation策略
旧API:
不能:
立即:
删除。
例如:
v1
Deprecated
↓
v2
↓
Remove
至少保留一个主要版本周期,为开发者提供迁移时间。
88.14 Compatibility测试
建立:
自动:
验证。
例如:
Core 1.1
↓
SEO Plugin 1.0
↓
Workflow 1.0
验证:
是否:
全部:
正常。
形成:
Compatibility Matrix。
88.15 Compatibility Matrix
建议维护兼容性矩阵,例如:
| Core | Plugin | API | Workflow | 状态 |
|---|---|---|---|---|
| 1.0.x | 1.0.x | v1 | 1.0 | ✓ |
| 1.1.x | 1.0.x | v1 | 1.0 | ✓ |
| 1.2.x | 1.1.x | v1 | 1.1 | ✓ |
| 2.0.x | 2.0.x | v2 | 2.0 | ✓ |
矩阵应作为发布文档的一部分。
88.16 工程目录
建议新增:
version/
├── version.py
├── compatibility.py
├── migration.py
├── checker.py
└── matrix.py
职责:
- Version;
- Compatibility;
- Migration;
- Checker。
88.17 最小验证
模拟:
Core:
1.1.0
加载:
SEO Plugin:
1.0.0
验证:
- Loader 是否允许加载;
- Workflow 是否运行;
- API 是否兼容;
- 数据是否可读取。
然后:
升级:
Core:
2.0.0
验证:
是否:
提示:
Migration。
88.18 本章总结
完成:
WSaiOS Versioning and Compatibility Architecture
建立:
- Semantic Versioning
- Core Version
- Plugin Version
- API Version
- Workflow Version
- Object Schema Version
- Compatibility Rule
- Migration
- Upgrade
- Compatibility Matrix
对整个工程体系的评价
到第88章,WSaiOS 已经覆盖了一个现代软件平台的大部分基础工程能力:
- 架构设计
- 运行时
- 工作流
- SDK 与 API
- 插件体系
- 参考实现
- 测试体系
- 构建打包
- 部署架构
- 安全体系
- 版本与兼容性