К содержанию

Навигация

Версии и отпечатки

  • Формат называют имя в поле schema (simai.composition.document, simai.composition.recipe и т. д.) и старшая версия. Совместимое добавление их не меняет; старшая версия меняется только при несовместимом изменении правил формата (см. Имена и версии).
  • Конкретное содержимое подтверждает отпечаток SHA-256 (digest). Он меняется при любом изменении содержимого.
  • Воспроизводимость подтверждают отпечатки исполнения в перечне зависимостей: контракта, реестра типов и рендерера. Номер пакета сам по себе этого не доказывает.

Нормализация одного документа даёт одинаковый JSON и отпечаток в Node.js, в браузере и в PHP. Правила канонической формы (порядок ключей, числа, экранирование) зафиксированы в нормативном комплекте.

Отпечатки исполнения лежат в перечне зависимостей рядом с отпечатком документа:

JSON
{
  "schema": "simai.composition.dependencies.v1",
  "documentDigest": "sha256:результат-нормализации",
  "executionContract": {
    "contractDigest": "sha256:контракт",
    "registryDigest": "sha256:реестр-типов",
    "rendererDigest": "sha256:рендерер"
  }
}

Метку формата (schema) и перечень зависимостей хранят вместе с результатом. Старшая версия формата меняется только при несовместимом изменении правил, а digest — при любом изменении конкретного содержимого; точную проверку выполняют машинные контракты, а не номера в тексте.

Правила изменения контракта:

  • добавление необязательной возможности может быть совместимым;
  • удаление типа, слота или допустимого значения требует новой версии контракта и плана преобразования данных;
  • точную поставку Framework проект закрепляет выпуском (см. Версии: как закрепить выпуск); при обновлении сначала прогоняют контрольные примеры и только потом активируют новый результат.

Поиск по документации

Введите минимум 2 символа

    Настройки

    Тема
    Размер шрифта
    Ширина страницы