Требования к версионированию и миграции
- schemas/device-instance.schema.json, lines: 3-32, range
- schemas/device-model.schema.json, lines: 3-34, range
- schemas/labware.schema.json, lines: 3-3, range
- schemas/labware.schema.json, lines: 114-125, range
- schemas/labware.schema.json, lines: 212-223, range
- schemas/protocol.schema.json, lines: 3-35, range
Идентифицируйте схему стабильным строковым именем и положительным целочисленным номером ревизии. Первой опубликованной ревизии присваивайте номер 1. Увеличивайте номер при любом последующем опубликованном изменении структуры или семантики формата.
Документ должен ссылаться на схему объектом schema с полями name и revision.
Целочисленной ревизии достаточно, чтобы отличать опубликованные варианты схемы.
Считайте изменение обязательного поля несовместимым изменением.
Считайте новое необязательное поле совместимым изменением.
Публикуйте мигратор для каждой поддерживаемой несовместимой версии.
возможно избыточное требование
Не изменяйте исходный файл при автоматической миграции.
Сохраняйте журнал миграции.
Определите окно поддержки старых версий.
Храните примеры каждой опубликованной версии.
возможно избыточно, для этого будут использоваться git tags