BLUEPRINT
Глава 8: Управление Версиями
8.1 Обзор
Управление версиями протокола обеспечивает совместимость при эволюции протокола, позволяя провайдерам и потребителям навыков плавно переходить на новые версии.
8.2 Семантическое Версионирование
MAJOR.MINOR.PATCH
| Номер Версии | Тип Изменения | Совместимость |
|---|---|---|
| MAJOR | Несовместимые изменения протокола | Критические изменения; потребители должны обновиться |
| MINOR | Обратно совместимые добавления | Старые потребители продолжают работать |
| PATCH | Обратно совместимые исправления | Исправления документации, Schema |
8.3 Объявление Версии
{ "protocol": { "version": "1.0.0", "changelog_url": "https://skill-sharing.org/changelog" } }
8.4 Правила Совместимости Версий
Совместимо: MAJOR одинаковый. Несовместимо: MAJOR различается.
| Версия Потребителя | Версия Дескриптора | Совместимость |
|---|---|---|
| 1.0.0 | 1.0.0 | ✓ Совместимо |
| 1.0.0 | 1.2.0 | ✓ Совместимо |
| 1.0.0 | 2.0.0 | ✗ Несовместимо |
Ответ о Несовместимости
{ "error": { "code": "VERSION_INCOMPATIBLE", "message": "Protocol version 2.0.0 is not compatible with consumer version 1.x", "details": { "descriptor_version": "2.0.0", "consumer_supported_range": "1.x.x", "upgrade_url": "https://skill-sharing.org/upgrade-guide" } } }
8.5 Версионированные Директории Schema
schema/
├── draft/
│ ├── schema.json
│ ├── schema.ts
│ └── schema.mdx
└── 2025-10-25/
├── schema.json
├── schema.ts
└── schema.mdx
8.7 Гарантии Обратной Совместимости
- Существующие обязательные поля не удаляются
- Новые поля по умолчанию необязательны
- Семантика существующих полей не изменяется
- Области значений перечислимых типов не сужаются
- Обязательные параметры существующих интерфейсов не увеличиваются
