Update Blocks To Latest ADR
1. Статус и назначение документа
Статус: принят и отражает текущее реализованное поведение.
Назначение: зафиксировать, почему обновление composition на latest block versions оформлено как отдельный explicit maintenance workflow с выпуском новой composition version, а не как скрытое поведение render path или in-place переписывание ссылок.
2. Контекст
В TextFoundry композиция ссылается на конкретные published block versions.
Это важно для воспроизводимости, но создаёт operational задачу: по мере
развития block library composition может отставать от latest versions.
Нужен способ:
-
обновить ссылки быстро;
-
сохранить structure и local params;
-
не нарушить versioning discipline.
3. Рассмотренные варианты
Вариант A. Всегда использовать latest block versions во время render
Почему отвергнуто:
-
ломает воспроизводимость published composition version;
-
делает runtime behavior неявно зависимым от изменившейся block library.
4. Принятое решение
Принято решение:
-
оформлять update на latest blocks как отдельное explicit действие;
-
читать выбранную composition version;
-
заменить только block version references;
-
публиковать новую minor-version composition при наличии изменений;
-
не менять static text, separators и local params.
5. Последствия решения
Положительные:
-
versioning остаётся чистым;
-
update workflow быстрый и deterministic;
-
легко объясним пользователю.
Компромиссы:
-
latest published block version не всегда автоматически означает business-best version;
-
пользователь всё равно должен осознанно запускать update.
6. Риски и меры снижения
Риски:
-
latest version может быть нежелательной для конкретной composition;
-
пользователь может не понимать, что будет создана новая version.
Меры:
-
explicit action;
-
новая composition version вместо in-place mutation;
-
user-visible status texts.