Кратко
draft-ietf-netmod-yang-module-versioning-17прямо разрешает нелинейную историю module и submodule. Дата идентифицирует неизменяемую ревизию, но не доказывает происхождение, смысловой порядок или совместимость.- Маркер NBC, рекомендуемая минимальная дата и индикаторы YANG Library — ограниченные заявления. Эффективная схема, поведение сервера, клиент, миграция, порядок выкладки и откат требуют собственных проверок.
Resolver видит апрельскую и майскую ревизии одного модуля. Import рекомендует апрель как минимум, поэтому май кажется допустимым. Но майская версия создана в другой ветке и никогда не получала grouping, добавленный в апреле. Сравнение дат успешно, зависимость не выполнена.
В этом состоит главное изменение Updated YANG Module Revision Handling, версия 17. Документ опубликован 29 июня 2026 года и остаётся Internet-Draft, а не RFC. Он разрешает двум независимым ревизиям module или submodule происходить от одного родителя. Даты по-прежнему уникальны, но не означают хронологический порядок, родство или обратную совместимость.
История показывает один путь через граф
Revision history каждой версии перечисляет только её собственную линию происхождения, а не все ветви. Поэтому нельзя установить, происходит ли B от A, сравнив даты или version labels: нужно читать историю B.
История может быть сокращена. Старые записи разрешено удалять, если оставшиеся NBC-маркеры всё ещё верно описывают видимые отношения; самую новую запись удалять нельзя. Правило не даёт создать ложную совместимость, но не гарантирует сохранность полного графа. Для эксплуатации нужны точные байты, исходный репозиторий или архив, происхождение commits и сведения об удалённых записях.
Submodule создают дополнительную неопределённость. Module следует фиксировать точную revision-date каждого include. Без неё идентификатор основного модуля не определяет весь фактически скомпилированный контент.
NBC — ответственное предупреждение, а не выполненный тест
Проект не рекомендует несовместимые изменения, но допускает их ради исправления дефекта, вывода узла из эксплуатации или перестройки нестабильной модели. Если ревизия нарушает BC-правила относительно предыдущей записи своей истории, она обязана содержать rev:non-backwards-compatible. Если маркера нет, изменения должны быть BC.
Так решение становится видимым, но не автоматическим. Автор вправе поставить маркер консервативно даже для формально совместимого расширения, которое серьёзно влияет на клиента. Отсутствие маркера надёжно лишь настолько, насколько точны review и сохранённая история. В одном receipt следует связать старые и новые байты, список изменений, применённое правило и ревьюера. Алгоритм schema-comparison определён в другом документе и здесь не повторяется.
Минимальная дата не выбирает ветку
RFC 7950 позволяет указать точную revision-date; без неё YANG не определяет выбранную ревизию. Для слабо связанных модулей точная фиксация бывает чрезмерной. rev:recommended-min-date предлагает машиночитаемую нижнюю дату, начиная с которой зависимость предположительно удовлетворяется.
Инструмент может выдать warning, но расширение не меняет import и conformance. Сам проект показывает ограничение: более поздняя версия в другой ветке может не содержать требуемого определения. Механизм полезен прежде всего для линейных историй.
Receipt resolver должен назвать выбранную ревизию, доказать происхождение или фактическое наличие нужных определений, разрешить символы при реальных features и deviations и зафиксировать hash эффективной схемы. Успешная проверка даты только начинает анализ.
Два boolean уточняют заявление сервера
ietf-yang-library-status добавляет в YANG Library deprecated-nodes-implemented и obsolete-nodes-absent. Первый true означает, что deprecated-узлы реализованы как current, если явная deviation их не удаляет. Второй true означает отсутствие реализованных obsolete-узлов. Значение false используется по умолчанию и оставляет поведение неопределённым.
Оба true уменьшают неоднозначность объявленной схемы. Если первый не true, клиентам нельзя полагаться только на NBC. Но это всё равно самоописание сервера: оно не выполняет чтение, запись, RPC или notification, не доказывает загрузку deviations и стабильность после reboot. Необходимо пробовать реальные узлы и сравнивать объявленный каталог со схемой, загруженной процессом.
У клиента и данных отдельное право вето
Сервер с NBC-ревизией может вернуть значение, допустимое его схемой, но выходящее за пределы старого клиента. Проект требует защитной обработки, наблюдения за историей и понимания конкретного NBC перед миграцией. Клиенты должны своевременно прекратить использовать deprecated и обязательно отказаться от obsolete.
Проверять нужно оба направления: старый клиент с новым сервером и новый клиент со старым сервером. Тесты охватывают encoding, defaults, RPC, notifications, ошибки и роли NACM; точные binaries, modules, features и deviations входят в результат.
Постоянные данные образуют ещё одну границу. RFC 9195 связывает instance data с content-schema, но успешная валидация после преобразования не доказывает сохранность смысла. Миграционный receipt считает переименованные, удалённые, синтезированные и отвергнутые узлы, проверяет инварианты и подтверждает, что rollback может прочитать новое состояние.
RFC 8342 разделяет running, intended и operational, поскольку конфигурация, применённое намерение и наблюдаемая реальность могут расходиться. Успешный import не доказывает сходимость устройства, взаимодействие при поэтапной выкладке или результат сервиса.
Версия 17 делает эволюцию YANG честнее, если каждое утверждение сохраняет свой масштаб: дата идентифицирует, история описывает линию, NBC предупреждает, минимальная дата советует, YANG Library сообщает. Выполненный клиент, мигрированные данные и наблюдаемая сеть дополняют доказательство.
Первичные источники
Замороженный официальный набор включает версию 17, карточку и историю, RFC 7950, RFC 8525, RFC 9907, RFC 8342, RFC 8341, RFC 9195 и требования к версиям, редакция 13.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
