Files
transcriber/tasks/items/pin-runtime-image-base.md
T
av 8739b18a9f tasks: очередь расставлена от базы к деталям
- порядок беклога и роадмапа назначен слоями: проверки, которым можно
  верить → долги входа → владелец записи и контракт API → конвейер под
  тестами → приложение и возможности поверх; у каждого движения записана
  причина;
- заведены восемь задач под пункты «Завершения», которых не закрывала ни
  одна запись, — цель any-audio-source была без задач вовсе;
- у четырёх задач сняты критерии, требовавшие того, что делает задача ниже
  по очереди; исправлены ссылки на несуществующий repo/sqlite и на
  отменённую разведку об очереди.
2026-08-12 20:48:53 +03:00

43 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🧹 Закрепить версию рантайм-базы образа
- **Тип:** chore
- **Категория:** Очередь — Закрепление базы образа окупается при частых пересборках, а они начнутся с приложением.
- **Зачем:** Финальный слой Dockerfile собирается на alpine:latest, а task image идёт с --pull, поэтому два образа из одного коммита с разницей в неделю несут разный ffmpeg — регрессия конвертации после такой пересборки выглядит как задачи в failed при пустом диффе репозитория, и откат на прежний коммит её не чинит.
Класс тот же, ради которого задача `go-1-26-upgrade` завела шаг сверки версий:
объявленное и собранное расходятся, а сверять некому. Разница в том, что там
расходились числа внутри репозитория, а здесь репозиторий вообще не называет
числа — версия рантайм-базы задана словом «последняя».
Цена названа условием, а не замером: сколько именно и как часто меняется
`ffmpeg` в `alpine:latest`, никто не мерил. Известно, что он в таблице отказов
`docs/architecture.md` стоит со столбцом «Отдаёт мусор»: «Выходной файл пуст,
отказ вылезет на распознавании».
Перечень мест, где объявлена версия Go, эта задача не расширяет: он закрыт
решением `go-1-26-upgrade`, и рантайм-база — другой предмет.
## Затрагивает
- финальный слой `Dockerfile` — тег базового образа;
- раздел «Деплой» в `docs/architecture.md`.
## Критерии приёмки
- Репозиторий называет версию рантайм-базы числом, а не словом «последняя».
Оракул — `grep` по `Dockerfile`: тег финального слоя содержит мажор и минор.
- Два образа, собранные из одного коммита, несут один `ffmpeg`. Оракул — собрать
`task image` дважды с интервалом и сравнить `ffmpeg -version` внутри обоих.
- Решение записано там, где его найдёт разбор отказа конвертации. Оракул —
раздел «Деплой» `docs/architecture.md` называет закреплённую базу и причину.
- Гейт зелёный целиком. Оракул — `task gate`.
## Рамки
Версию базы выбирает человек: перескок на минор новее может принести другой
`ffmpeg` ровно с тем же исходом, ради предотвращения которого задача и заведена.
Выкладку не запускаем.
Если решено оставить `latest`, задача кончается записью принятого остатка в
`docs/architecture.md`, а не правкой `Dockerfile`. Это законный исход.