Перейти к содержимому

Жизненный цикл версий

Код пайплайна неизменяем в пределах версии. Как только v3.1.16 существует, её папка больше не редактируется — любая правка, сколь угодно малая, становится новым карвом: байт-копия предыдущей версии плюс изменённые файлы, зарегистрированная в каталоге под следующим номером.

  • Воспроизводимость. pipeline_run записывает исполненную версию; поскольку та не может измениться под ним, любой прошлый прогон можно перечитать — или перезапустить — ровно таким, каким он был.
  • Мгновенный откат. Промоушен — перестановка указателя latest (и пина дейлирана). Откат — перестановка обратно. Без revert-коммитов, без деплоя откатанных файлов, без двусмысленного «почти то же самое».
  • Безопасная параллельность. Сессии, карвящие следующую версию, не могут дестабилизировать версию, на которую запинен прод.
  1. Карв — скопировать папку текущей версии под следующим номером, внести правку, обновить manifest.yaml, если изменился список шагов или контракт.
  2. Регистрация — однострочная запись в pipelines/catalog.yaml.
  3. Верификация — прогнать на реальных данных в dev-контуре; сравнить качество вывода с действующей версией.
  4. Промоушен — передвинуть latest и перепинить дейлиран. Промоушен прод-дефолта — решение, гейтуемое владельцем.
  5. Хранение предшественника — предыдущая версия остаётся в списке как цель отката. Отжившие линии удаляются из дерева только явным решением об очистке; история остаётся в git.
  • Версии следуют SemVer на пайплайн (vMAJOR.MINOR.PATCH), независимо от версий модулей самой платформы.
  • Мажорная линия отмечает архитектурное поколение. Пример: для Collect линия v3 — поколение векторного ранжирования (по эмбеддингам); v1/v2 — поколение по ключевым словам. Обе линии сосуществуют в каталоге, старшая остаётся аварийным фолбэком.
  • Поведенческое изменение при неизменном контракте манифеста — MINOR; фикс в рамках того же поведения — PATCH.

Ночной дейлиран не следует за latest слепо: он пинит версии Collect и Generate явно. Это даёт осознанный двухшаговый промоушен — сначала приземлить версию, затем передвинуть пин — и регрессия, найденная между шагами, никогда не доезжает до флота.