Политика версионирования#
Scope#
- Политика определяет правила версионирования для спецификации, core API и проектных репозиториев.
Домены версий#
Spec Version - версия текущей спецификации.Core API Version - версия runtime-контракта между клиентами и core.Project Version - версия конкретного репозитория/пакета (core, cli, другие клиенты).
Схема#
- Для всех доменов версий ДОЛЖНА использоваться схема Semantic Versioning:
MAJOR.MINOR.PATCH.
Правила SemVer#
MAJOR: breaking-изменение контракта.MINOR: обратно-совместимое добавление функциональности.PATCH: обратно-совместимый фикс/редакционное исправление.
Baseline совместимости#
- Клиенты ДОЛЖНЫ объявлять поддерживаемый диапазон
Core API Version. - Core runtime ДОЛЖЕН отдавать текущую
Core API Version. - При старте/handshake совместимость client-core ДОЛЖНА проверяться до выполнения обычных операций.
- Несовместимые версии ДОЛЖНЫ завершаться явной ошибкой совместимости.
Mapping релизов#
Spec Version МОЖЕТ развиваться независимо от версий проектных пакетов.- Breaking-изменения core-контракта в спецификации РЕКОМЕНДУЕТСЯ сопровождать повышением major-версии и
Spec Version, и Core API Version. - Версии проектных пакетов МОГУТ следовать собственному релизному ритму, но НЕ ДОЛЖНЫ обходить проверки API-совместимости.
Версионирование формата RKL#
- Версия формата
*.rkl независима и ДОЛЖНА указываться в manifest. - Импорт ДОЛЖЕН валидировать указанную версию
rkl до обработки датасетов.