Политика версионирования#

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 до обработки датасетов.